购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 MLOps简介

1.3.1 MLOps的定义

对于究竟什么是MLOps,目前业内并没有标准的定义。我们来看几个比较流行的定义。

1.来自百科的定义

“MLOps是一套在生产环境中部署和运维机器学习模型的可靠和高效的实践。”

这种说法是把MLOps和ModelOps等同起来,笔者对此另有看法。笔者认为MLOps和ModelOps并不完全一样,MLOps的ML是指Machine Learning,而不只是Model的缩写,MLOps所包含的概念比ModelOps的概念要广泛,ModelOps指的是模型(Model)相关的开发和运维自动化,而MLOps关心的不只是Model,还包括Data和Code。所以MLOps相对ModelOps来说,范围更广,严格意义来说MLOps包含ModelOps。

2.来自著名人工智能云厂商谷歌云的定义

谷歌云在2021年发布的MLOps实施指南“Practitioners guide to MLOps:A framework for continuous delivery and automation of machine learning”中认为:“MLOps是一套标准流程和技术能力,用来快速和可靠地构建、部署和运维机器学习系统。”谷歌云认为MLOps是将DevOps的实现原则应用于机器学习系统,工程方面主要是实现机器学习系统的持续交付和流水线。它的看法抓住了各种Ops的关键工程部分,即自动化和流水线,但是笔者认为这一定义并不全面。这是因为MLOps不仅仅局限于工程上的自动化和流水线,还包括相应的平台和工具,以及对应的组织。

3.来自著名人工智能硬件厂商Nvidia的定义

Nvidia在官方博客发表了MLOps的定义:“MLOps是企业在不断扩大的软件产品和云服务帮助下成功运行人工智能系统的最佳实践。”简言之,MLOps是企业成功运行人工智能的一套实践。这个说法简单明确,强调了软件和云的支撑作用,认为MLOps覆盖机器学习模型研发、部署和更新的全生命周期,包括数据采集、数据注入、数据分析、数据标注、数据验证、数据准备、模型训练、模型评估、模型验证、模型部署等各个环节,具体如图1-3所示。

图1-3 Nvidia定义的MLOps

4.来自著名人工智能软件厂商Databricks的定义

Databricks在官网对MLOps做了定义:“MLOps是机器学习工程的核心功能,旨在简化将机器学习模型推向生产环境的过程,并随后维护和监控它们。MLOps是一个协作过程,通常由数据科学家、DevOps工程师和IT人员协作完成。”该看法增加了对多种角色协作的关注。

以上多种看法仅供参考,更多人认为MLOps就是机器学习领域的DevOps,即DevOps +机器学习= MLOps,确实MLOps的实现参考了DevOps的很多实现原则和实践并做了扩展。

笔者认为:MLOps是企业内人工智能系统成功落地过程中的一套最佳工程实践,它参考了DevOps的实现原则和实践,涉及AI工程师和AI科学家等多个角色,覆盖了人工智能系统研发和运维全生命周期,包括数据收集、数据分析、模型训练、模型迭代、模型部署、监控等活动,体现在代码、模型、数据的持续集成、持续部署、持续训练和持续监控等一系列操作自动化上。

拆开来看:

● MLOps是一套工程实践,偏重于工程,不是算法和模型;

● 适用于企业内部,不适用于实验室研究场景;

● 目的是成功落地机器学习项目,让人工智能技术在企业内发挥价值;

● 参考并扩展了很多DevOps实践;

● 涉及多个角色,包括AI科学家、AI工程师等;

● 活动覆盖人工智能系统研发和运维全生命周期;

● 管理对象包括代码、模型、数据;

● 实践活动包括持续集成、持续部署、持续训练和持续监控。

MLOps全流程如图1-4所示。

图1-4 MLOps全流程

首先,MLOps的核心是一个包含多个循环的流水线。如图1-4所示,MLOps覆盖人工智能系统落地的全生命周期活动,即在第一步的定义项目中,确定项目要解决的商业问题是什么,比如是一个安防领域内进行人脸识别的图像识别问题,还是一个给用户推荐可能喜欢的产品的推荐问题;在第二步的数据收集和加工中,收集对解决商业问题有用的数据(或者从系统后台日志系统收集,或者从第三方系统收集),收集之后还需要进行数据的加工;在第三步的模型训练和迭代中,设计各种模型和算法,使用给定的数据进行训练,训练效果不好还需要进行修改;在第四步的模型部署和监控中,训练完成后获得模型,把模型部署到线上,然后针对新的请求进行计算后给下游系统返回需要的结果(或者是人脸识别结果,或者是推荐的商品列表)。其中包括若干循环:模型训练不理想,需要返回到上一步重新进行数据收集和加工;模型监控下发现线上模型的预测效果有回退,需要返回到上一步重新进行模型训练;模型部署到线上后发现效果不达预期,可能需要收集更多数据进行更多特征工程,然后进行训练等,也可能返回到第一步,即重新开始定义项目范围和目标。

其次,MLOps包含CI、CD、CT、CM多个活动,具体含义如下。

● CI(Continuous Integration,持续集成):数据、代码、模型不停地产生,产生之后将引发流水线的一系列操作,例如单元测试、功能测试、代码质量检查、代码编译、代码打包等,最后生成二进制文件或者容器镜像包并保存在软件制品仓库中。产生的新数据(例如用户浏览、点击、下拉、点赞等行为数据)都会被后台自动记录下来,然后被ETL(抽取、转化、加载)工具进行处理,并保存到一个特定的地方,供下游服务使用和消费。

● CD(Continuous Deploy,持续部署):数据、代码、模型等持续部署到生产环境,供用户使用来产生价值。例如在代码完成持续集成并保存到软件制品仓库后,下一步是把这些软件制品部署到线上环境,操作过程包括小流量验证、分级部署、全流量部署等。数据和模型也会被持续部署到线上环境来发挥作用。

● CT(Continuous Training,持续训练):特指训练机器学习模型,数据注入之后需要不断进行训练,无论离线环境下的全量训练还是在线训练,都希望模型能更快反映现实规律。

● CM(Continuous Monitoring,持续监控):指当数据、代码、模型都部署到线上环境之后,需要对系统的稳定性和可靠性进行持续监控,还需要对机器学习模型的预测效果进行监控。对于前者,系统出现故障可以实时触发报警,然后由运维人员介入处理,或者按照预先设定的规则自动进行处理。对于后者,预测效果有较大的降低,低于一定阈值后需要更新模型,触发后台的持续训练完成模型的自动训练和更新。

这种持续集成、持续部署等活动的触发条件可以是代码的修改,也可以是数据的更新和产生。

最后,MLOps涉及的对象包括代码、模型和数据。DevOps实践中往往只包含代码,代码相关的操作包括代码管理、代码编译、代码测试等;相对于DevOps,MLOps增加了模型和数据相关的操作。

1.3.2 MLOps相关的工具和平台

为了支持MLOps全流程操作,我们需要各种相关的工具和平台。

1.流水线工具

为了支持MLOps全流程操作,我们需要借鉴DevOps实现原则和实践,通过自动化工具建立各种流水线,以提升整个流程的运转效率。

传统的DevOps实践中最关键的工具是Pipeline,具体的实现有Jenkins这种大家耳熟能详的流水线开源工具,也有Tekton这种云原生环境下的新锐流水线开源工具。

MLOps实践中需要各种开源的流水线工具,包括Airflow和MLflow等,详见本书第5章。

2.针对机器学习场景定制的大数据平台

MLOps实践需要复用大数据领域已有的分布式大规模存储和计算平台,并针对机器学习的具体场景做特定优化,以便适应机器学习场景中数据存储和计算的特殊需求。

(1)存储平台:特征数据和模型的存储与读取

存储平台是用来存储机器学习训练和预测所需要的特征数据和模型的,需要满足两方面要求:一方面满足利用海量数据进行训练的可扩展性需求,另一方面满足线上预测高吞吐、低延时需求。一般用两个不同的存储系统来做后台实现,一个用于离线训练,一个用于线上预测,两者之间需要进行数据同步。

(2)计算平台:流式、批处理特征计算

特征计算有两个场景:支持海量文件的批处理计算,支持来自消息队列的实时数据的流式计算。针对风控、预测、推荐场景,对于包含时间序列信息的结构化数据,如何高效、低成本地返回一些滑动窗口的操作,例如过去7天某客户消费的平均值、最大值、最小值之类的计算结果,也是很大的挑战。

(3)消息队列:接收实时数据

消息队列一般用于接收实时数据(包括电商领域的用户点击、浏览、收藏、查询数据),需要高效、不丢失地将数据传给后台系统,以便完成实时训练、实时统计等。

(4)调度工具:各种资源(计算/存储)的调度

各种存储和计算任务都需要调度底层分布式资源。此外,当预测到流量增长时,系统需要进行动态弹性扩容,快速增加虚拟机或者容器并进行业务部署来应对流量洪峰,以保证用户体验;当预测到流量降低时,系统需要进行动态弹性缩容,释放空闲的虚拟机或者容器,以减少资源占用来降低成本。

3. MLOps特有的平台

MLOps还包括一些机器学习实践所特有的平台,具体如下。

● Feature Store(特征平台):注册、发现、共享各种特征的平台。

● Serving Tool(预测工具):用来提供高效预测服务的工具。

● Model Store(模型平台):用于注册、存储的平台。

● Evaluation Store(评估平台):用于监控、A/B测试的平台。

其中,特征平台被认为是MLOps的核心基石,近几年发展非常快,详见第6章。

Serving Tool有很多种,各有其应用场景。本书将介绍一个Linux基金会AI和Data子基金会负责的项目Adlik,详见第8章。

Model Store和Evaluation Store用于确保模型在线上被监控和管理,限于篇幅,本书没有详细介绍。

1.3.3 MLOps的优势

MLOps的优势很多,包括提高人工智能系统研发和运维效率,提升人工智能业务可扩展性,并降低风险。

● 提高人工智能系统研发和运维效率:推行MLOps实践能让人工智能系统研发和运维团队以更快的速度实现模型开发和上线,从而实现业务价值。

● 提升人工智能业务可扩展性:推行MLOps实践能实现扩展到多个场景和多个模型的管理,可以同时训练、部署、监控数千个模型,并通过持续集成、持续部署、持续监控、持续训练等自动化方式提高模型的质量和迭代速度。

● 降低风险:通过对人工智能系统训练和运维全流程进行自动化管控,降低了数据合规风险,也通过持续监控等降低了模型效果衰退等风险。 fK8wLkc3Pn4fHfyFRnNJMyAlvFcMjBicRN21epWxdJp0O1XeTy38E9Bqql8SRkCy

点击中间区域
呼出菜单
上一章
目录
下一章
×