

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 亚马逊 A SageMaker I 中的检查点
<a name="model-checkpoints"></a>

在训练期间，使用 SageMaker Amazon AI 中的检查点保存机器学习 (ML) 模型的状态。检查点是模型的快照，可以通过机器学习框架的回调函数进行配置。您可以使用保存的检查点，根据上次保存的检查点重新启动训练作业。

通过使用检查点，可执行以下操作：
+ 当训练作业或实例意外中断时，保存训练中模型的快照。
+ 将来从检查点恢复模型训练。
+ 在训练的中间阶段分析模型。
+ 将检查站与 S3 Express One Zone 结合使用，可提高访问速度。
+ 将检查点与 SageMaker AI 托管的现场训练结合使用，以节省训练成本。

 SageMaker 训练机制在 Amazon EC2 实例上使用训练容器，检查点文件保存在容器的本地目录下（默认为`/opt/ml/checkpoints`）。 SageMaker AI 提供了将检查点从本地路径复制到 Amazon S3 并自动将该目录中的检查点与 S3 同步的功能。S3 中的现有检查点会在作业开始时写入 SageMaker AI 容器，从而使作业能够从检查点恢复。任务启动后添加到 S3 文件夹的检查点不会复制到训练容器中。 SageMaker 在训练期间，AI 还会将新的检查点从容器写入 S3。如果在 SageMaker AI 容器中删除了某个检查点，该检查点也将在 S3 文件夹中删除。

您可以将 Amazon A SageMaker I 中的检查点与 Amazon S3 Express One 区域存储类别（S3 Express One 区域）配合使用，以便更快地访问检查点。启用检查点功能并为检查点存储目标指定 S3 URI 时，可以为 S3 通用存储桶或 S3 目录存储桶中的文件夹提供 S3 URI。与 A SageMaker I 集成的 S3 目录存储桶只能使用 Amazon S3 托管密钥通过服务器端加密进行加密 (SSE-S3)。目前不支持使用 Amazon KMS 密钥进行服务器端加密 (SSE-KMS)。有关 S3 Express One Zone 和 S3 目录存储桶的更多信息，请参阅[什么是 S3 Express One Zone](https://docs.amazonaws.cn/AmazonS3/latest/userguide/s3-express-one-zone.html)。

如果您在 SageMaker AI 托管的竞价训练中使用检查点， SageMaker AI 会管理在竞价实例上检查您的模型训练，并在下一个竞价实例上恢复训练作业。借助 SageMaker AI 托管的现场训练，您可以显著缩短训练 ML 模型的计费时间。有关更多信息，请参阅 [Amazon SageMaker AI 中的托管竞价型训练](model-managed-spot-training.md)。

**Topics**
+ [SageMaker AI 中框架和算法的检查点](#model-checkpoints-whats-supported)
+ [检查点的注意事项](#model-checkpoints-considerations)
+ [启用检查点](model-checkpoints-enable.md)
+ [浏览检查点文件](model-checkpoints-saved-file.md)
+ [从检查站恢复训练](model-checkpoints-resume.md)
+ [集群修复 GPU 错误](model-checkpoints-cluster-repair.md)

## SageMaker AI 中框架和算法的检查点
<a name="model-checkpoints-whats-supported"></a>

使用检查点在 SageMaker AI 中保存基于首选框架构建的 ML 模型的快照。

**SageMaker 支持检查点的 AI 框架和算法**

SageMaker AI 支持对 Dee Amazon p Learning Containers 和一部分内置算法进行检查点操作，无需更改训练脚本。 SageMaker AI 将检查点保存到默认本地路径`'/opt/ml/checkpoints'`并将其复制到 Amazon S3。
+ Deep Learning Containers：[TensorFlow[PyTorch[MXNet](https://sagemaker.readthedocs.io/en/stable/frameworks/mxnet/sagemaker.mxnet.html)](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/sagemaker.pytorch.html)](https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/sagemaker.tensorflow.html)、、和 [HuggingFace](https://sagemaker.readthedocs.io/en/stable/frameworks/huggingface/sagemaker.huggingface.html)
**注意**  
如果您使用的是 HuggingFace 框架估计器，则需要通过超参数指定检查点输出路径。有关更多信息，请参阅*HuggingFace文档*中的[在 Amazon A SageMaker I 上运行训练](https://huggingface.co/docs/sagemaker/train)。
+ 内置算法：[图像分类](https://docs.amazonaws.cn/sagemaker/latest/dg/image-classification.html)、[物体检测](https://docs.amazonaws.cn/sagemaker/latest/dg/object-detection.html)、[语义分割](https://docs.amazonaws.cn/sagemaker/latest/dg/semantic-segmentation.html)和 [XGBoost](https://docs.amazonaws.cn/sagemaker/latest/dg/xgboost.html)（0.90-1 或更高版本）
**注意**  
如果您在框架模式（脚本模式）下使用 XGBoost 算法，则需要带上手动配置的带有检查点的 XGBoost 训练脚本。有关保存模型快照的 XGBoost 训练方法的更多信息，请参阅 * XGBoost Python SDK 文档 XGBoost中的*[训练](https://xgboost.readthedocs.io/en/latest/python/python_intro.html#training)。

如果在托管点训练作业中使用了不支持检查点的预建算法， SageMaker AI 不允许该作业的最长等待时间超过一小时，以限制因中断而浪费的训练时间。

**用于自定义训练容器和其他框架**

如果您使用的是自己的训练容器、训练脚本或其他未在上一节中列出的框架，则必须使用回调或训练正确设置训练脚本， APIs 以便将检查点保存到本地路径 (`'/opt/ml/checkpoints'`) 并从训练脚本中的本地路径加载。 SageMaker AI 估算器可以与本地路径同步，并将检查点保存到 Amazon S3。

## 检查点的注意事项
<a name="model-checkpoints-considerations"></a>

在 SageMaker AI 中使用检查点时，请考虑以下几点。
+ 为避免在使用多个实例的分布式训练中发生覆盖，必须在训练脚本中手动配置检查点文件名和路径。高级别 SageMaker AI 检查点配置指定单个 Amazon S3 位置，无需额外的后缀或前缀来标记来自多个实例的检查点。
+  SageMaker Python SDK 不支持检查点频率的高级配置。要控制检查点频率，请使用框架的模型保存功能或检查点回调来修改训练脚本。
+ 如果您使用 SageMaker 分布式 SageMaker 调试器和 SageMaker AI 的 AI 检查点并遇到问题，请参阅以下页面以了解故障排除和注意事项。
  + [由 Amazon SageMaker 调试器支持的分布式训练](debugger-reference.md#debugger-considerations)
  + [在 Amazon A SageMaker I 中进行分布式训练的疑难解答](distributed-troubleshooting-data-parallel.md)
  + [模型并行故障排除](distributed-troubleshooting-model-parallel.md)