Axfood 如何使用 Amazon SageMaker 在整个组织内加速机器学习 |亚马逊网络服务

Axfood 如何使用 Amazon SageMaker 在整个组织内加速机器学习 |亚马逊网络服务

这是 Axfood AB 撰写的客座帖子。 

在这篇文章中,我们分享了瑞典大型食品零售商 Axfood 如何通过与 AWS 专家密切合作进行原型设计并使用 亚马逊SageMaker.

斧头食品 是瑞典第二大食品零售商,拥有超过 13,000 名员工和 300 多家商店。 Axfood 的结构由多个分散的数据科学团队组成,负责不同的职责领域。数据科学团队与中央数据平台团队一起,通过人工智能和机器学习解决方案为组织带来创新和数字化转型。 Axfood 一直在使用 Amazon SageMaker 通过 ML 来培养数据,并且多年来一直在生产中使用模型。最近,生产中模型的复杂程度和数量呈指数级增长。然而,尽管创新步伐很快,但不同的团队已经开发出了自己的工作方式,并正在寻找新的 MLOps 最佳实践。

我们的挑战

为了在云服务和 AI/ML 方面保持竞争力,Axfood 选择与 AWS 合作,并与他们合作多年。

在我们与 AWS 举行的一次头脑风暴会议中,我们讨论了如何最好地跨团队协作,以加快数据科学和机器学习从业者的创新步伐和效率。我们决定共同努力构建 MLOps 最佳实践的原型。该原型的目的是为所有数据科学团队构建一个模型模板,以构建可扩展且高效的 ML 模型,这是 Axfood 新一代 AI 和 ML 平台的基础。该模板应桥接并结合 AWS ML 专家的最佳实践和公司特定的最佳实践模型——两全其美。

我们决定根据 Axfood 中当前最成熟的 ML 模型之一构建原型: 预测商店的销售额。更具体地说,是对食品零售店即将开展的水果和蔬菜活动的预测。准确的每日预测支持商店的订购流程,通过准确预测所需的店内库存水平来优化销售,从而最大限度地减少食物浪费,从而提高可持续性。这是我们原型的完美起点 - Axfood 不仅可以获得新的 AI/ML 平台,而且我们还将有机会对我们的 ML 功能进行基准测试并向领先的 AWS 专家学习。

我们的解决方案:Amazon SageMaker Studio 上的新 ML 模板

构建专为实际业务案例设计的完整机器学习管道可能具有挑战性。在本例中,我们正在开发一个预测模型,因此需要完成两个主要步骤:

  1. 训练模型以使用历史数据进行预测。
  2. 应用经过训练的模型来预测未来事件。

在 Axfood 的案例中,已经使用 SageMaker 笔记本建立了用于此目的的运行良好的管道,并由第三方工作流管理平台 Airflow 进行协调。然而,现代化我们的机器学习平台并转向 亚马逊SageMaker StudioAmazon SageMaker管道。迁移到 SageMaker Studio 提供了许多预定义的开箱即用功能:

  • 监控模型和数据质量以及模型可解释性
  • 内置集成开发环境(IDE)工具,例如调试
  • 成本/性能监控
  • 模型验收框架
  • 模型注册

然而,Axfood 最重要的激励是能够使用以下内容创建自定义项目模板: 亚马逊 SageMaker 项目 用作所有数据科学团队和机器学习从业者的蓝图。 Axfood 团队已经拥有强大且成熟的 ML 建模水平,因此主要重点是构建新架构。

解决方案概述

Axfood 提出的新 ML 框架围绕两个主要流程构建: 模型构建管道和批量推理管道:

  • 这些管道在两个独立的 Git 存储库中进行版本控制:一个构建存储库和一个部署(推理)存储库。它们共同构成了预测水果和蔬菜的强大管道。
  • 使用 SageMaker Projects 与第三方 Git 存储库 (Bitbucket) 和 Bitbucket 管道集成,将管道打包到自定义项目模板中,以实现持续集成和持续部署 (CI/CD) 组件。
  • SageMaker 项目模板包括与构建和部署管道的每个步骤相对应的种子代码(我们将在本文后面更详细地讨论这些步骤)以及管道定义(如何运行这些步骤的秘诀)。
  • 通过以下方式简化了基于模板构建新项目的自动化 AWS服务目录,其中创建了一个投资组合,作为多个产品的抽象。
  • 每个产品都转化为一个 AWS CloudFormation 模板,当数据科学家以我们的 MLOps 蓝图为基础创建新的 SageMaker 项目时会部署该模板。这会激活一个 AWS Lambda 函数创建一个 Bitbucket 项目,其中包含两个存储库(模型构建和模型部署),其中包含种子代码。

下图展示了该解决方案的架构。工作流程 A 描述了两个模型管道(构建和推理)之间的复杂流程。工作流程 B 显示了创建新 ML 项目的流程。

Axfood 如何使用 Amazon SageMaker 在整个组织内加速机器学习 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

模型构建管道

模型构建管道协调模型的生命周期,从预处理开始,经过训练,最终在模型注册表中注册:

  • 前处理 – 在这里,SageMaker ScriptProcessor 类用于特征工程,产生模型将用于训练的数据集。
  • 训练和批量转换 – 利用 SageMaker 的自定义训练和推理容器根据历史数据训练模型,并使用 SageMaker Estimator 和 Transformer 针对相应任务对评估数据创建预测。
  • 评价 – 通过将评估数据生成的预测与地面实况进行比较,对经过训练的模型进行评估 ScriptProcessor.
  • 基线工作 – 管道根据输入数据中的统计数据创建基线。这些对于监控数据和模型质量以及特征归因至关重要。
  • 模型注册 – 注册训练后的模型以供将来使用。该模型将由指定的数据科学家批准,以部署该模型用于生产。

对于生产环境,数据摄取和触发机制通过主要 Airflow 编排进行管理。同时,在开发过程中,每次将新提交引入模型构建 Bitbucket 存储库时,都会激活管道。下图直观地展示了模型构建管道。

Axfood 如何使用 Amazon SageMaker 在整个组织内加速机器学习 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

批量推理管道

批量推理管道处理推理阶段,包括以下步骤:

  • 前处理 – 数据使用预处理 ScriptProcessor.
  • 批量转换 – 该模型使用带有 SageMaker Transformer 的自定义推理容器,并根据输入的预处理数据生成预测。使用的模型是模型注册表中最新批准的经过训练的模型。
  • 后期处理 – 预测经过一系列后处理步骤,使用 ScriptProcessor.
  • 灭菌监测 – 持续监控完成对与数据质量、模型质量和特征归因相关的偏差的检查。

如果出现差异,后处理脚本中的业务逻辑将评估是否有必要重新训练模型。该管道计划定期运行。

下图说明了批量推理管道。工作流程A对应于预处理、数据质量和特征归因漂移检查、推理和后处理。工作流程 B 对应于模型质量漂移检查。这些管道是分开的,因为模型质量漂移检查只有在新的地面实况数据可用时才会运行。

Axfood 如何使用 Amazon SageMaker 在整个组织内加速机器学习 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

SageMaker模型监视器

Amazon SageMaker模型监控器 集成后,管道受益于以下方面的实时监控:

  • 数据质量 – 监控数据中的任何漂移或不一致
  • 模型质量 – 观察模型性能的任何波动
  • 特征归因 – 检查特征归因中的漂移

监控模型质量需要访问地面实况数据。尽管获取地面事实有时可能具有挑战性,但使用数据或特征归因漂移监控可以作为模型质量的有效代理。

具体来说,在数据质量漂移的情况下,系统会注意以下事项:

  • 概念漂移 – 这涉及输入和输出之间相关性的变化,需要基本事实
  • 协变量移位 – 这里,重点是独立输入变量分布的变化

SageMaker Model Monitor 的数据漂移功能精心捕获和审查输入数据、部署规则和统计检查。每当检测到异常情况时就会发出警报。

在使用数据质量漂移检查作为监控模型退化的代理的同时,系统还使用归一化折扣累积增益(NDCG)得分来监控特征归因漂移。该分数对特征归因排名顺序的变化以及特征的原始归因分数都很敏感。通过监控各个特征的归因漂移及其相对重要性,可以很容易地发现模型质量的下降。

模型的可解释性

模型可解释性是机器学习部署的关键部分,因为它确保了预测的透明度。为了详细了解,我们使用 亚马逊SageMaker澄清.

它通过基于 Shapley 值概念的模型无关特征归因技术提供全局和局部模型解释。这用于解码在推理过程中做出特定预测的原因。这些解释本质上是对比性的,可能会根据不同的基线而有所不同。 SageMaker Clarify 有助于在输入数据集中使用 K 均值或 K 原型来确定此基线,然后将其添加到模型构建管道中。此功能使我们能够在未来构建生成式人工智能应用程序,以加深对模型工作原理的理解。

工业化:从原型到生产

MLOps 项目具有高度自动化功能,可以作为类似用例的蓝图:

  • 基础设施可以完全重用,而种子代码可以针对每个任务进行调整,大多数更改仅限于管道定义以及预处理、训练、推理和后处理的业务逻辑。
  • 训练和推理脚本使用 SageMaker 自定义容器托管,因此只要数据采用表格格式,就可以容纳各种模型,而无需更改数据和模型监控或模型可解释性步骤。

完成原型工作后,我们转向如何在生产中使用它。为此,我们认为需要对 MLOps 模板进行一些额外的调整:

  • 模板原型中使用的原始种子代码包括在核心 ML 步骤(训练和推理)之前和之后运行的预处理和后处理步骤。然而,当扩大规模以将模板用于生产中的多个用例时,内置的预处理和后处理步骤可能会导致代码的通用性和再现性降低。
  • 为了提高通用性并最大限度地减少重复代码,我们选择进一步精简管道。我们没有将预处理和后处理步骤作为 ML 管道的一部分运行,而是在触发 ML 管道之前和之后将这些步骤作为主要 Airflow 编排的一部分运行。
  • 这样,特定于用例的处理任务就可以从模板中抽象出来,剩下的就是核心 ML 管道,以最少的代码重复执行跨多个用例的通用任务。用例之间不同的参数作为来自主 Airflow 编排的 ML 管道的输入提供。

结果:快速高效的模型构建和部署方法

与 AWS 合作的原型产生了一个遵循当前最佳实践的 MLOps 模板,现在可供 Axfood 的所有数据科学团队使用。通过在 SageMaker Studio 中创建新的 SageMaker 项目,数据科学家可以开始新的 ML 项目,快速无缝地过渡到生产,从而实现更高效的时间管理。这是通过将繁琐、重复的 MLOps 任务作为模板的一部分自动化来实现的。

此外,我们的机器学习设置中还以自动化的方式添加了一些新功能。这些收益包括:

  • 模型监控 – 我们可以对模型和数据质量以及模型可解释性进行漂移检查
  • 模型和数据沿袭 – 现在可以准确追踪哪些数据用于哪个模型
  • 模型注册 – 这有助于我们对生产模型进行编目并管理模型版本

结论

在这篇文章中,我们讨论了 Axfood 如何与 AWS 专家合作并使用 SageMaker 及其相关产品来改进现有 AI 和 ML 操作的操作和可扩展性。

这些改进将帮助 Axfood 的数据科学团队以更加标准化的方式构建机器学习工作流程,并将大大简化生产中模型的分析和监控,确保我们团队构建和维护的机器学习模型的质量。

请在评论部分留下任何反馈或问题。


作者简介

Axfood 如何使用 Amazon SageMaker 在整个组织内加速机器学习 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。比约恩·布洛姆奎斯特博士 是 Axfood AB 的人工智能战略主管。在加入 Axfood AB 之前,他在 Axfood 旗下的 Dagab 领导了一个数据科学家团队,构建创新的机器学习解决方案,其使命是为瑞典各地的人们提供优质且可持续的食品。比约恩 (Björn) 在瑞典北部出生和长大,闲暇时喜欢去雪山和公海探险。

Axfood 如何使用 Amazon SageMaker 在整个组织内加速机器学习 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。奥斯卡·巴生 是 Dagab 分析部门的高级数据科学家,他喜欢处理所有分析和机器学习方面的工作,例如优化供应链运营、构建预测模型以及最近的 GenAI 应用程序。他致力于构建更简化的机器学习管道,提高效率和可扩展性。

Axfood 如何使用 Amazon SageMaker 在整个组织内加速机器学习 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。帕维尔·马斯洛夫 是分析平台团队的高级 DevOps 和 ML 工程师。 Pavel 在 AWS 平台上的 DevOps 和 ML/AI 领域的框架、基础设施和工具开发方面拥有丰富的经验。 Pavel 是 Axfood 构建机器学习基础能力的关键人物之一。

Axfood 如何使用 Amazon SageMaker 在整个组织内加速机器学习 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。乔金·伯格 是分析平台团队负责人和产品负责人,总部位于瑞典斯德哥尔摩。他领导着一个由数据平台端 DevOps/MLOps 工程师组成的团队,为数据科学团队提供数据和机器学习平台。 Joakim 拥有多年领导来自不同行业的高级开发和架构团队的经验。

时间戳记:

更多来自 AWS机器学习