这篇博文由 Cepsa 的高级数据科学家 Guillermo Ribeiro 合着。
机器学习 (ML) 已从学术环境和创新部门中出现的一种时尚趋势迅速发展成为在各个行业中为企业提供价值的关键手段。 这种从实验室实验到在生产环境中解决实际问题的转变与 多播,或者 DevOps 对 ML 世界的适应。
MLOps 有助于简化和自动化 ML 模型的整个生命周期,将重点放在源数据集、实验可重复性、ML 算法代码和模型质量上。
At CEPSA作为一家全球能源公司,我们使用 ML 解决我们业务线中的复杂问题,从对工业设备进行预测性维护到监控和改进我们炼油厂的石化流程。
在这篇文章中,我们将讨论如何使用以下关键 AWS 服务为 MLOps 构建参考架构:
- 亚马逊SageMaker,用于构建、训练和部署 ML 模型的服务
- AWS步骤功能,一种用于编排和自动化流程的无服务器低代码可视化工作流服务
- 亚马逊EventBridge,无服务器事件总线
- AWS Lambda,一种无服务器计算服务,允许您在不配置或管理服务器的情况下运行代码
我们还解释了我们如何应用这个参考架构来引导我们公司的新 ML 项目。
挑战
在过去 4 年中,Cepsa 的多个业务线启动了 ML 项目,但很快就开始出现某些问题和限制。
我们没有 ML 的参考架构,因此每个项目都遵循不同的实现路径,执行临时模型训练和部署。 如果没有处理项目代码和参数的通用方法,也没有 ML 模型注册表或版本控制系统,我们就失去了数据集、代码和模型之间的可追溯性。
我们还发现我们在生产中操作模型的方式有改进的空间,因为我们没有监控部署的模型,因此没有跟踪模型性能的方法。 因此,我们通常根据时间安排重新训练模型,因为我们缺乏正确的指标来做出明智的重新训练决策。
解决方案
从我们必须克服的挑战出发,我们设计了一个通用解决方案,旨在将数据准备、模型训练、推理和模型监控解耦,并采用集中式模型注册表。 通过这种方式,我们简化了跨多个 AWS 账户的环境管理,同时引入了集中式模型可追溯性。
我们的数据科学家和开发人员使用 AWS 云9 (用于编写、运行和调试代码的云 IDE)用于数据整理和 ML 实验,并将 GitHub 作为 Git 代码存储库。
自动训练工作流程使用数据科学团队构建的代码 在 SageMaker 上训练模型 并在模型注册表中注册输出模型。
一个不同的工作流管理模型部署:它从模型注册表中获取引用并使用创建推理端点 SageMaker 模型托管功能.
我们使用 Step Functions 实现了模型训练和部署工作流程,因为它提供了一个灵活的框架,可以为每个项目创建特定的工作流程,并以直接的方式编排不同的 AWS 服务和组件。
数据消费模型
在 Cepsa 中,我们使用一系列数据湖来满足不同的业务需求,所有这些数据湖共享一个通用的数据消费模型,使数据工程师和数据科学家更容易找到和消费他们需要的数据。
为了轻松处理成本和责任,数据湖环境与数据生产者和消费者应用程序完全分离,并部署在属于一个共同 AWS 组织的不同 AWS 账户中。
用于训练 ML 模型的数据和用作训练模型推理输入的数据可通过一组定义良好的 API 从不同的数据湖中获取 Amazon API网关,一种大规模创建、发布、维护、监控和保护 API 的服务。 API 后端使用 亚马逊雅典娜 (使用标准 SQL 分析数据的交互式查询服务)访问已存储在 亚马逊简单存储服务 (Amazon S3) 并在 AWS胶水 数据目录。
下图提供了 Cepsa 的 MLOps 架构的总体概述。
模型训练
训练过程对于每个模型都是独立的,由一个 Step Functions 标准工作流程,这使我们能够灵活地根据不同的项目要求对流程进行建模。 我们定义了一个基本模板,我们在大多数项目中重复使用,并在需要时进行微调。 例如,一些项目所有者决定添加手动门来批准新生产模型的部署,而其他项目所有者已经实施了自己的错误检测和重试机制。
我们还对用于模型训练的输入数据集执行转换。 为此,我们使用集成在训练工作流程中的 Lambda 函数。 在一些需要更复杂的数据转换的场景中,我们运行我们的代码 亚马逊弹性容器服务 (Amazon ECS) AWS 法门,一个运行容器的无服务器计算引擎。
我们的数据科学团队经常使用自定义算法,因此我们利用以下能力 在 SageMaker 模型训练中使用自定义容器, 依靠 Amazon Elastic Container注册 (Amazon ECR),一个完全托管的容器注册表,可以轻松存储、管理、共享和部署容器映像。
我们的大部分机器学习项目都基于 Scikit-learn 库,因此我们扩展了标准 SageMaker Scikit-learn 容器 包括项目所需的环境变量,例如 Git 存储库信息和部署选项。
通过这种方法,我们的数据科学家只需专注于开发训练算法并指定项目所需的库。 当他们将代码更改推送到 Git 存储库时,我们的 CI/CD 系统 (詹金斯 AWS 上托管)使用训练代码和库构建容器。 此容器被推送到 Amazon ECR 并最终作为参数传递给 SageMaker 训练调用。
训练过程完成后,生成的模型将存储在 Amazon S3 中,在模型注册表中添加一个引用,并将所有收集的信息和指标保存在实验目录中。 这确保了完全的可重复性,因为算法代码和库与经过训练的模型以及与实验相关的数据相关联。
下图说明了模型训练和再训练过程。
模型部署
该架构非常灵活,允许自动和手动部署经过训练的模型。 模型部署程序工作流通过 SageMaker 训练在训练完成后在 EventBridge 中发布的事件自动调用,但如果需要,它也可以手动调用,从模型注册表传递正确的模型版本。 有关自动调用的更多信息,请参阅 使用 Amazon EventBridge 自动化 Amazon SageMaker.
模型部署程序工作流从模型注册表中检索模型信息并使用 AWS CloudFormation,一种托管的基础设施即代码服务,可以将模型部署到实时推理端点或使用存储的输入数据集执行批量推理,具体取决于项目要求。
每当模型在任何环境中成功部署时,模型注册表都会更新一个新标签,指示该模型当前在哪些环境上运行。 每当删除端点时,其标签也会从模型注册表中删除。
下图显示了模型部署和推理的工作流程。
实验和模型注册
将每个实验和模型版本存储在一个位置并拥有一个集中的代码存储库,使我们能够解耦模型训练和部署,并为每个项目和环境使用不同的 AWS 账户。
所有的实验条目都存储了训练和推理代码的提交ID,因此我们对整个实验过程具有完整的可追溯性,并且能够轻松地比较不同的实验。 这可以防止我们在算法和模型的科学探索阶段执行重复工作,并使我们能够在任何地方部署我们的模型,独立于训练模型的帐户和环境。 这也适用于在我们的 AWS Cloud9 实验环境中训练的模型。
总而言之,我们拥有完全自动化的模型训练和部署管道,并且当某些事情无法正常工作或团队需要将模型部署到不同的环境以进行实验时,我们可以灵活地执行快速的手动模型部署。
详细用例:YET Dragon 项目
YET Dragon 项目旨在提高 Cepsa 在上海的石化工厂的生产性能。 为了实现这一目标,我们彻底研究了生产过程,寻找效率较低的步骤。 我们的目标是通过将组分浓度保持在阈值以下来提高工艺的产量效率。
为了模拟这个过程,我们建立了四个广义添加剂模型或 GAM,线性模型的响应取决于预测变量的平滑函数,以预测两个氧化过程、一个浓缩过程和上述产率的结果。 我们还构建了一个优化器来处理四个 GAM 模型的结果,并找到可以在工厂中应用的最佳优化。
尽管我们的模型是用历史数据训练的,但工厂有时可以在训练数据集中未注册的情况下运行; 我们预计我们的模拟模型在这些场景下无法正常工作,因此我们还使用隔离森林算法构建了两个异常检测模型,这些模型确定数据点与其余数据的距离以检测异常。 这些模型帮助我们检测这种情况,以便在发生这种情况时禁用自动优化过程。
工业化学过程是高度可变的,机器学习模型需要与工厂运营保持一致,因此需要频繁的再培训以及在每种情况下部署的模型的可追溯性。 YET Dragon 是我们的第一个 ML 优化项目,具有模型注册、实验的完全可重复性和完全托管的自动化训练过程。
现在,将模型投入生产的完整管道(数据转换、模型训练、实验跟踪、模型注册和模型部署)对于每个 ML 模型都是独立的。 这使我们能够迭代地改进模型(例如添加新变量或测试新算法)并将训练和部署阶段连接到不同的触发器。
结果和未来改进
我们目前能够自动训练、部署和跟踪 YET Dragon 项目中使用的六个 ML 模型,并且我们已经为每个生产模型部署了 30 多个版本。 这种 MLOps 架构已扩展到公司其他项目中的数百个 ML 模型。
我们计划继续基于此架构推出新的 YET 项目,这得益于引导时间的减少和 ML 管道的自动化,项目平均持续时间减少了 25%。 由于 YET Dragon 项目的直接结果,产量和集中度的提高,我们还估计每年可节省约 300,000 欧元。
这种 MLOps 架构的短期演变是朝着模型监控和自动化测试的方向发展。 我们计划在部署新模型之前针对先前部署的模型自动测试模型效率。 我们还致力于实施模型监控和推理数据漂移监控 Amazon SageMaker模型监控器,以自动化模型再训练。
结论
公司面临着以自动化和高效的方式将其 ML 项目投入生产的挑战。 自动化整个 ML 模型生命周期有助于缩短项目时间并确保更好的模型质量以及更快和更频繁的生产部署。
通过开发已被整个公司的不同业务采用的标准化 MLOps 架构,我们 Cepsa 能够加快 ML 项目引导并提高 ML 模型质量,提供可靠和自动化的框架,我们的数据科学团队可以在此基础上更快地进行创新.
有关 SageMaker 上 MLOps 的更多信息,请访问 适用于 MLOps 的 Amazon SageMaker 并查看其他客户用例 AWS机器学习博客.
关于作者
吉列尔莫·里贝罗·希门尼斯 是 Cepsa 的高级数据科学家,拥有博士学位。 在核物理。 他在数据科学项目方面拥有 6 年经验,主要在电信和能源行业。 他目前在 Cepsa 的数字化转型部门领导数据科学家团队,专注于机器学习项目的扩展和产品化。
吉列尔莫·梅南德斯·科拉尔 是 AWS Energy and Utilities 的解决方案架构师。 他在设计和构建软件应用程序方面拥有超过 15 年的经验,目前为能源行业的 AWS 客户提供架构指导,重点是分析和机器学习。
- "
- 000
- 100
- 15 年
- a
- 对,能力--
- 关于
- ACCESS
- 账号管理
- 横过
- Ad
- 添加
- 优点
- 驳
- 算法
- 算法
- 所有类型
- 允许
- 已经
- Amazon
- 其中包括
- 分析
- 分析
- 分析数据
- API
- APIs
- 应用领域
- 应用的
- 的途径
- 批准
- 建筑的
- 架构
- 围绕
- 相关
- 自动化
- 自动化
- 自动表
- 自动
- 自动化
- 自动化和干细胞工程
- 可使用
- AWS
- 因为
- 成为
- before
- 作为
- 如下。
- 最佳
- 博客
- 建立
- 建筑物
- 建立
- 商业
- 企业
- 案件
- 例
- 集中
- 一定
- 挑战
- 挑战
- 化学
- 云端技术
- 码
- 承诺
- 相当常见
- 公司
- 完成
- 完全
- 复杂
- 元件
- 组件
- 计算
- 浓度
- 分享链接
- 消耗
- 消费者
- 消费
- 容器
- 集装箱
- 成本
- 可以
- 外壳
- 创建信息图
- 创建
- 创建
- 目前
- 习俗
- 顾客
- 合作伙伴
- data
- 数据科学
- 数据科学家
- 决定
- 决定
- 根据
- 依靠
- 部署
- 部署
- 部署
- 部署
- 设计
- 设计
- 详细
- 检测
- 检测
- 确定
- 开发
- 发展
- 不同
- 数字
- 数字化改造
- 直接
- 讨论
- 龙
- 每
- 容易
- 效率
- 高效
- 新兴经济体的新市场。
- 使
- 端点
- 能源
- 发动机
- 工程师
- 环境
- 设备
- 估计
- 活动
- 进化
- 究竟
- 例子
- 期望
- 体验
- 实验
- 勘探
- 面对
- 高效率
- 快
- 专栏
- 精选
- 终于
- (名字)
- 高度灵活
- 柔软
- 专注焦点
- 以下
- 骨架
- 止
- ,
- 功能
- 未来
- 盖茨
- 其他咨询
- 混帐
- GitHub上
- 全球
- 目标
- 处理
- 有
- 帮助
- 帮助
- 高度
- 历史的
- 持有
- 托管
- 托管
- 创新中心
- HTTPS
- 数百
- 图片
- 履行
- 实施
- 改善
- 改进
- 改善
- 其他
- 包括
- 增加
- 独立
- 独立地
- 产业
- 行业中的应用:
- 信息
- 通知
- 基础设施
- 創新
- 输入
- 集成
- 互动
- 介绍
- 隔离
- 问题
- IT
- 保持
- 保持
- 键
- 发射
- 领导
- 学习
- 自学资料库
- 线
- 圖書分館的位置
- 寻找
- 机
- 机器学习
- 制成
- 保持
- 保养
- 使
- 制作
- 管理
- 管理
- 管理的
- 方式
- 手册
- 手动
- 手段
- 指标
- ML
- 模型
- 模型
- 显示器
- 监控
- 更多
- 最先进的
- 多
- 需要
- 操作
- 操作
- 优化
- 附加选项
- 秩序
- 组织
- 其他名称
- 己
- 业主
- 通过
- 性能
- 执行
- 相
- 物理
- 点
- 预测
- 问题
- 过程
- 过程
- 制片人
- 生产
- 项目
- 项目
- 提供
- 提供
- 优
- 发布
- 目的
- 目的
- 质量
- 实时的
- 减少
- 寄存器
- 在相关机构注册的
- 可靠
- 知识库
- 必须
- 岗位要求
- 响应
- 责任
- REST的
- 导致
- 成果
- 运行
- 运行
- 鳞片
- 缩放
- 科学
- 科学家
- 科学家
- 安全
- 系列
- 无服务器
- 服务
- 特色服务
- 集
- 上海
- Share
- 短期的
- 简易
- 模拟
- 单
- 情况
- SIX
- So
- 方案,
- 解决方案
- 一些
- 东西
- 具体的
- 速度
- 实习
- 标准
- 开始
- 存储
- 商店
- 精简
- 顺利
- 系统
- 目标
- 团队
- 队
- 电信
- test
- 测试
- 因此
- 透
- 门槛
- 通过
- 次
- 时
- 向
- 可追溯分析仪
- 跟踪时
- 跟踪
- 产品培训
- 转型
- 转换
- 过渡
- 下
- us
- 使用
- 平时
- 公用事业
- 折扣值
- 版本
- 定义明确
- 而
- 也完全不需要
- 工作
- 工作流程
- 加工
- 世界
- 写作
- 年
- 年
- 产量