如何Earth.com和Provectus使用Amazon SageMaker实现其MLOps基础架构
这篇博客是与来自Provectus的Marat Adayev和Dmitrii Evstiukhin一起撰写的。
当机器学习(ML)模型部署到生产环境并用于推动业务决策时,挑战通常在于操作和管理多个模型。机器学习运营(MLOps)提供了这个问题的技术解决方案,帮助组织在集中平台上管理、监控、部署和管理其模型。
在大规模、实时的图像识别中,也需要实施MLOps。通过实现ML生命周期的有效管理,MLOps可以帮助考虑到与开发实时图像识别应用程序相关的各种数据、模型和概念的各种变化。
这样一个应用程序是EarthSnap,一款AI驱动的图像识别应用程序,可以使用智能手机上的相机识别所有类型的植物和动物。EarthSnap是由Earth.com开发的,Earth.com是一个领先的在线平台,热爱环境、自然和科学的爱好者。
Earth.com的领导团队意识到EarthSnap的巨大潜力,并着手创建一个应用程序,利用最新的计算机视觉(CV)深度学习(DL)架构。然而,他们在管理和扩展其ML系统方面面临挑战,该系统由各种隔离的ML和基础设施组件组成,必须手动维护。他们需要一个云平台和一个具有交付生产就绪AI/ML解决方案的经验丰富的战略合作伙伴,以快速将EarthSnap推向市场。这就是Provectus介入的地方,Provectus是AWS Premier Consulting伙伴,具有机器学习、数据和分析、DevOps的能力。
本文解释了Provectus和Earth.com如何增强EarthSnap的AI驱动图像识别功能,减少工程负担,并通过实现端到端ML管道作为托管MLOps平台和托管AI服务的一部分来降低管理成本。
初步解决方案面临的挑战
Earth.com的执行团队渴望加速EarthSnap的推出。他们迅速开始使用Amazon SageMaker构建图像识别模型来开发AI/ML功能。下图显示了最初的图像识别ML工作流程,手动顺序运行。
Earth.com开发的模型分布在各种笔记本上。它们需要手动顺序执行一系列复杂的笔记本才能处理数据并重新训练模型。端点也必须手动部署。
Earth.com没有内部ML工程团队,这使得添加新物种的新数据集、发布和改进新模型以及扩展其不连续的ML系统变得困难。
数据摄取、预处理和模型训练的ML组件可用作不连续的Python脚本和笔记本,这需要工程师进行大量的手动工作。
最初的解决方案还需要技术第三方的支持,以快速高效地发布新模型。
解决方案的第一次迭代
Provectus作为Earth.com的宝贵合作伙伴,在增强EarthSnap的AI驱动图像识别功能方面发挥了至关重要的作用。通过实现端到端ML管道作为Provectus托管的MLOps平台的一部分交付,并通过托管的AI服务支持,应用程序的工作流自动化。
Provectus启动了一系列项目发现会议,以检查EarthSnap的现有代码库并列举笔记本脚本,以重现现有模型结果。恢复模型结果后,将ML工作流程的分散组件合并为使用Amazon SageMaker Pipelines实现的自动化ML管道。
最终的管道包括以下组件:
- 数据质量保证和版本控制-此步骤作为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)。
EarthSnap的Provectus解决方案可以概括为以下步骤:
- 从完全自动化的端到端ML管道开始,以使Earth.com更轻松地发布新模型
- 在管道的基础上构建强大的ML基础架构,为MLOps平台提供所有组件,以简化AI / ML
- 通过提供托管的AI服务(包括ML基础架构提供,维护和成本监控和优化)来支持解决方案
- 通过一系列的参与,包括AI / ML工作,数据和数据库操作以及DevOps,将EarthSnap带到其所需的状态(移动应用程序和后端)
建立基础架构和过程后,使用更大的数据集训练和重新训练了模型。但是,在尝试使用更大的数据集扩展模型时,团队遇到了另一个问题。我们需要找到一种重构解决方案架构的方法,使其更加复杂并能够有效扩展。以下图表显示了EarthSnap AI / ML架构。
EarthSnap的AI / ML架构是围绕一系列AWS服务设计的:
- Sagemaker Pipeline使用上述方法之一(CodeBuild,API,手动)运行,训练模型并生成工件和指标。因此,新版本的模型被推送到Sagemaker Model注册表
- 然后,在模型注册表中由内部团队(PM /工程师)审查模型,并根据提供的指标批准/拒绝
- 一旦批准了模型,模型版本将使用Amazon EventBridge自动部署到阶段环境,该环境跟踪模型状态更改
- 如果模型在阶段环境中通过了所有测试,则将其部署到生产环境
最终解决方案
为了适应所有必要的标签集,EarthSnap模型的解决方案需要进行大量修改,因为将所有物种合并到单个模型中被证明既昂贵又低效。首先选择了植物类别进行实施。
对植物数据进行了彻底的检查,以根据共享的内部特征将其组织成子集。通过在组合的植物数据子集上训练子模型并在每个子类别中从一组数据样本中训练父模型来实现了植物模型的解决方案的重新设计。在内部组合的物种中使用子模型进行准确分类,同时使用父模型将输入植物图像分类为子组。这种设计需要为每个模型进行不同的培训过程,从而创建单独的ML管道。通过这种新设计以及之前建立的ML / MLOps基础,EarthSnap应用程序能够包括所有必要的植物物种,从而提高了模型维护和重新训练的效率。以下图表说明了父/子模型关系的逻辑方案。
重新设计完成后,最终的挑战是确保支持EarthSnap的AI解决方案能够管理广泛用户群体产生的巨大负载。幸运的是,托管的AI入门流程涵盖了所有必要的自动化,监控和程序,以使解决方案过渡到生产就绪状态,消除了任何进一步的资本投资的需要。
结果
尽管开发和实施EarthSnap的AI驱动图像识别功能的紧迫需求要求在几个月内完成,Provectus成功地在指定的时间范围内满足了所有项目要求。在短短的3个月内,Provectus现代化和生产化了EarthSnap的ML解决方案,确保他们的移动应用程序已经准备好公开发布。
ML和MLOps的现代化基础设施使Earth.com能够减少工程负担和最小化与维护和支持EarthSnap相关的行政成本。通过流程优化和实施CI/CD和DevOps的最佳实践,Provectus确保EarthSnap能够在提高其适应性、弹性和安全性的同时实现更好的性能。通过关注创新和效率,我们使EarthSnap能够无缝地运行,为所有用户提供流畅和用户友好的体验。
作为其托管的AI服务的一部分,Provectus能够降低基础架构管理开销,建立明确定义的SLA和流程,确保全天候覆盖和支持,并增加整体基础架构稳定性,包括生产工作负载和关键发布。我们启动了一系列增强措施,以提供托管的MLOps平台和增强ML工程。具体来说,现在Earth.com只需要几分钟,而不是几天,就可以发布其AI驱动的图像识别应用程序的新ML模型。
在Provectus的协助下,Earth.com能够提前在Apple商店和Playstore发布其EarthSnap应用程序。早期发布标志着Provectus为客户所做的全面工作的重要性。
“我非常兴奋能够与Provectus合作。用言语难以形容我对将企业的技术方面交给Provectus的信任。知道我不必担心除了发展业务方面之外的任何事情是一种巨大的安慰。”
—— Eric Ralls,EarthSnap的创始人兼首席执行官。
我们合作的下一步将包括:向管道添加高级监控组件,增强模型重新训练并引入人为环节。
结论
Provectus团队希望Earth.com将继续与我们一起现代化EarthSnap。我们期待为公司的未来扩展提供动力,进一步普及自然现象,并尽我们的一份力量保护我们的星球。
要了解有关Provectus ML基础设施和MLOps的更多信息,请访问Machine Learning Infrastructure,并观看网络研讨会以获取更多实用建议。您还可以在Managed AI Services了解更多有关Provectus托管AI服务的信息。
如果您有兴趣在组织中构建ML和MLOps的强大基础设施,请申请ML Acceleration Program以开始。
Provectus通过AI帮助医疗保健和生命科学、零售和CPG、媒体和娱乐以及制造业等行业实现其目标。
Provectus是AWS Machine Learning Competency Partner和AI-first转型咨询和解决方案提供商,帮助设计、架构、迁移或在AWS上构建云原生应用程序。
联系Provectus | 合作伙伴概述