Please enable Javascript to view the contents

什么是 MLOps

 ·  ☕ 4 分钟

1. 什么是 MLOps

MLOps 是 Machine Learning Operations 的缩写,描述的是围绕模型研发整个生命周期过程的标准化和工程化。

MLOps 包括以下几个关键步骤:

  • 数据管理,数据的存储、访问、清洗、转换
  • 模型开发,算法开发、模型构建
  • 模型训练与调优,使用数据训练模型,调整超参数优化模型,微调模型
  • 模型评估,测试模型的准确性、泛化能力、性能指标
  • 模型部署,将模型部署到预期环境,转换模型
  • 模型监控,监控模型的表现,性能退化、数据漂移、健壮性

另一个类似的概念是 ModelOps。ModelOps 涵盖的范围更广,不仅仅包含 MLOps 所关注的机器学习模型,而是所有人工智能领域的模型。

2. MLOps 的收益

2.1 提升模型研发效率

  • 自动化工具,加快模型的训练、部署、评估等过程
  • 促进协作,提高团队的工作效率

2.2 提高一致性

  • 通过版本控制,确保数据、模型参数、实验等每一步都可以被追踪
  • 标准化流程,减少人工操作带来的不一致性
  • 环境管理,保障各种环境的可复现、可交付

2.3 促进分工协作

  • 明确职责,算法、数据、运维工程师各自负责自己的工作
  • 专业化分工,不同协作

3. MLOps 的核心问题

  • 缩短模型研发的迭代周期

很多公司上线一个模型需要较长时间,通常达到 1 - 3 个月 。MLOps 希望通过标准化、自动化的流程来加速这个过程。

  • 各个角色之间无缝协作

模型的开发过程,涉及业务、数据、算法、运维等多种角色。MLOps 希望能够构建模型研发过程中各个角色之间协作的统一平台。

4. DevOps VS MLOps

DevOpsMLOps
关注点软件开发和 IT 运维机器学习模型的开发、部署和运维
团队组成软件工程师和 IT 运维人员数据科学家、机器学习工程师和 IT 运维人员
开发任务编写新功能代码或修复现有 bug构建和训练机器学习模型,进行实验性探索
测试范围执行单元和集成测试,关注代码质量除常规测试外,还需验证数据和模型质量
部署过程部署代码和应用程序部署机器学习流水线,自动重新训练和部署模型
生产环境监控应用程序和生产环境的错误和性能监控模型性能,跟踪数据变化和模型衰退
持续集成 (CI)测试和验证代码及组件测试和验证数据、数据架构和模型
持续交付 (CD)部署软件包或服务部署机器学习训练流水线,自动部署模型预测服务
持续训练 (CT)-自动重新训练和提供模型,ML 系统特有
目标加速软件交付和提高可靠性提高机器学习模型的效率和可靠性
挑战持续集成和自动化部署的挑战模型漂移、数据偏差、模型解释能力等

5. MLOps 包含的环节

  1. 数据提取

确定所需的数据,获取原始的数据集。

  1. 数据分析

探索数据的统计特征,比如数值范围、分布等; 检查数据质量,是否存在缺失值、异常值;识别数据特征和模式。

  1. 数据准备

将数据拆分为训练集、验证集、测试集;对数据进行必要的预处理,比如归一化、编码等;将数据转换为模型可接受的格式。

  1. 模型训练

选择合适的算法和模型架构,训练模型,并将训练好的模型保存下来。

  1. 模型评估

在测试集上评估模型效果,分析模型的优缺点,与基线模型对比性能。

  1. 模型验证

确认模型是否达到可部署的性能水平,验证模型的鲁棒性,评估模型的可解释性、公平性等质量指标。

  1. 提供模型

将模型部署到生产环境中,对外提供 API 接口。

  1. 模型监控

持续收集和监控模型在线服务的性能指标; 检测数据漂移,评估是否需要重新训练模型; 根据监控结果优化或者重新训练模型。

6. MLOps 分级

6.1 级别 0:手动过程

适用场景:

  • 不需要频繁更新模型

特性:

  • 依赖手动操作
  • 脚本驱动的交互式手动过程:数据分析、数据准备、模型训练和验证完全手动
  • 机器学习与操作分离:数据科学家与工程师分离,训练好的模型作为工件移交给工程团队
  • 不频繁发布迭代:新模型版本每年仅部署几次
  • 无 CI/CD:由于更改不频繁,持续集成和持续部署被忽略
  • 仅部署经过训练的模型作为服务,而不需要完整的机器学习平台
  • 不跟踪或记录模型预测和操作

存在的问题:

  • 模型可能无法适应环境动态变化或数据的变化
  • 需要在生产环境中主动监控模型质量
  • 需要频繁地使用最新数据重新训练模型
  • 需要不断尝试新的实现以生成模型

6.2 级别 1:机器学习流水线自动化

适用场景:

  • 自动使用新数据训练模型
  • 持续交付模型服务

特性:

  • 快速实验:机器学习实验步骤编排,自动执行转换,快速迭代
  • 自动使用新数据训练模型
  • 在不同环境中能平滑切换
  • 组件和流水线的模块化代码:代码模块化,组件容器化,以实现可重现性
  • 持续交付模型:流水线自动执行模型部署步骤

要求:

  • 数据和模型验证:自动化数据验证和模型验证步骤
  • 特征存储区:集中式存储区,标准化特征的定义、存储和访问。
  • 元数据管理:记录流水线每次执行的信息,实现数据和工件沿袭、可重现性
  • 机器学习流水线触发器:根据时间表或响应触发器自动执行流水线

6.3 级别 2:CI/CD 流水线自动化

适用场景:

  • 需要快速根据新的数据、新的业务环境训练模型
  • 对模型迭代速度和质量有较高的要求

特性:

  • 源代码控制:管理流水线和组件的源代码
  • 测试和构建服务:自动构建、测试和封装流水线及其组件
  • 部署服务:自动部署流水线实现到目标环境
  • 模型注册表:管理模型的不同版本
  • 特征存储区和元数据存储区:提供特征和元数据管理
  • 编排流水线:提供流水线编排能力

7. 参考


微信公众号
作者
微信公众号