本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
更新生产环境中的模型
部署护栏是 Amazon SageMaker Inference 中的一组模型部署选项,用于在生产环境中更新您的机器学习模型。使用完全托管式部署选项,您可以在生产环境中控制从当前模型切换到新模型的过程。通过蓝绿部署中的流量转移模式(如金丝雀和线性),您可在更新过程中精确控制从当前模型到新模型的流量转移过程。此外还有内置的安全措施,例如自动回滚,可协助您及早发现问题,并在问题对生产造成重大影响之前自动采取纠正措施。
部署防护机制具有以下优势:
在更新生产环境时确保部署的安全。对生产环境的回归更新可能会导致计划外停机和业务影响,例如模型延迟增加和高错误率。部署防护机制提供了最佳实践和内置操作安全防护机制,从而协助您降低这些风险。
完全托管的部署。 SageMaker 负责设置和协调这些部署,并将它们与端点更新机制集成。您无需构建和维护编排、监控或回滚机制。您可以利用 SageMaker 来设置和协调这些部署,并专注于在应用程序中利用机器学习。
可见性。您可以通过 DescribeEndpointAPI 或 Amazon CloudWatch Events(适用于支持的终端节点)跟踪部署进度。要详细了解中的事件 SageMaker,请参阅中的端点部署状态更改部分 SageMaker 使用亚马逊实现亚马逊自动化 EventBridge。请注意,如果您的终端节点使用排除项页面中的任何功能,则无法使用 CloudWatch 事件。
如何开始
我们支持两种类型的部署来更新生产环境中的模型:蓝绿部署和滚动部署。
-
蓝/绿部署:通过更新,您可以将流量从旧实例集(蓝色实例集)转移到新实例集(绿色实例集)。蓝绿部署提供多种流量转移模式。流量转移模式是一种配置,用于指定如何将终端节点流量 SageMaker 路由到包含您的更新的新队列。以下流量转移模式为您提供了对端点更新过程的不同级别的控制:
-
一次性全部流量转移将您的所有端点流量一次性从蓝色实例集转移到绿色实例集。流量转移到绿色车队后,您预先指定的 Amazon CloudWatch 警报将开始在设定的时间(烘焙期)内监控绿色车队。如果在烘焙期间没有警报跳动,则 SageMaker 终止蓝色舰队。
-
金丝雀流量转移将您的一小部分流量(金丝雀)转移到绿色实例集,并在烘焙期内对其进行监控。如果金丝雀成功使用绿色舰队,则在终止蓝色舰队之前,将其余流量从蓝色舰队 SageMaker 转移到绿色舰队。
-
线性流量转移提供更高的自定义程度,可以自定义流量转移步骤数以及每个步骤中转移的流量百分比。金丝雀转移模式可以分两步转移流量,而线性转移模式则进一步扩展为 n 个线性间隔的步骤。
-
-
滚动部署:您可以更新终端节点,同时 SageMaker 逐步配置容量,并按照您指定的批量大小将流量转移到新的队列。新队列上的实例将使用新的部署配置进行更新,如果在烘焙期间没有 CloudWatch 警报跳动,则会 SageMaker 清理旧队列上的实例。使用此选项,您可以精细控制每个步骤中转移的实例数量或容量百分比。
您可以通过和 CreateEndpoint SageMaker API 和 AWS Command Line Interface 命令创建和管理您的部署。UpdateEndpoint有关如何设置部署的更多详细信息,请参阅各个部署页面。请注意,如果您的端点使用排除项页面中列出的任何功能,则无法使用部署防护机制。
要按照演示如何使用部署防护机制的指导性示例操作,请参阅针对金丝雀和线性流量转移模式的 Jupyter 笔记本