

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

# Amazon SageMaker AI 中的托管竞价型训练
<a name="model-managed-spot-training"></a>

Amazon SageMaker AI 通过使用托管的 Amazon EC2 竞价型实例轻松训练机器学习模型。与按需实例相比，托管竞价型训练最多可以将训练模型的成本减少 90%。SageMaker AI 代表您管理竞价型中断。

托管竞价型训练使用 Amazon EC2 竞价型实例而不是按需实例来运行训练作业。您可以指定哪些训练作业使用竞价型实例，还可以指定一个停止条件，以规定 SageMaker AI 等待使用 Amazon EC2 竞价型实例运行作业的时间长度。CloudWatch 中提供在运行训练期间生成的指标和日志。

Amazon SageMaker AI 自动模型调优（也称为超参数调优）可以使用托管竞价型训练。有关自动模型调优的更多信息，请参阅[使用 SageMaker AI 自动调整模型](automatic-model-tuning.md)。

Spot 实例可能会中断，导致作业开始或结束所花的时间更长。您可以将托管竞价型训练作业配置为使用检查点。SageMaker AI 将检查点数据从本地路径复制到 Amazon S3。重新启动作业时，SageMaker AI 会将数据从 Amazon S3 复制回本地路径。然后，训练作业可以从最后一个检查点恢复，而无需重新开始。有关检查点操作的更多信息，请参阅 [亚马逊 A SageMaker I 中的检查点](model-checkpoints.md)。

**注意**  
除非您的训练作业能够快速完成，否则我们建议您对托管的 Spot 训练使用检查点。不执行检查点操作的 SageMaker AI 内置算法和市场算法目前将 `MaxWaitTimeInSeconds` 限制为 3600 秒（60 分钟）。

要使用托管的 Spot 训练，请创建一个训练作业。将 `EnableManagedSpotTraining` 设置为 `True` 并指定 `MaxWaitTimeInSeconds`。`MaxWaitTimeInSeconds` 必须大于 `MaxRuntimeInSeconds`。有关创建训练作业的更多信息，请参阅 [DescribeTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html)。

您可以使用公式 `(1 - (BillableTimeInSeconds / TrainingTimeInSeconds)) * 100` 计算使用托管的 Spot 训练时节省的时间。例如，如果 `BillableTimeInSeconds` 为 100 而 `TrainingTimeInSeconds` 为 500，表示您的训练作业运行了 500 秒，但只收取 100 秒的费用。可节约 (1 - (100 / 500)) \$1 100 = 80%。

要了解如何在 Amazon SageMaker AI 竞价型实例上运行训练作业，托管竞价型训练的工作原理以及它是如何缩短计费时间的，请参阅以下示例笔记本：
+ [使用 TensorFlow 进行托管竞价型训练](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-python-sdk/managed_spot_training_tensorflow_estimator/managed_spot_training_tensorflow_estimator.html)
+ [使用 PyTorch 进行托管竞价型训练](https://github.com/aws-samples/amazon-sagemaker-managed-spot-training/blob/main/pytorch_managed_spot_training_checkpointing/pytorch_managed_spot_training_checkpointing.ipynb)
+ [使用 XGBoost 进行托管竞价型训练](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/xgboost_abalone/xgboost_managed_spot_training.html)
+ [使用 MXNet 进行托管竞价型训练](https://github.com/aws/amazon-sagemaker-examples-community/blob/215215eb25b40eadaf126d055dbb718a245d7603/training/sagemaker-debugger/mxnet-spot-training-with-sagemakerdebugger.ipynb#L41)
+ [Amazon SageMaker AI 托管竞价型训练示例 GitHub 存储库](https://github.com/aws-samples/amazon-sagemaker-managed-spot-training)