本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon 中的检查点 SageMaker
在训练期间,使用 Amazon SageMaker 中的检查点保存机器学习 (ML) 模型的状态。检查点是模型的快照,可以通过机器学习框架的回调函数进行配置。您可以使用保存的检查点,根据上次保存的检查点重新启动训练作业。
通过使用检查点,可执行以下操作:
-
当训练作业或实例意外中断时,保存训练中模型的快照。
-
将来从检查点恢复模型训练。
-
在训练的中间阶段分析模型。
-
在 S3 Express One 区域中使用检查点以提高访问速度。
-
将检查点与 SageMaker 托管现场训练结合使用,以节省训练成本。
SageMaker 训练机制在 Amazon EC2 实例上使用训练容器,检查点文件保存在容器的本地目录下(默认为/opt/ml/checkpoints
)。 SageMaker 提供了将检查点从本地路径复制到 Amazon S3 并自动将该目录中的检查点与 S3 同步的功能。S3 中的现有检查点会在作业开始时写入 SageMaker容器,从而使作业能够从检查点恢复。任务启动后添加到 S3 文件夹的检查点不会复制到训练容器中。 SageMaker 在训练期间,还会将新的检查点从容器写入 S3。如果在 SageMaker 容器中删除了某个检查点,它也将在 S3 文件夹中删除。
您可以将亚马逊中的检查点 SageMaker 与 Amazon S3 Express One 区域存储类别(S3 Express One 区域)配合使用,以便更快地访问检查点。启用检查点功能并为检查点存储目标指定 S3 URI 时,您可以为 S URI 3 通用存储桶或 S3 目录存储桶中的文件夹提供 S3。与集成的 S3 目录存储桶 SageMaker 只能使用 Amazon S3 托管密钥 (SSE-S3) 使用服务器端加密进行加密。目前不支持使用 AWS KMS 密钥 (SSE-KMS) 进行服务器端加密。有关 S3 Express One 区域和 S3 目录存储桶的更多信息,请参阅什么是 S3 Express One 区域。
如果您在 SageMaker 托管竞价训练中使用检查点,请 SageMaker 管理在竞价实例上检查您的模型训练,并在下一个竞价实例上恢复训练作业。借助 SageMaker 托管现场训练,您可以显著缩短训练 ML 模型的计费时间。有关更多信息,请参阅 Amazon 中的托管竞技训练 SageMaker。
中的框架和算法的检查点 SageMaker
使用检查点将基于您的首选框架构建的机器学习模型的快照保存在其中 SageMaker。
SageMaker 支持检查点的框架和算法
SageMaker 支持 Dee AWS p Learning Containers 和一部分内置算法的检查点功能,无需更改训练脚本。 SageMaker 将检查点保存到默认本地路径'/opt/ml/checkpoints'
并将其复制到 Amazon S3。
-
Deep Learning Containers:TensorFlowPyTorchMXNet
、、和 HuggingFace 注意
如果您使用的是 HuggingFace 框架估算器,则需要通过超参数指定检查点输出路径。有关更多信息,请参阅HuggingFace文档 SageMaker中的在 Amazon 上运行训练
。 -
内置算法:图像分类、物体检测、语义分割和 XGBoost(0.90-1 或更高版本)
注意
如果您在框架模式(脚本模式)下使用XGBoost算法,则需要带上手动配置的带有检查点的XGBoost训练脚本。有关保存模型快照的XGBoost训练方法的更多信息,请参阅 XGBoostPython SDK 文档XGBoost中的训练
。
如果在托管点训练作业中使用了不支持检查点的预建算法,则 SageMaker 不允许该作业的最长等待时间超过一小时,以限制因中断而浪费的训练时间。
用于自定义训练容器和其他框架
如果您使用的是自己的训练容器、训练脚本或其他未在上一节中列出的框架,则必须使用回调或训练正确设置训练脚本,APIs以便将检查点保存到本地路径 ('/opt/ml/checkpoints'
) 并从训练脚本中的本地路径加载。 SageMaker 估算器可以与本地路径同步,并将检查点保存到 Amazon S3。
检查点操作的注意事项
在中使用检查点时,请考虑以下几点 SageMaker。
-
为避免在使用多个实例的分布式训练中发生覆盖,必须在训练脚本中手动配置检查点文件名和路径。高级 SageMaker 检查点配置指定了一个 Amazon S3 位置,不使用额外的后缀或前缀来标记来自多个实例的检查点。
-
P SageMaker ython SDK 不支持检查点频率的高级配置。要控制检查点频率,请使用框架的模型保存功能或检查点回调来修改训练脚本。
-
如果您在 SageMaker 调试器和 SageMaker 分布式中使用 SageMaker 检查点并遇到问题,请参阅以下页面以了解故障排除和注意事项。