亚马逊AWS官方博客

Earth.com 和 Provectus 如何利用 Amazon SageMaker 实施 MLOps 基础设施

这篇博客文章是与 Provectus 的 Marat Adayev 和 Dmitrii Evstiukhin 共同撰写的。

当机器学习(ML)模型部署到生产环境中并用于推动业务决策时,挑战往往在于多个模型的运行和管理。机器学习运维(MLOps)为这一问题提供了技术解决方案,协助企业在集中式平台上管理、监控、部署和治理自己的模型。

大规模实时图像识别是一个复杂的技术问题,也需要实施 MLOps。通过实现对机器学习生命周期的有效管理,MLOps 有助于解释与实时图像识别应用程序开发相关的数据、模型和概念的各种变化。

其中一个应用程序是 EarthSnap,这是一款由人工智能驱动的图像识别应用程序,使用户能够使用智能手机上的摄像头识别所有类型的动植物。EarthSnap 由 Earth.com 开发,Earth.com 是一个领先的在线平台,面向对环境、自然和科学充满热情的爱好者。

Earth.com 的领导团队认识到 EarthSnap 的巨大潜力,并着手开发一款利用最新深度学习(DL,deep learning)架构进行计算机视觉(CV)的应用程序。然而,该团队在管理和扩展机器学习系统方面面临挑战,该系统由各种孤立的机器学习和基础设施组件组成,必须手动维护。该团队需要一个云平台和一个在提供生产就绪的人工智能/机器学习解决方案方面拥有成熟专业知识的战略合作伙伴,以便迅速将 EarthSnap 推向市场。这就是 AWS 首席咨询合作伙伴 Provectus 在机器学习、数据与分析以及 DevOps 方面的能力所在。

这篇文章介绍了 Provectus 和 Earth.com 如何通过实施端到端机器学习管道(作为托管 MLOps 平台和托管人工智能服务的一部分)来增强 EarthSnap 的人工智能驱动的图像识别功能、减少工程繁重工作并最大限度地降低管理成本。

最初方法面临的挑战

Earth.com 的高管团队迫切希望加快 EarthSnap 的推出。该团队迅速开始使用 Amazon SageMaker 构建图像识别模型,从而开发人工智能/机器学习功能。下图显示了手动按顺序运行的初始图像识别机器学习工作流。

Earth.com 开发的模型可以在各种 notebook 上使用。该团队需要手动顺序运行一系列复杂的 notebook 来处理数据和重新训练模型。端点也必须手动部署。

Earth.com 没有内部的机器学习工程团队,因此很难添加具有新物种特征的新数据集、发布和改进新模型以及扩展脱节的机器学习系统。

用于数据摄取、预处理和模型训练的机器学习组件是以互不关联的 Python 脚本和 notebook 的形式提供的,这需要工程师进行大量的手动繁重工作。

最初的解决方案还需要技术第三方的支持,以便快速有效地发布新模型。

解决方案的第一次迭代

Provectus 是 Earth.com 的重要合作伙伴,在增强 EarthSnap 的人工智能驱动的图像识别功能方面发挥了至关重要的作用。该应用程序的工作流通过实施端到端机器学习管道实现了自动化,这些管道作为 Provectus 的托管 MLOps 平台的一部分交付,并通过托管人工智能服务提供支持。

Provectus 发起了一系列项目发现会议,以检查 EarthSnap 现有的代码库,并清点 notebook 脚本,目的是重现现有的模型结果。模型结果恢复后,使用 Amazon SageMaker Pipelines(一种专门为机器学习构建的 CI/CD 服务)将机器学习工作流中分散的组件合并到一个自动化机器学习管道中。

最终管道包括以下组件:

  • 数据质量保证和版本控制 – 该步骤作为 SageMaker 处理作业运行,从 Amazon Simple Storage Service(Amazon S3)中摄取源数据,并为下一步准备元数据,只包含根据内部规则筛选的有效图像(URI 和标签)。还会将清单文件持久保存到 Amazon S3 中,包括重新创建该数据集版本所需的所有必要信息。
  • 数据预处理 – 这包括将多个步骤打包为 SageMaker 处理作业,并按顺序运行。这些步骤包括预处理图像、将图像转换为 RecordIO 格式、将图像拆分为数据集(完整、训练、测试和验证),以及准备图像供 SageMaker 训练作业使用。
  • 超参数调整 – SageMaker 超参数调整作业将训练集和验证集的一个子集作为输入,并在后台运行一系列小型训练作业,以确定完整训练作业的最佳参数。
  • 全面训练 – 该 SageMaker 训练作业步骤会根据超参数调整步骤得出的最佳参数,在整个数据上启动训练作业。
  • 模型评估 – 训练完最终模型后,运行的 SageMaker 处理作业步骤。该步骤将生成一份包含模型指标的扩展报告。
  • 模型创建 – 该 SageMaker ModelCreate 步骤将模型封装到 SageMaker 模型包中,并将该模型包推送到 SageMaker 模型注册表。

管道运行后,所有步骤都会自动运行。可以通过以下任何一种方法运行管道:

  • 在将新更改推送到主分支并更新插入管道的新版本之后,自动使用 AWS CodeBuild(CI)
  • 自动使用 Amazon API Gateway,可通过某个 API 调用触发
  • 在 Amazon SageMaker Studio 中手动运行

管道运行(使用上述方法之一启动)后,将生成一个经过训练的模型,该模型可以作为 SageMaker 端点进行部署。这意味着模型必须首先由 PM 或工程师在模型注册表中批准,然后使用 Amazon EventBridge 将模型自动部署到级环境中,并在内部进行测试。在确认模型按预期运行后,将模型部署到生产环境中(CD)。

Provectus 的 EarthSnap 解决方案可归纳为以下几个步骤:

  • 从完全自动化的端到端机器学习管道开始,让 Earth.com 更容易发布新模型
  • 在管道的基础上为 MLOps 平台提供强大的机器学习基础设施,其中包含用于简化人工智能/机器学习的所有组件
  • 通过提供托管人工智能服务(包括机器学习基础设施预置、维护以及成本监控和优化)来支持解决方案
  • 通过一系列活动(包括人工智能/机器学习工作、数据和数据库操作以及 DevOps),让 EarthSnap 达到预期状态(移动应用程序和后端)

在建立基础设施和流程后,在更大的数据集上对模型进行了训练和再训练。然而此时,该团队在尝试使用更大的数据集扩展模型时遇到了另一个问题。我们需要找到一种方法来重组解决方案架构,使其更加复杂并能够有效扩展。下图显示了 EarthSnap 人工智能/机器学习架构。

EarthSnap 的人工智能/机器学习架构是围绕一系列 AWS 服务设计的:

  • Sagemaker Pipeline 使用上述方法(CodeBuild、API、手动)之一运行,训练模型并生成构件和指标。这样,新版本的模型就会被推送到 Sagemaker 模型注册表中
  • 然后由内部团队(PM/工程师)在模型注册表中对模型进行审查,并根据提供的指标批准/拒绝模型
  • 一旦模型获得批准,模型版本将使用跟踪模型状态变化的 Amazon EventBridge 自动部署到级环境中
  • 如果模型通过了级环境中的所有测试,则模型将部署到生产环境中

最终解决方案

为了容纳所有必要的标签集,EarthSnap 模型的解决方案需要进行大量修改,因为事实证明,将所有物种整合到单一模型中既昂贵又低效。首先选择植物类别进行实施。

对植物数据进行了彻底检查,以便根据共同的内部特征将这些数据整理成子集。通过实施多模型父/子架构,重新设计了植物模型的解决方案。具体做法是在植物数据的分组子集上训练子模型,并在每个子类别的一组数据样本上训练父模型。子模型用于在内部分组的物种中进行精确分类,而父模型则用于将输入的植物图像归入子组。这种设计使得每个模型都需要不同的训练过程,从而创建独立的机器学习管道。有了这一新的设计,再加上之前建立的 ML/MLOps 基础,EarthSnap 应用程序能够涵盖所有重要的植物物种,从而提高了模型维护和再训练的效率。下图说明了父/子模型关系的逻辑方案。

在完成重新设计后,最终的挑战是确保为 EarthSnap 提供支持的人工智能解决方案能够管理由广泛用户群产生的大量负载。幸运的是,人工智能托管载入流程包含所有必要的自动化、监控和程序,可将解决方案过渡到生产就绪状态,从而无需任何进一步的资本投资。

结果

尽管迫切需要在几个月内开发和实施 EarthSnap 的人工智能驱动的图像识别功能,但 Provectus 还是设法在指定的时间范围内满足了所有项目要求。在短短 3 个月内,Provectus 对 EarthSnap 的机器学习解决方案进行了现代化改造和生产化,确保他们的移动应用程序已准备好公开发布。

机器学习和 MLOps 的现代化基础设施使 Earth.com 能够减少工程繁重工作,并最大限度地降低与 EarthSnap 维护和支持相关的管理成本。通过简化流程并实施 CI/CD 和 DevOps 的最佳实践,Provectus 确保了 EarthSnap 能够实现更高的性能,同时提高适应性、弹性和安全性。我们注重创新和效率,使 EarthSnap 能够完美运行,同时为所有用户提供无缝且用户友好的体验。

作为人工智能托管服务的一部分,Provectus 能够减少基础设施管理开销,建立定义明确的 SLA 和流程,确保全天候覆盖和支持,并提高整体基础设施的稳定性,包括生产工作负载和关键发布。我们启动了一系列增强措施,以提供托管的 MLOps 平台并增强机器学习工程。具体而言,现在 Earth.com 为其人工智能驱动的图像识别应用程序发布新的机器学习模型只需几分钟,而不是几天。

在 Provectus 的协助下,Earth.com 得以提前在 Apple Store 和 Playstore 发布自己的 EarthSnap 应用程序。提前发布标志着 Provectus 的全面工作对客户的重要性。

“能与 Provectus 合作,我感到无比兴奋。将业务技术方面的控制权移交给 Provectus,我的心情无法用言语形容。知道自己除了发展业务之外无需操心其他事情,这让我大大松了一口气。”

– Eric Ralls,EarthSnap 创始人兼首席执行官。

我们下一步的合作将包括:在管道中添加高级监控组件,加强模型再训练,以及引入 human-in-the-loop 步骤。

总结

Provectus 团队希望 Earth.com 能够继续与我们一起实现 EarthSnap 的现代化。我们期待为公司未来的扩张提供动力,进一步普及自然现象,并为保护我们的地球尽一份力。

要了解有关 Provectus 机器学习基础设施和 MLOps 的更多信息,请访问机器学习基础设施,并观看网络研讨会以获取更多实用建议。您还可以在人工智能托管服务处了解有关 Provectus 人工智能托管服务的更多信息。

如果您有兴趣在组织中为机器学习和 MLOps 构建强大的基础设施,请申请加入机器学习加速计划以开始构建。

Provectus 协助医疗保健和生命科学、零售和 CPG、媒体和娱乐以及制造业的公司通过人工智能实现目标。

Provectus 是 AWS 机器学习能力合作伙伴,也是人工智能优先转型咨询和解决方案提供商,协助在 AWS 上设计、架构、迁移或构建云原生应用程序。


Original URL: https://aws.amazon.com/blogs/machine-learning/how-earth-com-and-provectus-implemented-their-mlops-infrastructure-with-amazon-sagemaker/

关于作者

Marat Adayev:Provectus 机器学习解决方案架构师
Dmitrii Evstiukhin:Provectus 托管服务总监
James Burdon:AWS 高级初创企业解决方案架构师