更新时间:2023-09-28 GMT+08:00
分享

MLOps简介

什么是MLOps

MLOps(Machine Learning Operation)是“机器学习”(Machine Learning)和“DevOps”(Development and Operations)的组合实践。随着机器学习的发展,人们对它的期待不仅仅是学术研究方面的领先突破,更希望这些技术能够系统化地落地到各个场景中。但技术的真实落地和学术研究还是有比较大的差别的。在学术研究中,一个AI算法的开发是面向固定的数据集(公共数据集或者某个特定场景固定数据集),基于单个数据集,不断做算法的迭代与优化,面向场景的AI系统化开发的过程中,除了模型的开发,还有整套系统的开发,于是软件系统开发中成功经验“DevOps”被自然地引入进来。但是,在人工智能时代,传统的DevOps已经不能完全覆盖一个人工智能系统开发的全流程了。

DevOps

DevOps,即Development and Operations,是一组过程、方法与系统的统称,用于促进软件开发、运维和质量保障部门之间的沟通、协作与整合。在大型的软件系统开发中,DevOps被验证是一个非常成功的方法。DevOps不仅可以加快业务与开发之间的互动与迭代,还可以解决开发与运维之间的冲突。开发侧很快,运维侧太稳,这个就是常说的开发与运维之间固有的、根因的冲突。在AI应用落地的过程中,也有类似的冲突。AI应用的开发门槛较高,需要有一定的算法基础,而且算法需要快速高效地迭代。专业的运维人员追求的更多是稳定、安全和可靠;专业知识也和AI算法大相径庭。运维人员需要去理解算法人员的设计与思路才能保障服务,这对于运维人员来说,门槛更高了。在这种情况下,更多时候可能需要一个算法人员去端到端负责,这样一来,人力成本就会过高。这种模式在少量模型应用的场景是可行的,但是当规模化落地AI应用时,人力问题将会成为瓶颈。

MLOps功能介绍

机器学习开发流程主要可以定义为四个步骤:项目设计、数据工程、模型构建、部署落地。AI开发并不是一个单向的流水线作业,在开发的过程中,会根据数据和模型结果进行多轮的实验迭代。算法工程师会根据数据特征以及数据的标签做多样化的数据处理以及多种模型优化,以获得在已有的数据集上更好的模型效果。传统的AI应用交付会直接在实验迭代结束后以输出的模型为终点。当应用上线后,随着时间的推移,会出现模型漂移的问题。新的数据和新的特征在已有的模型上表现会越来越差。在MLOps中,实验迭代的产物将会是一条固化下来的流水线,这条流水线将会包含数据工程、模型算法、训练配置等。用户将会使用这条流水线在持续产生的数据中持续迭代训练,确保这条流水线生产出来的模型的AI应用始终维持在一个较好的状态。

MLOps的整条链路需要有一个工具去承载,MLOps打通了算法开发到交付运维的全流程。和以往的开发交付不同,以往的开发与交付过程是分离的,算法工程师开发完的模型,一般都需要交付给下游系统工程师。MLOps和以往的开发交付不同,在这个过程中,算法工程师参与度还是非常高的。企业内部一般都是有一个交付配合的机制。从项目管理角度上需要增加一个AI项目的工作流程机制管理,流程管理不是一个简单的流水线构建管理,它是一个任务管理体系。

这个工具需要具备以下的能力:

  • 流程分析: 沉淀行业样例流水线,帮助用户能快速进行AI项目的参考设计,启动快速的AI项目流程设计。
  • 流程定义与重定义:以流水线作为承载项,用户能快速定义AI项目,实现训练+推理上线的工作流设计。
  • 资源分配:支持帐号管理机制给流水线中的参与人员(包含开发者和运维人员)分配相应的资源配额与权限,并查看相应的资源使用情况等。
  • 时间安排:围绕子流水线配置相应的子任务安排,并加以通知机制,实现流程执行过程之间配合的运转高效管理。
  • 流程质量与效率测评:提供流水线的任务执行过程视图,增加不同的检查点,如数据评估、模型评估、性能评估等,让AI项目管理者能很方便的查看流水线执行过程的质量与效率。
  • 流程优化:围绕流水线每一次迭代下,用户可以自定义输出相关的核心指标,并获取相应的问题数据与原因等,从而基于这些指标下,快速决定下一轮迭代的执行优化。
分享:

    相关文档

    相关产品