使用 Amazon SageMaker 进行机器学习概述
本节介绍了典型的机器学习工作流并总结了如何使用 Amazon SageMaker 完成这些任务。
在机器学习中,您“指导”计算机进行预测或推理。首先,您使用一种算法和示例数据来训练模型。然后,您将模型集成到应用程序中,以实时且大规模地生成推理。在生产环境中,模型通常从数以百万计的示例数据项目学习,并在数百毫秒至不到 20 毫秒的时间里生成推理。
下图说明了创建机器学习模型的典型工作流:
如图所示,您通常会执行以下活动:
-
生成示例数据 – 要训练模型,您需要示例数据。所需数据的类型取决于您希望模型解决的业务问题 (您希望模型生成的推理)。例如,假设您要创建一个模型以预测提供给手写体数字输入图像的编号。要训练此类模型,您需要手写体数字的示例图像。
数据科学家经常花费大量时间来探索和预处理或“争辩”示例数据,然后再将其用于模型训练。要对数据进行预处理,您通常执行以下操作:
-
获取数据 – 您可能拥有内部示例数据存储库,或者您可能会使用公开可用的数据集。通常,您将一个或多个数据集提取到单个存储库中。
-
清理数据 – 要改进模型训练,请检查数据并根据需要进行清理。例如,如果您的数据具有值为
United States
和US
的country name
属性,您可能需要编辑数据以保持一致。 -
准备或转换数据 – 要提高性能,您可以执行额外的数据转换。例如,您可以选择合并属性。如果您的模型预测到需要为飞机除冰的条件,您可以将温度和湿度属性合并为一种新的属性以获得更好的模型,而不是单独使用这些属性。
在 SageMaker 中,您对笔记本实例上的 Jupyter 笔记本中的示例数据进行预处理。您使用笔记本获取数据集,探索并准备用于模型训练。有关更多信息,请参阅 探索、分析和处理数据。有关在 Amazon Marketplace 中准备数据的更多信息,请参阅数据准备
。 -
-
训练模型 – 模型训练包括训练和评估模型,如下所示:
-
训练模型 – 要训练模型,您需要一种算法或预训练的基本模型。您选择的算法取决于许多因素。要想获得快速、现成的解决方案,您可以使用 SageMaker 提供的算法之一。有关 SageMaker 提供的算法列表以及相关注意事项,请参阅 使用 Amazon SageMaker 内置算法或预先训练模型。有关提供算法和模型的基于 UI 的训练解决方案,请参阅 SageMaker JumpStart。
您还需要适用于训练的计算资源。根据训练数据集的大小以及需要获得结果的速度,您可以使用从单个通用实例到 GPU 实例的分布式集群等各种资源。有关更多信息,请参阅 使用 Amazon SageMaker 训练模型。
-
评估模型 – 训练模型之后,您对其进行评估,以确定推理的准确性是否可接受。在 SageMaker 中,您使用 Amazon SDK for Python (Boto) 或 SageMaker 提供的高级 Python 库将请求发送到模型以获得推理。
您使用 SageMaker 笔记本实例中的 Jupyter 笔记本来训练和评估您的模型。
-
-
部署模型 – 通常,您会先对模型进行一些重新设计,然后将其与应用程序集成并部署。借助 SageMaker 托管服务,您可以独立部署模型,将其与您的应用程序代码解耦。有关更多信息,请参阅 部署模型用于推理。
机器学习是连续的周期。部署模型后,您监控推理,收集“基本实际情况”并评估模型以识别偏差。然后,您可以更新训练数据以包含新收集的基本实际情况,从而提高推理准确性。通过使用新数据集重新训练模型,即可实现这一点。随着越来越多的示例数据变得可用,您继续重新训练模型以提高准确性。