Yara 如何使用 Amazon SageMaker 的 MLOps 功能来扩展其合成氨工厂的能源优化 PlatoBlockchain 数据智能。 垂直搜索。 人工智能。

Yara 如何使用 Amazon SageMaker 的 MLOps 功能在其合成氨工厂中扩展能源优化

Yara 是世界领先的作物营养公司,也是环境和农业解决方案的供应商。 Yara 的目标是发展一个对自然有益的食品未来,为客户、股东和整个社会创造价值,并提供更可持续的食品价值链。 Yara 支持我们实现一个没有饥饿的世界和一个受尊重的星球的愿景,奉行可持续价值增长战略,促进气候友好型作物营养和零排放能源解决方案。 Yara 还是世界上最大的氨、硝酸盐和 NPK 肥料。 因此,他们的生产部门是实现使命不可或缺的组成部分——明确表示要在安全、环境足迹、质量和生产成本等指标上成为世界领先者。 雅苒的长期目标是零排放和低成本的“未来工厂”。

在精益转型的基础上,Yara 加大了对数字解决方案的关注,以帮助他们实现雄心壮志。 为了领导这项工作,Yara 成立了一个名为数字制作的全球部门。 数字制作及其解决方案的成功是 Yara 的首要任务,Yara 在这一领域的努力也得到了显着提升。 一个关键的重点领域是利用作为其运营一部分而生成的大量数据。 因此,Yara 正在构建数据驱动的产品,以帮助他们优化生产、提高产品质量、提高生产现场的可靠性、减少排放、提高工人的安全性和生产力、自动化手动流程等等。

能源是许多生产工厂的主要成本组成部分; 因此,能源效率对盈利能力有重大影响。 然而,对于什么是良好的性能以及如何实现这一点,通常缺乏可靠的参考。 Yara 的能源负荷曲线 (ELC) 是一种解决方案,它使用与当前性能相比的最佳能源消耗历史性能。 如果当前消耗量与历史最佳值偏差太大,该工具会向操作员提供建议以控制能耗。

为了将 ELC 部署到生产工厂并将其扩展到全球多个站点,Yara 需要构建一个 MLOps 平台。 这将确保 Yara 能够可靠高效地训练、部署和维护模型。 此外,为了将其扩展到多个站点,Yara 需要自动化部署和维护流程。 在本文中,我们将讨论 Yara 如何使用 亚马逊SageMaker 功能,包括模型注册表, Amazon SageMaker模型监控器Amazon SageMaker管道 通过自动化和标准化 MLOps 实践来简化机器学习 (ML) 生命周期。 我们概述了设置,展示了为全球工厂构建、培训、部署和监控 ML 模型的过程。

解决方案概述

ELC 使用来自工厂的物联网 (IoT) 传感器数据。 这些传感器测量生产吞吐量、环境条件和原材料条件等指标。这些数据用于训练能源预测模型,然后用于生成每小时预测。 工厂操作员监控实际能耗并将其与 ELC 预测的最佳能耗进行比较。 如果当前能源消耗偏离最佳点太多,ELC 会根据分析模型提供调整内部过程变量以优化能源效率的行动。

ELC 托管在云端。 为了实时传输来自工厂的传感器数据,Yara 使用 AWS IoT Greengrass 与安全通信 AWS IoT核心 并将 IoT 数据导出到 AWS 云。 AWS IoT SiteWise 是一种托管服务,可以大规模收集、组织、搜索和使用来自工业设备的设备数据。 Yara 已经使用 Amazon API网关 将传感器数据公开给 ELC 等应用程序。

ELC 应用程序后端通过 Amazon ECS 部署,并为工厂操作员使用的前端 ELC 仪表板提供支持。 ELC 应用程序负责为工厂操作员提供每小时的预测能耗指标。 每个工厂都配备了自己的模型,因为它们的能源消耗特征不同。 此外,工厂根据其位置聚集到不同的 AWS 区域。

下图说明了此体系结构。

为了构建 ELC 并扩展到多个工厂,我们需要一个支持以下内容的 MLOps 解决方案:

  • 可扩展性 – 它可以根据数据量进行扩展。 有些工厂产生的数据比其他工厂多; 每个工厂每天可以产生数 GB 的数据。
  • 可扩展性 – 它可以部署到新的区域和帐户。
  • 重复性 – 它具有通用模板,我们可以使用这些模板来安装新工厂。
  • 高度灵活 – 它可以根据每个工厂的需要更改部署配置。
  • 可靠性和监控 – 它可以运行测试并清楚地了解所有活动工厂的状态。 如果发生故障,它可以回滚到之前的稳定状态。
  • 维护 – 该解决方案的维护开销应该很低。 它应该尽可能使用无服务器服务来减少基础设施的占用空间。

对于 ML,Yara 决定使用 SageMaker。 SageMaker 是一项完全托管的服务,涵盖整个 ML 工作流程。 以下功能对于选择 SageMaker 至关重要:

  • SageMaker 框架容器 – Yara 在 TensorFlow 上训练了 ELC 预测模型,并且借助 SageMaker 框架容器,Yara 能够以最少的代码更改将这些模型提升并转移到 SageMaker 中。
  • SageMaker管道 – SageMaker Pipelines 为数据科学家提供了一个 Python 接口来编写 ML 管道。 ELC 代码的很大一部分由训练和推理管道组成,它们是用 Python 定义的。
  • SageMaker模型注册表 – SageMaker 模型注册表使编目和版本控制模型成为可能。 此外,它还可以轻松管理模型元数据,例如训练指标。
  • SageMaker模型监视器 – Yara 希望监控传入数据的质量和分布以及 ELC 模型性能。 SageMaker Model Monitor API 提供数据和模型质量监控。

为了管理 ML 管道的持续集成和持续交付 (CI/CD),Yara 使用 亚马逊部署框架 (ADF)。 ADF 是 AWS 开发的开源框架,用于跨 AWS 组织内的多个 AWS 账户和区域管理和部署资源。 ADF 允许通过中定义的结构对应用程序或资源进行分阶段、并行、多账户和跨区域部署 AWS组织,同时利用诸如 AWS 代码管道, AWS 代码构建, AWS 代码提交AWS CloudFormation 与传统的 CI/CD 设置相比,可以减轻繁重的工作和管理工作。

解决方案概述

MLOps 平台的整个解决方案是在与 AWS专业服务. 从事该项目的团队由数据科学家、数据工程师和 DevOps 专家组成。 为了在多团队环境中促进更快的开发,Yara 选择使用 AWS 登陆 Zone 和组织集中创建、管理和管理不同的 AWS 账户。 例如,Yara 有一个中央部署帐户,并使用工作负载帐户来托管业务应用程序。 ELC 是一个流程优化用例,用于优化工作负载账户。 Yara Digital Production 团队还在优化以外的领域研究 ML 用例。 只要帐户是通过组织创建的,MLOps 框架就支持部署到任何工作负载帐户。

下图说明了此体系结构。

帐户设置组织

使用中央部署帐户可以轻松管理常见工件和 CI/CD 管道。 就这些常见工件的访问管理和安全性而言,这是一个更简单的设计,因为权限边界和加密密钥在一个地方集中管理。 在以下部分中,我们将引导您完成将新用例载入 Yara 的 MLOps 平台所需的步骤。

在帐户策略方面,Yara 具有沙盒、DEV、TEST 和 PROD 设置。 沙盒帐户用于实验和尝试新想法。 DEV 帐户是 CI/CD 管道的起点,所有开发都从这里开始。 部署帐户包含 CI/CD 管道定义,并且能够部署到 DEV、TEST 和 PROD 帐户。 此帐户设置如下图所示。

帐户设置 MLOps

加入新用例

对于这篇文章,我们假设我们有一个用例的工作原型,现在我们想要对其进行操作。 如果此用例属于新产品领域,我们首先需要使用 Organizations 来配置帐户,这会自动触发 ADF 引导这些帐户进行部署。 Yara 遵循 DEV>TEST>PROD 帐户策略; 但是,此配置不是强制性的。 数据账户公开用于数据访问的 API,对于新的用例,角色需要被授予必要的权限 AWS身份和访问管理 (IAM) 权限,以便他们可以访问数据 API。

接下来,我们需要定义将此用例部署到哪些帐户。 这是使用 ADF 中的部署图完成的。 部署映射是一个配置文件,其中包含管道的阶段和目标的映射。 为了运行部署图,ADF 使用 CodePipeline。 ADF 可以灵活地管理堆栈部署到的每个目标环境的参数。 这使得管理部署和使用较小的实例进行测试变得容易。

为了加密所有工件,例如代码、数据和模型文件,我们生成了一个 AWS密钥管理服务 (AWS KMS) 密钥。 您还可以使用服务器端加密。 但是,由于一些生成的工件是跨账户访问的,因此我们需要生成自己的密钥并管理其权限策略以授予跨账户访问权限。

最后,我们需要创建一个模型包组,以使用 SageMaker 模型注册表对模型的不同版本进行分组,这是 SageMaker 在模型通过 ML 生命周期时跟踪和管理模型的功能。

模型训练流水线

对于为 ELC 加入的每个新工厂,我们都会创建一个新的 SageMaker 培训管道。 该流水线包括数据预处理和模型训练步骤。 SageMaker 管道非常适合 Yara,因为它们提供了用于定义 ML 工作流的 Python 接口。 此外,工作流的不同步骤可以配置为以不同方式缩放。 例如,您可以为训练定义比模型评估步骤大得多的实例。 存储管道每个步骤的输入和输出参数,这使得跟踪每次运行及其输出变得容易。 培训工作流程的高级概述如下。

SageMaker 培训管道

作为模型评估阶段的一部分,评估数据集用于生成指标,例如训练模型的准确性和均方根误差 (RMSE) 偏差。 在将模型注册到模型注册表之前,将这些指标添加到模型元数据中。 目前,模型是手动提升到更高的环境,模型审批者可以查看模型指标,以确保新版本的性能优于当前模型。

模型通过模型注册表进行版本控制,每个工厂都有自己的模型包组。 此外,您可以使用模型注册表来跟踪哪些模型版本部署到哪些环境。 一个模型可以在 被拒绝, 等待手动批准批准 状态,并且只有处于 批准 状态可以部署。 这还可以防止意外部署未经批准的模型版本。

模型推理和监控管道

为了部署模型和设置模型监控,我们设置了第二个 SageMaker 管道。 ELC 应用程序按需为工厂操作员提供预测,因此可以通过从 ELC 后端进行的 API 调用访问模型。 SageMaker 推理端点提供具有 API 层的完全托管模型托管解决方案; 端点将模型输入作为有效负载并返回预测。 由于延迟对于不想等待很长时间才能获得更新预测的最终用户来说也是一个关键因素,因此 Yara 选择了 SageMaker 实时推理端点,它特别适合延迟要求非常低的工作负载。 最后,由于 ELC 应用程序在部署更新模型时不能停机,它依赖于 SageMaker 实时端点的蓝/绿部署能力来确保旧模型版本继续为预测服务,直到部署新版本.

下图说明了部署和监视设置。

SageMaker 推理管道

对于模型监控,Yara 运行 SageMaker 数据质量, 模型质量模型可解释性 监控。 数据质量监控检查一致性并生成数据分布统计数据。 模型质量监控检查模型性能并将模型准确性与训练指标进行比较. 模型监控报告每小时生成一次。 这些报告用于监控生产中的模型性能。 模型可解释性监控用于了解哪些特征对预测贡献最大。

模型可解释性的结果在 ELC 仪表板上共享,以便为工厂操作员提供更多关于推动能源消耗的因素的背景信息。 这也支持在能量消耗偏离最佳点的情况下确定调整内部过程的动作。

CI/CD 流程

训练管道的 CI/CD 流从 DEV 帐户开始。 Yara 遵循基于特性的开发模型,当开发出新特性时,特性分支被合并到主干中,主干开始部署。 ELC 模型在 DEV 帐户中进行训练,模型经过训练和评估后,将在模型注册表中注册。 模型批准者在将模型状态更新为 批准. 此操作生成触发模型推理管道部署的事件。 模型推理管道将新模型版本部署到 DEV 中的 SageMaker 端点。

部署端点后,开始测试以检查设置的行为。 为了进行测试,Yara 使用 CodeBuild 测试报告. 此功能允许开发人员在部署前和部署后运行单元测试、配置测试和功能测试。 在这种情况下,Yara 通过将测试负载传递到 SageMaker 端点并评估响应来运行功能测试。 通过这些测试后,管道会继续将 SageMaker 端点部署到 TEST。 ELC 后端也部署到 TEST,这使得在此环境中对应用程序进行端到端测试成为可能。 此外,Yara 在 TEST 中运行用户验收测试。 从 TEST 到 PROD 部署的触发器是手动批准操作。 新模型版本在 TEST 中通过功能和用户验收测试后,工程团队批准模型部署到 PROD。

下图说明了此工作流程。

代码流水线计划

共同组成

对于 ELC,我们使用所有部署阶段(DEV、TEST、PROD)和模型通用的几个组件。 这些组件驻留在我们的部署帐户中,包括模型版本控制、容器图像存储库、加密密钥和用于存储常见工件的存储桶。

Yara 如何使用 Amazon SageMaker 的 MLOps 功能来扩展其合成氨工厂的能源优化 PlatoBlockchain 数据智能。 垂直搜索。 人工智能。

使用通用工件有几个优点。 例如,不必为每个账户创建资源,这会强制账户之间的兼容性。 这意味着我们构建一次容器镜像并在所有目标账户中重复使用它们,从而减少构建时间。

此管道将不同的模型版本存储在部署帐户的通用模型注册表中。 从这个中心位置,模型可以部署到所有账户中而无需转移它们。 同样,使用集中存储的加密密钥可以更轻松地管理密钥和跨账户权限。

使用通用工件的一个缺点是新用例的入职步骤可能会变得更加复杂。 要加入新的用例,必须创建新的模型注册中心,如果需要,还需要创建新的容器镜像存储库。 我们还建议创建一个新的加密密钥来严格分离资源和存储的数据。

结论

在本文中,我们演示了 Yara 如何使用 SageMaker 和 ADF 构建高度可扩展的 MLOps 平台。 ML 是一种跨职能能力,团队将模型部署到不同的业务部门帐户。 因此,提供与组织的本机集成的 ADF 使其成为引导帐户设置 CI/CD 管道的理想选择。 在操作上,ADF 管道在中央部署帐户中运行,这使得获得部署的整体健康视图变得容易。 最后,ADF 使用 CodeBuild、CodeDeploy、CodePipeline 和 CloudFormation 等 AWS 托管服务,使其易于配置和维护。

SageMaker 提供广泛的 ML 功能,使团队能够更多地关注解决业务问题,而不是构建和维护基础设施。 此外,SageMaker Pipelines 提供了一组丰富的 API 来创建、更新和部署 ML 工作流,使其非常适合 MLOps。

最后,MLOps 提供了在生产环境中可靠高效地部署和维护 ML 模型的最佳实践。 对于大规模创建和部署 ML 解决方案的团队来说,实现 MLOps 至关重要。 在 Yara 的案例中,MLOps 显着减少了安装新工厂、推出 ELC 更新并确保模型质量受到监控所需的工作量。

有关如何使用 ADF 部署应用程序的更多信息,请参阅 例子.


关于作者

Yara 如何使用 Amazon SageMaker 的 MLOps 功能来扩展其合成氨工厂的能源优化 PlatoBlockchain 数据智能。 垂直搜索。 人工智能。 沙希尔曼苏尔 是 AWS 的数据科学家。 他的重点是构建可以大规模托管 AI 解决方案的机器学习平台。 他感兴趣的领域是 MLOps、特征存储、模型托管和模型监控。

Yara 如何使用 Amazon SageMaker 的 MLOps 功能来扩展其合成氨工厂的能源优化 PlatoBlockchain 数据智能。 垂直搜索。 人工智能。蒂姆·贝克尔 是 Yara International 的高级数据科学家。 在数字化生产中,他的重点是氨和硝酸生产的工艺优化。 他拥有热力学博士学位,热衷于将过程工程和机器学习结合起来。

Yara 如何使用 Amazon SageMaker 的 MLOps 功能来扩展其合成氨工厂的能源优化 PlatoBlockchain 数据智能。 垂直搜索。 人工智能。永约斯·卡维皮塔昆 是 Yara International 数字制作团队的高级数据科学家。 他拥有人工智能/机器学习博士学位,并拥有多年利用机器学习、计算机视觉和自然语言处理模型解决具有挑战性的业务问题的实践经验。

时间戳记:

更多来自 AWS机器学习