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