本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon SageMaker 训练模型
下图介绍了您如何训练和部署模型。使用 Amazon SageMaker:

标记为 SageMaker 的区域突出显示 SageMaker 两个组件:模型训练和模型部署。
要在 SageMaker 中训练模型,请创建一个训练任务。该训练作业包含以下信息:
-
存储训练数据的 Amazon Simple Storage Service (Amazon S3) 存储桶的 URL。
-
您希望 SageMaker 用于模型训练的计算资源。计算资源是 SageMaker 托管的 ML 计算实例。
-
您要存储作业输出的 S3 存储桶的 URL。
-
存储训练代码的 Amazon Elastic 容器注册表路径。有关更多信息,请参阅 Docker 注册表路径和示例代码。
对于训练算法,您可以使用以下选项:
-
使用 SageMaker 提供的算法—SageMaker 提供训练算法。如果其中一种算法满足您的需求,它将是实现快速模型训练的不错的现成解决方案。关于 SageMaker 提供的算法列表,请参阅使用 Amazon SageMaker 内置算法或预训练模型. 要尝试使用 SageMaker 提供的算法进行练习,请参阅开始使用 Amazon SageMaker.
-
使用 SageMaker 调试程序使用 TensorFlow、PyTorch 和 Apache MXNet 学习框架或 XGBoost 算法时检查整个训练过程中的训练参数和数据。调试程序会自动检测常见错误并向用户发出警报,例如参数值变得太大或太小。有关使用调试程序的更多信息,请参阅亚马逊SageMakerDebugger (调试程序)。调试程序示例笔记本可在 Amazon SageMaker 调试程序示例
中获取。 -
将 Apache Spark 与 SageMaker 结合使用—SageMaker 提供一个可在 Apache Spark 中使用的库,以便使用 SageMaker 训练模型。使用 SageMaker 提供的库类似于使用 Apache Spark MLLib。有关更多信息,请参阅 将 Apache Spark 与 Amazon SageMaker 结合使用。
-
提交自定义代码以使用深度学习框架进行您可以提交使用 TensorFlow、PyTorch 或 Apache MXNet 的自定义 Python 代码进行模型训练。有关更多信息,请参阅将 TensorFlow 与 Amazon SageMaker 结合使用、将 PyTorch 与 Amazon SageMaker 结合使和将 Apache MXNet 与 Amazon SageMaker 结合使用。
-
使用您自己的自定义算法将您的代码放在一起作为 Docker 镜像,并在 SageMaker 中指定该镜像的注册表路径。
CreateTrainingJob
API 调用。有关更多信息,请参阅 将 Docker 容器用于 SageMaker。
创建训练任务后,SageMaker 将启动 ML 计算实例,并使用训练代码和训练数据集来训练模型。它将生成的模型构件和其他输出保存在您为该目的指定的 S3 存储桶中。
您可使用 SageMaker 控制台或 API 创建训练任务。有关使用 API 创建训练作业的信息,请参阅 CreateTrainingJob
API。
当您使用 API 创建训练任务时,默认情况下,SageMaker 会在 ML 计算实例上复制整个数据集。要使 SageMaker 复制各个 ML 计算实例上的数据子集,您必须将S3DataDistributionType
字段中返回ShardedByS3Key
. 您可以使用低级开发工具包设置此字段。有关更多信息,请参阅 S3DataSource
中的 S3DataDistributionType
。
为了防止您的算法容器争用内存,我们为 ML 计算实例上的 SageMaker 关键系统进程预留内存,因此您不能期望看到您的实例类型的所有内存。