亚马逊AWS官方博客

Amazon SageMaker 的新功能 – 执行影子测试以比较 ML 模型变体之间的推理性能



当您将机器学习(ML)工作负载投入到生产中时,您需要持续监控已部署的模型,并在观察到模型性能出现偏差时进行迭代。构建新模型时,您通常会使用历史推理请求数据离线验证模型。但这些数据有时无法代表当前的真实情况。例如,新产品可能已经成为了热门产品,而您的产品推荐模型却尚未掌握相关信息。或者,您在生产中遇到以前从未接遇到过的模型推理请求量陡增。

今天,我很高兴宣布 Amazon SageMaker 现支持影子测试

在影子模式下部署模型可以让您通过将生产模型的实时推理请求副本路由到新(影子)模型,从而进行更全面的测试。然而,只有来自生产模型的响应会返回到调用应用程序。影子测试可帮助您进一步建立对模型的信心,并及时发现影响最终用户的潜在配置错误和性能问题。完成影子测试后,您可以使用 SageMaker 推理端点的部署防护机制在生产环境中安全地更新模型。

开始使用 Amazon SageMaker 影子测试
您可以使用新的 SageMaker 推理控制台和 API 创建影子测试。影子测试为您提供设置、监控和查看影子测试并根据相关结果采取行动的完全托管式体验。如果您有围绕 SageMaker 端点构建的工作流,您还可以使用现有的 SageMaker 推理 API 以影子模式部署模型。

在 SageMaker 控制台中,选择 Inference(推理)和 Shadow tests(影子测试)以创建、监控和部署影子测试。

Amazon SageMaker 影子测试

要创建影子测试,请选择一个现有的(或创建一个新的)SageMaker 端点和您要测试的生产变体。

Amazon SageMaker - 创建影子测试

接下来,配置发送到影子变体的流量比例、要评估的比较指标以及测试的持续时间。您还可以为生产和影子变体启用数据捕获。

Amazon SagMaker - 创建影子测试

就这么简单。SageMaker 现在会以影子模式自动部署该新变体,并实时向其路由推理请求的副本,所有这些都在同一个端点内进行。下图展示了此工作流。

Amazon SageMaker - 影子测试

请注意,只有生产变体的响应会返回到调用应用程序。您可以选择丢弃影子变体的响应,或将其记录下来以用于离线比较。

您还可以使用影子测试来验证您对生产变体中的任何组件所做的更改,包括服务容器或 ML 实例。当您升级服务容器的框架版本、应用补丁,或者如果您想确保此类更改不会对延迟或错误率产生影响时,这会很有用。同样,如果您考虑迁移到其他 ML 实例类型,例如基于 AWS Graviton 处理器Amazon EC2 C7g 实例或由 NVIDIA A10G Tensor Core GPU 提供支持的 EC2 G5 实例,您可以在推出之前使用影子测试来评估处理生产流量的性能。

您可以通过实时控制面板监控影子测试的进度和性能指标,例如延迟和错误率。在 SageMaker 控制台上,选择 Inference(推理),然后选择 Shadow tests(影子测试),再选择要监控的影子测试。

Amazon SageMaker - 监控影子测试

Amazon SageMaker - 监控影子测试

如果您决定将影子模型部署到生产环境中,请选择 Deploy shadow variant(部署影子变体),并定义所使用的基础架构。

Amazon SageMaker - 部署影子变体

Amazon SageMaker - 部署影子变体

如果您想为更新添加线性或金丝雀流量转移模式和自动回滚,您还可以使用 SageMaker 部署防护机制。

可用性和定价
SageMaker 对影子测试的支持现已在所有提供 SageMaker 托管的 AWS 区域推出,AWS GovCloud(美国)区域和 AWS 中国区域除外。

除了为托管影子变体而预调配的 ML 实例和 ML 存储的使用费外,SageMaker 影子测试不收取额外费用。ML 实例和 ML 存储的定价与实时推理选项相同。在影子部署内处理的数据以及向外传输的数据不收取额外费用。SageMaker 定价页面包含所有详细信息。

要了解更多信息,请访问 Amazon SageMaker 影子测试

立即开始使用 SageMaker 影子测试验证您的新机器学习模型!

– Antje