使用 Amazon SageMaker Pipelines PlatoBlockchain 数据智能提高 Amazon Packaging Innovation 的 ML 管道的稳定性和灵活性。 垂直搜索。 人工智能。

使用 Amazon SageMaker Pipelines 在 Amazon Packaging Innovation 提高 ML 管道的稳定性和灵活性

为了取悦客户并最大程度地减少包装浪费,亚马逊必须为每年运送的数十亿个包裹选择最佳包装类型。 如果对易碎物品(例如咖啡杯)使用的保护措施太少,则该物品在送达时会损坏,亚马逊会冒失去客户信任的风险。 使用过多的保护会导致成本增加和回收箱过满。 有数亿种产品可用,需要一种可扩展的决策机制来不断地从产品测试和客户反馈中学习。

为了解决这些问题,亚马逊包装创新团队开发了机器学习 (ML) 模型,可以对产品是否适合亚马逊包装类型(例如邮寄包、袋子或盒子)进行分类,或者甚至可以在没有额外包装的情况下运输。 此前,该团队开发了一个基于 AWS步骤功能 执行每周训练和每日或每月推理工作。 但是,随着时间的推移,管道无法提供足够的灵活性来启动具有新架构的模型。 新管道的开发带来了开销,需要数据科学家和开发人员之间的协调。 为了克服这些困难并提高部署新模型和架构的速度,该团队选择协调模型训练和推理 Amazon SageMaker管道.

在本文中,我们讨论了之前基于 Step Functions 的编排架构,概述了使用 Pipelines 的训练和推理架构,并强调了 Amazon Packaging Innovation 团队实现的灵活性。

Amazon Packaging Innovation 前 ML 管道的挑战

为了整合有关包性能的持续反馈,每周都会使用越来越多的标签训练一个新模型。 每月对整个产品库存进行推理,每天进行一次推理,为新增库存提供及时预测。

为了自动化训练多个模型的过程并提供预测,该团队开发了一个基于 Step Functions 的自定义管道来协调以下步骤:

  • 训练和推理作业的数据准备以及将预测加载到数据库(亚马逊Redshift)与 AWS胶水.
  • 模型训练和推理 亚马逊SageMaker.
  • 在验证集上计算模型性能指标 AWS批处理.
  • 运用 Amazon DynamoDB 用于存储模型配置(例如用于训练和验证的数据拆分比率、模型工件位置、模型类型以及用于训练和推理的实例数)、模型性能指标以及最新成功训练的模型版本。
  • 计算模型性能分数的差异,训练标签分布的变化,以及比较新旧模型版本之间的输入数据大小 AWS Lambda 功能。
  • 考虑到步骤众多,管道还需要在每个步骤都有可靠的警报系统,以提醒利益相关者注意任何问题。 这是通过以下组合实现的 Amazon Simple Queue服务 (Amazon SQS)和 亚马逊简单通知服务 (亚马逊社交网络)。 创建警报是为了通知业务利益相关者、数据科学家和开发人员任何失败的步骤以及模型和数据指标中的大偏差。

在使用该解决方案近 2 年之后,该团队意识到该实施仅适用于典型的 ML 工作流程,在该工作流程中,单个模型在验证数据集上进行训练和评分。 但是,该解决方案对于复杂的模型不够灵活,并且不能很好地应对故障。 例如,该架构不容易适应顺序模型训练。 如果不复制整个管道和修改基础设施,很难添加或删除一个步骤。 即使是数据处理步骤中的简单更改,例如调整数据拆分比率或选择一组不同的功能,也需要数据科学家和开发人员的协调。 当管道在任何一步失败时,都必须从头开始重新启动,从而导致重复运行并增加成本。 为了避免重复运行和不得不从失败的步骤重新开始,该团队将创建一个新的简化状态机副本。 这种故障排除导致状态机激增,每个状态机都从常见的失败步骤开始。 最后,如果训练作业遇到标签分布、模型分数或标签数量的偏差,数据科学家必须手动检查模型及其指标。 然后,数据科学家将访问包含模型版本的 DynamoDB 表并更新该表,以确保将正确的模型用于下一个推理作业。

维护此架构至少需要一个专门的资源和一个额外的全职开发资源。 鉴于扩展管道以适应新用例的困难,数据科学家开始开发自己的工作流,这反过来又导致代码库不断增长、具有相似数据方案的多个数据表以及分散的模型监控。 这些问题的累积导致团队生产力降低和管理费用增加。

为了应对这些挑战,Amazon Packaging Innovation 团队评估了其他现有的 MLOps 解决方案,包括 SageMaker Pipelines(2020年XNUMX月发布公告). 管道是 SageMaker 的一项功能,用于构建、管理、自动化和扩展端到端 ML 工作流。 Pipelines 允许您减少整个 ML 工作流程中的步骤数量,并且足够灵活以允许数据科学家定义自定义 ML 工作流程。 它负责监视和记录步骤。 它还带有一个模型注册表,可以自动对新模型进行版本控制。 模型注册表具有内置的批准工作流程,可以选择模型用于生产中的推理。 管道还允许缓存使用相同参数调用的步骤。 如果找到以前的运行,则会创建一个缓存,这样可以轻松重新启动,而不是重新计算成功完成的步骤。

在评估过程中,Pipelines 以其支持和扩展当前和未来工作流的灵活性和功能可用性从其他解决方案中脱颖而出。 切换到 Pipelines 将开发人员的时间从平台维护和故障排除中解放出来,并将注意力转移到添加新功能上。 在这篇文章中,我们介绍了亚马逊包装创新团队使用 Pipelines 进行训练和推理工作流程的设计。 我们还讨论了团队通过切换到 Pipelines 实现的好处和成本降低。

训练管道

亚马逊包装创新团队使用越来越多的标签为每种包装类型训练模型。 下图概述了整个过程。

该工作流首先从 Amazon Redshift 数据库中提取标签和特征并将数据卸载到 亚马逊简单存储服务 (Amazon S3) 通过计划的提取、转换和加载 (ETL) 作业。 与输入数据一起,具有模型类型和参数的文件对象被放置在 S3 存储桶中。 此文件通过 Lambda 函数充当管道触发器。

后续步骤完全由数据科学家使用 SageMaker Python SDK for Pipelines 完全自定义和定义。 在我们在本文中呈现的场景中,输入数据被拆分为训练集和验证集,并通过启动 SageMaker Processing 作业保存回 S3 存储桶中。

当 Amazon S3 中的数据准备就绪时,SageMaker 训练作业将启动。 在成功训练和创建模型后,将通过 SageMaker 批量转换作业对验证数据执行模型评估步骤。 然后使用 SageMaker 处理作业将模型指标与前一周的模型指标进行比较。 该团队定义了多个自定义标准来评估模型性能的偏差。 根据这些标准,该模型要么被拒绝,要么被批准。 如果模型被拒绝,则先前批准的模型将用于下一个推理作业。 如果模型获得批准,其版本将被注册并且该模型用于推理作业。 利益相关者通过以下方式收到有关结果的通知 亚马逊CloudWatch 警报。

以下截图来自 亚马逊SageMaker Studio 显示了训练流水线的步骤。

PackagingInnovation-SMP-培训

Pipelines 跟踪每个管道运行,您可以在 Studio 中对其进行监控。 或者,您可以使用查询运行进度 博托3 或者 AWS命令行界面 (AWS CLI)。 您可以在 Studio 中可视化模型指标并比较不同的模型版本。

推理管道

亚马逊包装创新团队每月更新对整个产品库存的预测。 使用最新的训练模型生成每日预测,为新添加的库存提供及时的包装建议。 这需要推理管道每天运行不同数量的数据。 下图说明了此工作流程。

包装创新-推理-架构

与训练管道类似,推理从将数据从 Amazon Redshift 卸载到 S3 存储桶开始。 放置在 Amazon S3 中的文件对象会触发启动推理管道的 Lambda 函数。 这些特征已准备好用于推理,并且使用 SageMaker 处理作业将数据拆分为大小合适的文件。 接下来,管道会识别最新批准的模型来运行预测并将它们加载到 S3 存储桶中。 最后,使用 SageMaker 处理作业中的 boto3-data API 将预测加载回 Amazon Redshift。

以下来自 Studio 的屏幕截图显示了推理管道的详细信息。

使用 Amazon SageMaker Pipelines PlatoBlockchain 数据智能提高 Amazon Packaging Innovation 的 ML 管道的稳定性和灵活性。 垂直搜索。 人工智能。

选择使用 SageMaker Pipelines 构建 ML 工作流的好处

在本节中,我们将讨论 Amazon Packaging Innovation 团队通过切换到 Pipelines 进行模型训练和推理而实现的收益。

开箱即用的生产级 MLOps 功能

在为下一个 ML 管道解决方案比较不同的内部和外部解决方案时,一名数据科学家能够在不到 3 周的时间内在 Studio Jupyter 环境中使用 Pipelines 制作原型并开发完整版本的 ML 工作流。 即使在原型设计阶段,很明显 Pipelines 提供了生产级工作流程所需的所有必要基础设施组件:模型版本控制、缓存和警报。 这些功能的即时可用性意味着无需花费额外的时间来开发和定制它们。 这是价值的明确展示,让亚马逊包装创新团队相信 Pipelines 是正确的解决方案。

开发 ML 模型的灵活性

团队中的数据科学家最大的收获是能够轻松地试验和迭代不同的模型。 无论他们喜欢哪种框架用于 ML 工作以及涉及的步骤和功能的数量,Pipelines 都能满足他们的需求。 数据科学家有权进行实验,而无需等待进入软件开发冲刺以添加额外的功能或步骤。

降低成本

SageMaker 的管道功能是 免费:您只需为与训练和推理相关的计算资源和存储付费。 但是,在考虑成本时,您不仅需要考虑所用服务的成本,还需要考虑维护工作流、调试和修补工作流所需的开发人员时间。 使用管道编排更简单,因为它由更少的部分和熟悉的基础设施组成。 以前,添加一项新功能需要亚马逊包装创新团队至少有两个人(数据科学家和软件工程师)来实施。 通过重新设计的管道,工程工作现在转向围绕管道的额外自定义基础设施,例如创建用于跟踪机器学习代码的单一存储库、简化跨 AWS 账户的模型部署、开发集成的 ETL 作业和通用可重复使用的功能。

缓存具有相似输入的步骤的能力也有助于降低成本,因为团队不太可能重新运行整个管道。 相反,他们可以轻松地从失败点开始。

结论

亚马逊包装创新团队每月训练 ML 模型,并定期更新对推荐产品包装类型的预测。 这些建议通过减少浪费和让客户满意来帮助他们实现多个团队和公司范围的目标。 训练和推理管道必须定期可靠地运行,同时允许不断改进模型。

过渡到 Pipelines 使团队能够在 2 个月内将四个新的多模式模型架构部署到生产环境中。 使用以前的架构部署新模型需要 5 天(使用相同的模型架构)到 1 个月(使用新的模型架构)。 使用 Pipelines 部署相同的模型使团队能够将相同模型架构的开发时间减少到 4 小时,而新模型架构的开发时间减少到 5 天。 这相当于节省了近 80% 的工作时间。

额外的资源

有关更多信息,请参见以下资源:


作者简介

Ankur-Shukla-作者安库尔舒克拉 是位于帕洛阿尔托的 AWS-ProServe 的首席数据科学家。 Ankur 拥有超过 15 年的咨询经验,直接与客户合作,帮助他们用技术解决业务问题。 他在 AWS 内领导多项全球应用科学和 ML-Ops 计划。 在空闲时间,他喜欢阅读和与家人共度时光。

Akash-Singla-作者阿卡什辛格拉 是亚马逊包装创新团队的高级系统开发工程师。 他拥有超过 17 年的经验,通过技术为多个垂直业务领域解决关键业务问题。 他目前专注于为各种以包装为中心的应用程序升级 NAWS 基础设施,以更好地扩展它们。

Vitalina-Komashko-作者维塔利娜·科马什科 是 AWS 专业服务的数据科学家。 她拥有药理学和毒理学博士学位,但从实验工作转向数据科学,因为她想“拥有数据生成和结果解释”。 在她职业生涯的早期,她曾在生物技术和制药公司工作。 在 AWS,她喜欢为各行各业的客户解决问题并了解他们面临的独特挑战。

Prasanth-Meiyappan-作者巴山梅亚潘 是 4 年多亚马逊包装创新的高级应用科学家。 他在机器学习方面拥有 6 年以上的行业经验,并出货产品以改善搜索客户体验和改善客户包装体验。 Prasanth 热衷于可持续发展,并拥有气候变化统计建模博士学位。

Matthew-Bales-作者马修·贝尔斯 是一名高级研究科学家,致力于利用客户反馈和机器学习来优化包装类型选择。 在加入亚马逊之前,马特曾在德国担任过粒子物理学模拟的博士后,在前世,他曾在一家初创公司担任放射性医疗植入设备的生产经理。 他拥有博士学位。 密歇根大学物理学博士。

时间戳记:

更多来自 AWS机器学习