使用 Amazon SageMaker 部署

Amazon SageMaker 可提供在生产环境中部署机器学习模型和监控模型质量所需的一切,以此支持您轻松生成预测。

功能

模型监控

机器学习模型通常使用历史数据进行训练和评估,但在生产环境中部署后,其质量会下降。这是因为发送到模型进行预测的数据的分布可能与训练期间使用的数据的分布不同。预测结果的有效性会随着时间的推移而变化,错误可能会引入上游,从而影响模型质量。要防止发生这种情况,您需要监控生产环境中模型的质量,快速识别问题,并采取纠正措施(例如审核或重新训练模型)。为此,您需要构建工具来安全地存储预测相关数据,然后采用各种统计技术来分析这些数据并评估模型质量。最后,您需要检测模型质量中的偏差,以采取正确的纠正措施。作为构建附加工具的替代方案,可以定期重新训练模型,但成本可能很高。

Amazon SageMaker Model Monitor 无需构建任何工具即可监控生产环境中的模型,并检测何时需要采取纠正措施。SageMaker Model Monitor 可持续监控生产环境中机器学习模型的质量,并在模型质量有偏差时提醒您。

SageMaker Model Monitor 可定期分析根据内置规则或您自己的自定义规则收集的数据,以确定是否违反了任何规则。内置规则可用于分析表格数据及发现常见问题,如预测数据的离群值、数据分布与训练数据集相比的偏差,以及基于现实世界的观察产生的预测准确性的变化。SageMaker Model Monitor 可在 SageMaker Studio 中使用,指标可以发布到 Amazon CloudWatch,以便您设置警报以审核和重新训练模型。您可以查看警报以了解导致偏差的数据,以便相应地调整您的训练数据。部署在 SageMaker 中的所有模型的预测请求和响应均会被安全存储,而无需更改任何代码。

Model Monitor

一键式部署

Amazon SageMaker 可以轻松在生产环境中一键式部署您的受训模型,以便您开始针对实时或批量数据生成预测。您可以跨多个可用区在自动扩展的 Amazon ML 实例上一键部署模型以实现高冗余。您只需指定实例类型以及所需的最小和最大数量,SageMaker 将负责其余工作。SageMaker 将启动实例、部署您的模型,并针对您的应用程序设置安全的 HTTPS 终端节点。您的应用程序只需为此终端节点提供 API 调用,即可实现低延迟、高吞吐量推理。借助此架构,您可以在几分钟内将新模型集成到应用程序,这是因为模型变化不再要求应用程序代码随之变化。

批量转换

在大多数情况下,处理用于非实时预测的批量数据需要将大型数据集调整为较小的数据块,并管理实时终端节点。这种做法成本很高,而且容易出错。使用 Amazon SageMaker 的批量转换功能,无需将数据集细分为多个数据块或管理实时终端节点。通过批量转换,您可以针对大批量或小批量数据集运行预测。使用一个简单的 API,您可以轻松快速地请求对大量数据记录进行预测并转换数据。运行数据探查时,数据可以大到数 PB,也可以小到几个字节,或者介于两者之间。

一次训练,任何位置部署

为了在各种边缘设备上实现高推理性能,您通常需要花几周或几个月的时间针对每个目标设备手动调整模型,因为每个硬件配置都有一系列独特的功能和限制条件。借助 Amazon SageMaker Neo,您只需对机器学习模型进行一次训练,便可在云端和边缘的任何位置部署模型。

SageMaker Neo 使用机器学习来自动优化经过训练的模型,以达到两倍的运行速度,而消耗的内存不足内存占用量的十分之一,且不会降低目标部署环境的准确性。您可以使用 MXNet、TensorFlow、PyTorch 或 XGBoost 开始构建机器学习模型,并使用 SageMaker 训练模型。然后选择要在其中部署模型的目标硬件平台。只需单击一下,SageMaker Neo 就会将训练的模型编译为可执行程序。编译器利用神经网络探索和应用所有特定性能优化,使您的模型在目标硬件平台上最高效地运行。然后,可以部署模型,以在云端或边缘进行预测。可以使用 AWS IoT Greengrass 将本地计算和 ML 推理功能带到边缘。

为帮助简化边缘部署,Greengrass 支持 Neo 优化模型,使您可以通过无线更新直接将模型部署到边缘。Neo 还可用作采用 Apache 软件许可证的 Neo-AI 项目的开源代码,使开发人员能够为不同的设备和应用程序定制软件。

2 倍

性能

1/10

原始框架的大小

与 Kubernetes 集成

Kubernetes 是一种开源系统,用于自动执行容器化应用程序的部署、扩展和管理。许多客户希望使用 Amazon SageMaker 全面管理的机器学习功能,但也希望平台和基础设施团队继续使用 Kubernetes 来编排和管理管道。SageMaker 通过让 Kubernetes 用户使用 SageMaker-Kuberflow 操作和管道在 SageMaker 中训练和部署模型来满足这一要求。借助运算符和管道,Kubernetes 用户可以访问完全托管的、Kubeflow 原生提供的 SageMaker ML 工具和引擎。这样就无需手动管理和优化 Kubernetes 中的 ML 基础设施,同时仍可通过 Kubernetes 控制整体编排。使用适用于 Kubernetes 的 SageMaker 运算符和管道,您可以在 Kubernetes 中使用完全托管的机器学习服务,而无需迁移工作负载。

训练以外的数据处理

实际的 ML 工作负载通常需要的不仅仅是训练和预测。数据需要经过预处理和后处理,有时需要执行多个步骤。您可能必须使用一系列算法进行训练和部署,这些算法需要相互协作以根据原始数据进行预测。SageMaker 使您可以部署推理管道,从而能传递原始输入数据并对实时和批量推理请求执行预处理、预测和后处理。推理管道可以由可在 Amazon SageMaker 上使用的任何机器学习框架、内置算法或自定义容器组成。您可以使用 Amazon SageMaker 的 SparkML 和 Scikit-learn 框架容器中提供的一套功能转换器构建功能数据处理和功能工程管道,并将这些功能转换器作为推理管道的一部分部署,以重用数据处理代码并更轻松地管理机器学习流程。

多模型终端节点

越来越多的公司正在根据个人用户数据训练机器学习模型。例如,音乐流媒体服务将根据每位听众的听歌历史记录来训练自定义模型,以个性化音乐推荐;或者出租车服务将根据每个城市的交通模式来训练自定义模型,以预测乘客等候时间。为每个使用案例构建自定义 ML 模型可实现更高的推理准确性,但部署和管理模型的成本会显著增加。当并非所有模型都以相同的速度进行访问,但仍需要随时保持可用时,这些挑战就变得更加突出。

Amazon SageMaker 多模型终端节点提供了一种可扩展且经济高效的方法来部署大量自定义机器学习模型。借助 SageMaker 多模型终端节点,您只需单击一个终端节点即可部署多个模型,并使用单个服务容器提供服务。您只需指定实例类型以及所需的最小和最大数量,SageMaker 将负责其余工作。SageMaker 将启动实例、部署您的模型,并针对您的应用程序设置安全的 HTTPS 终端节点。您的应用程序只需为此终端节点提供 API 调用与目标模型,即可实现低延迟、高吞吐量的推理。

在云中获取高性能和低成本推理

使用 Amazon SageMaker,您可以将您的训练机器学习模型部署到使用 AWS Inferentia 芯片构建的 Amazon Inf1 实例中,以提供高性能和低成本推理。借助 Inf1 实例,您可以运行大规模机器学习推理应用程序,例如图像识别、语音识别、自然语言处理、个性化和欺诈检测。使用 Amazon SageMaker Neo,您可以编译自己的训练机器学习模型以在 Inf1 实例上进行最佳运行,并将编译好的模型轻松部署到 Inf1 实例上进行实时推理。

了解更多

将 ML 模型从实验转向生产

了解如何使用 SageMaker 将 ML 模型部署到生产环境中

使用 Amazon SageMaker 部署经过训练的 Keras 或 TensorFlow 模型

了解如何使用 Amazon SageMaker 部署经过训练的 Keras 或 TensorFlow

实现 Amazon SageMaker 自定义 ML 模型的自动化

按照 GitHub 上的这些示例,自动构建、训练和部署自定义 ML 模型。