使用 Amazon Sagemaker 部署
Amazon Sagemaker 为您提供在生产环境中部署机器学期模型以及监控模型所需的一切要素,帮助您轻松生成预测。
功能
模型监控
机器学习模型通常使用历史数据进行训练和评估,但是部署到生产环境中后质量降低。这是因为发送到模型用于预测的数据分配可能与训练期间使用的数据分配不同。预测结果的有效性会随时间变化,上游可能产生影响模型质量的错误。为了防止这种情况,您需要监控生产环境中的模型质量、快速识别问题并且采取纠正措施,例如,审核或重新训练模型。为了满足这种需求,您需要构建工具以安全地存储相关的预测数据,然后实施不同的统计技术来分析数据和评估模型质量。最后,您需要检测模型质量中的偏差,以采取合适的纠正措施。除了构建附加工具之外,也可以定期重新训练模型,但是价格昂贵。
Amazon SageMaker Model Monitor 不需要构建任何工具来监控生产环境中的模型或检测什么时候应采取纠正措施。SageMaker Model Monitor 可以持续监控生产环境中的机器学习模型质量,并在模型质量出现偏差时提醒您。
一键部署
只须单击一下,Amazon SageMaker 即可轻松将经过训练的模型部署到生产中,从而使您可以开始为实时或批处理数据生成预测。您可以将模型一键部署到跨多个可用区的 auto-scaling Amazon ML 实例上,实现高冗余。只须指定实例的类型,以及所需的最大和最小数量,其余的事情就交给 SageMaker 处理吧。SageMaker 将启动实例,部署您的模型,并为您的应用程序设置安全的 HTTPS 终端节点。您的应用程序只需要包含一个对此终端节点的 API 调用,即可实现低延迟、高吞吐量推理。此架构使您可以在几分钟内将新模型集成到应用程序中,因为模型更改不再需要更改应用程序代码。
Batch Transform
大多数情况下,批量处理用于非实时预测的数据需要将较大的数据集拆分成较小的数据块以及管理实时终端节点。这个过程价格昂贵且容易出错。使用 Amazon SageMaker 的 Batch Transform 功能,不需要将数据集拆分成多个数据块,也不需要管理实时终端节点。Batch Transform 可以使您可以对大批量或小批量数据集运行预测。通过简单 API,可以为大量数据记录请求预测,并快速轻松地转换数据。运行预测的数据可以大至拍字节,也可以小至若干字节,或二者之间。
一处训练,随处部署
为了在多种边缘设备上实现高推理性能,您通常需要花费数周或数月针对每个目标设备手动调试模型,因为每种硬件配置都有一组独特的功能和限制条件。使用 Amazon SageMaker Neo,您可以对机器学习模型训练一次,并在云中的任何位置和边缘处部署。
与 Kubernetes 集成
Kubernetes 是一个开源系统,用于实现容器化应用程序部署、扩展和管理的自动化。许多客户都希望使用 Amazon SageMaker 的完全托管的功能实现机器学习,但也希望平台和基础设施团队继续使用 Kubernetes 编排和管理管道。SageMaker 解决了这一需求,使 Kubernetes 用户在 SageMaker 中使用 SageMaker-Kubeflow 运算符和管道进行训练和部署模型。使用运算符和管道,Kubernetes 用户可以通过 Kubeflow 本地访问完全托管的 SageMaker ML 工具和引擎。这不需要在 Kubernetes 中手动管理和优化 ML 基础设施,同时仍然保留通过 Kubernetes 对总体编排的控制。通过在 Kubernetes 中使用 SageMaker 运算符和管道,您可以在 Kubernetes 中利用机器学习完全托管服务,而不需要迁移工作负载。
除训练之外的数据处理
实际的 ML 工作负载通常需要训练和预测之外的其他处理。数据需要预处理和后处理,有时采用多个步骤。您可能得使用需要从原始数据交付预测的算法序列进行训练和部署。SageMaker 可以部署 Inference Pipelines,因此您可以实时地或按照批量推理请求传递原始输入数据和执行预处理、预测和后处理。Inference Pipelines 的组成部分可以包括任何机器学习框架、内置算法或可在 Amazon SageMaker 上使用的自定义容器。您可以在 Amazon SageMake 中使用一套在 SparkML and Scikit-learn 框架容器中可用的功能转换器,构建功能数据处理和功能工程管道,并将其部署为 Inference Pipelines 的一部分,以重复使用数据处理代码,更轻松地管理机器学过程。
多模型终端节点
越来越多的公司开始基于单个用户数据训练机器学习模型。例如,音乐流媒体服务将基于每位听众的音乐记录来训练自定义模型,以提供针对个人的音乐推荐曲目,出租车服务将基于每个城市的交通模式训练自定义模型,以预测驾驶员等待时间。为每个使用案例构建自定义 ML 模型可以得到较高的推理准确度,但是部署和管理模型的成本明显增加。如果所有模型的评估速率不同,但又需要一直使用,这些挑战将变得更加明显。
Amazon SageMaker 多模型终端节点提供可扩展且具成本效益的方式来部署数量较多的自定义机器学习模型。SageMaker 多模型终端节点可以使您在一个终端节点上一键部署多个模型,并通过一个服务容器使用它们。只须指定实例的类型,以及所需的最大和最小数量,其余的事情就交给 SageMaker 处理吧。SageMaker 将启动实例,部署您的模型,并为您的应用程序设置安全的 HTTPS 终端节点。您的应用程序只需要包含一个对此终端节点的目标模型 API 调用,即可实现低延迟、高吞吐量推理。