构建一个带有人为干预的 Amazon SageMaker 模型注册表审批和推广工作流 机器学习博客
在 Amazon SageMaker 中构建包含人工干预的模型注册审批与推广工作流
关键要点
本文讨论如何利用 AWS 资源构建可扩展的 ML 模型注册和审批工作流。利用 AWS 生态系统的服务如 Lambda、API Gateway 和 EventBridge,实现 ML 模型的自动审批流程,并加入人工干预。说明了从模型创建到生产环境的完整审批流程,以及如何整合不同步骤。本文由 Tom Kim、Jayadeep Pabbisetty、Prabakaran Mathaiyan 和 Shamika Ariyawansa 共同撰写,发表于 2024 年 1 月 10 日于 Amazon SageMaker、最佳实践、客户解决方案 和 技术操作。
随着大型机器学习ML模型的开发生命周期,需求愈加迫切地需要一个可扩展的模型发布流程,与软件开发相似。模型开发者通常会在一起进行 ML 模型的开发,并需要一个强健的 MLOps 平台支持。可扩展的 MLOps 平台应该包含处理 ML 模型注册、审批和推广到下一环境级别开发、测试、UAT 或生产的流程。
模型开发者通常会在单独的 ML 开发环境中工作,使用 Amazon SageMaker。当模型经过训练并准备使用时,需要在注册后进行审批,注册地点为 Amazon SageMaker 模型注册表。本文探讨了 AWS AI/ML 团队与 Merck 人类健康 IT MLOps 团队的合作,共同构建了一个解决方案,该方案使用自动化的工作流程来实现 ML 模型的审批与推广,且中间加入人工干预。
解决方案概述
本文关注一个工作流程解决方案,该方案可在训练流水线和推理流水线之间的 ML 模型开发生命周期中使用。该解决方案为 MLOps 提供了可扩展的工作流程,支持 ML 模型的审批与推广过程,加入人工干预。数据科学家注册的 ML 模型需要审批者进行审核和批准,才能用于推理流水线和下一环境级别如测试、UAT 或生产。该解决方案使用 AWS Lambda、Amazon API Gateway、Amazon EventBridge 和 SageMaker 来自动化工作流程,结合人工审批。以下架构图展示了整个系统设计、所使用的 AWS 服务,以及从开发到生产的 ML 模型的审批与推广工作流程。

工作流程包括以下步骤:
步骤描述1训练流水线开发并在 SageMaker 模型注册表中注册一个模型,此时模型状态为 PendingManualApproval。2EventBridge 监控状态变更事件,根据简单规则自动采取行动。3EventBridge 模型注册事件规则调用一个 Lambda 函数,构建一封带有批准或拒绝已注册模型链接的电子邮件。4审批者收到一封电子邮件,里面带有审阅并批准或拒绝该模型的链接。5审批者通过点击电子邮件中的链接到达 API Gateway 端点来批准该模型。6API Gateway 调用一个 Lambda 函数启动模型更新。7模型注册表更新模型状态开发环境为 Approved,测试、UAT 和生产环境为 PendingManualApproval。8模型细节存储在 AWS 参数存储 中,包括模型版本、批准的目标环境和模型包。9推理流水线从参数存储中获取已批准用于目标环境的模型。10后推理通知 Lambda 函数收集批量推理指标,并向审批者发送电子邮件,提示升级模型到下一个环境。前提条件
此工作流程假设已在 SageMaker 中设置好训练流水线的环境及其他资源。训练流水线的输入是特征数据集。本文未包含特征生成的细节,重点关注在模型训练完成后,模型的注册、审批与推广。模型在注册表中进行注册,并受到 Amazon SageMaker 模型监控 的监控框架管理,以检测任何漂移,必要时进行重训练。
工作流程详细信息
审批工作流程始于通过训练流水线开发的模型。当数据科学家开发模型时,他们会将其注册到 SageMaker 模型注册表,并使其状态为 PendingManualApproval。EventBridge 监控 SageMaker 的模型注册事件,并触发事件规则,调用 Lambda 函数。该 Lambda 函数动态构建一封电子邮件,用于请求批准模型,并包含指向 API Gateway 端点的链接。当审批者跟随链接批准模型时,API Gateway 将批准操作转发给 Lambda 函数,后者更新 SageMaker 模型注册表及参数存储中的模型属性。审批者必须经过身份验证,并是由 Active Directory 管理的审批者组的一部分。初始批准将模型标记为开发环境的 Approved,但对于测试、UAT 和生产环境维持 PendingManualApproval。存储在参数存储中的模型属性包括模型版本、模型包和批准的目标环境。
当推理流水线需要提取模型时,它会检查参数存储,以获取已批准用于目标环境的最新模型版本及推理细节。当推理流水线完成后,将发送一封后推理通知邮件给利益相关者,要求批准将模型推广到下一个环境级别。邮件中包含有关模型和指标的详细信息,以及指向 API Gateway 端点的批准链接,该链接指向一个 Lambda 函数,用于更新模型属性。
以下是从模型创建到生产的 ML 模型审批/升级工作流的事件序列和实施步骤。模型在每个步骤中从开发环境提升到测试、UAT 和生产环境,且每个步骤都需要明确的人工批准。
我们从准备好进行模型开发的训练流水线开始。模型版本在 SageMaker 模型注册表中的初始值为 0。
SageMaker 训练流水线开发并在 SageMaker 模型注册表中注册一个模型,模型版本 1 被注册,并开始于 Pending Manual Approval 状态。 模型注册表的元数据为环境定义了四个自定义字段:dev test uat 和 prod。
EventBridge 监控 SageMaker 模型注册表的状态变更,自动采取行动。
模型注册事件规则调用一个 Lambda 函数,该函数构建一封带有批准或拒绝注册模型链接的电子邮件。
审批者收到一封电子邮件,里面带有审阅并批准 (或拒绝) 该模型的链接。
审批者通过点击电子邮件中的链接访问 API Gateway 端点来批准该模型。
API Gateway 调用 Lambda 函数,启动模型更新。
SageMaker 模型注册表更新模型状态。
模型详细信息存储在参数存储中,包括模型版本、批准的目标环境和模型包。
推理流水线从参数存储中获取经批准的用于目标环境的模型。
后推理通知 Lambda 函数收集批量推理指标,并向审批者发送邮件,要求将模型推广到下一个环境。
审批者通过点击链接访问 API Gateway 端点,批准模型的提升到下一级别,这将触发 Lambda 函数更新 SageMaker 模型注册表和参数存储。
在参数存储中保存了完整的模型版本和审批历史供审核。
结论
大型 ML 模型开发生命周期需要一个可扩展的 ML 模型审批过程。在本文中,我们分享了一个包含人工干预的 ML 模型注册、审批和推广工作流实施方案,利用了 SageMaker 模型注册表、EventBridge、API Gateway 和 Lambda。如果您正在考虑为您的 MLOps 平台实施可扩展的 ML 模型开发流程,可以按照本文中的步骤实现类似的工作流。
关于作者
Tom Kim 是 AWS 的高级解决方案架构师,帮助客户通过在 AWS 上开发解决方案来实现其商业目标。他在多个行业特别是医疗保健和生命科学拥有丰富的企业系统架构和运营经验。Tom 始终在学习新的技术,以推动客户所需的商业成果,例如 AI/ML、生成 AI 和数据分析。他还喜欢在有时间时去新的地方旅行和打高尔夫球。
Shamika Ariyawansa 是 AWS 医疗保健与生命科学部门的高级 AI/ML 解决方案架构师,专注于生成 AI,尤其是大型语言模型LLM的训练、推理优化和 MLOps。他指导客户将高级生成 AI 嵌入到其项目中,确保 robust 的训练过程、高效的推理机制和流畅的 MLOps 实践,以实现有效且可扩展的 AI 解决方案。除了专业工作外,Shamika 还热爱滑雪和越野冒险。
猎豹加速器pc版Jayadeep Pabbisetty 是 Merck 的高级 ML/数据工程师,设计和开发 ETL 和 MLOps 解决方案,以帮助业务解锁数据科学和分析。他总是热衷于学习新技术,探索新途径,并获取在快速变化的 IT 行业中发展的必要技能。在业余时间,他追随对运动的热爱,并喜欢旅行和探索新地方。
Prabakaran Mathaiyan 是 Tiger Analytics LLC 的高级机器学习工程师,帮助客户实现商务目标,提供模型构建、训练、验证、监控、CICD 和改进的机器学习解决方案。他始终在学习新的技术,以推动客户所需的商业成果,例如 AI/ML、生成 AI、GPT 和 LLM。他也喜欢在有时间时打板球。
增强 AWS Glue 作业的监控和调试,通过新的作业可观察性指标,第二部分:使用 Grafana
通过新作业可观测性指标增强 AWS Glue 作业监控与调试第二部分关键点总结了解如何利用 Grafana 实现 AWS Glue 作业的实时监控。本文介绍了 AWS Glue 作业可观测性指标的整合,帮助用户可视化各类性能指标,从而提升数据管道的可靠性和效率。实时监控数据管道对于及时发现问题和减少...