APP下载

Line台湾首度揭露以MLOps概念打造的ML协作平台,透过整合开发工具减少沟通协作成本,来加速ML应用落地

消息来源:baojiabao.com 作者: 发布时间:2024-06-08

报价宝综合消息Line台湾首度揭露以MLOps概念打造的ML协作平台,透过整合开发工具减少沟通协作成本,来加速ML应用落地

为了让多元、复杂的角色能共同协作来开发ML,Line台湾以MLOps的概念,打造了一个机器学习平台MLU(ML Universe),整合了多项ML开发工具,来加快协作开发流程。

图片来源: 

图/Line台湾提供

从AI模型训练到部署上线,一个完整的ML工作流(ML Pipeline),需要资料端与工程端的人员共同协作来打造,这个结合了ML与DevOps的协作概念,被称为MLOps,开始受到越来越多企业重视,比如Line台湾就在12月18日的开发者大会中,揭露自家的资料工程研发团队,如何运用MLOps的观念打造MLU机器学习平台,来优化ML专案的开发管理流程。

MLOps也就是ML+Dev+Ops的概念,在ML阶段,需要运用不同资料设计初始模型;在开发(Dev)阶段,需要进行模型开发与测试,并持续整合、部署上线;在维运阶段(Ops),则需要持续交付,并透过监控系统来获得品质回馈。

要了解MLOps的重要性,就得先了解一般ML团队的组成,以及在ML开发各阶段可能面临的挑战。

Line台湾资料工程部资深经理蔡景祥指出,Line台湾的资料工程团队,分为资料工程师、ML工程师、ML服务工程师、资料分析师四大角色。蔡景祥解释,若以打造游乐园来比喻,资料工程师的任务,就是打造游乐园的基础建设,透过建立起一个稳固的资料收集设施,来根据需求搜集资料,需擅长如大数据架构、SQL、ETL、讯息伫列(Message queuing)等技术;而ML工程师,则像是游乐园的设计师,负责选出适当的资料集与算法,来建立起合适的ML模型,需具备的技能包括机器学习、深度学习、电脑视觉、NLP等。

ML服务工程师,则像是游乐园基础建设的实际施工与维护者,主要负责建立并维运一个ML平台,需熟悉的技术包括系统基础建设设计、DevOps;最后的资料分析师,则需比工程师具备更多的商业思维,要能够利用统计的方法,来分析模型上线后的实际成效,类似于在游乐园中观察哪些设施需要改善的角色,因此需具备商业知识、熟悉统计及资料视觉化等技能。

蔡景祥也将ML  Pipeline分为6大环节,分别是准备资料、探索资料、开发模型、训练模型、测试模型与部署上线,来说明不同角色如何在ML Pipeline的各个环节中协作。

在ML开发的不同阶段,需要不同角色协作来完成任务。

在准备资料的阶段,由于领域知识扮演了重要角色,过程中需要产品端、资料分析与资料工程专家相互协作,透过资料标注来取得有效的资料;接着,进入探索资料阶段,则会交由ML工程师,根据资料特性来发掘资料潜在的价值,运用特征工程来建立模型。

有了资料,就能进入开发模型的阶段,此时需透过ML工程师、资料工程师及资料分析师的协作,选择适当的算法来开发模型,在这个阶段中,算法的挑选与模型的版本控制,成为协作过程中的重要的课题;而后进入训练模型的阶段,则会交由ML工程师,负责进行超参数的调整与硬件运算资源的调度。

模型训练完成后,将进入测试模型的环节,同样交由ML工程师负责,来验证模型是否确实有效、是否达到预期的效益;若没问题,就会进入最后的部署上线阶段,需要ML工程师、ML服务工程师共同协作,来确保模型在实验环境与线上环境中的表现并不会产生太大偏差,也不会随着时间衰退,实际部署后也要能应付大流量的预测需求,才能有效扩大提供服务。 

在ML开发的各个阶段,也各有关键任务需要实现。

整合常用开发工具打造MLU平台,来加速ML开发协作

为了让多元、复杂的角色能共同协作来开发ML,Line以MLOps的概念,打造了一个机器学习平台MLU(ML Universe),目的要以一个完整的ML工作流,来快速开发有效且高品质的ML模型,同时减少过程中协作沟通的成本。

在MLU平台中,资料工程团队分别在ML Pipeline的各个阶段,整合了常用或自建的开发工具,来加快协作开发流程,包括提供能共同协作开发的Notebook工具、能设定Pipeline自动化的界面,也整合了GPU运算资源与Kubernetes丛集,来提供持续训练及稳健的运作环境,以及能持续监控模型表现的工具等。

在MLU平台中,Line台湾分别在特征商店、开发协作、Pipeline自动化、模型训练、部署、监控等环节,都整合了常用或自建的开发工具来加速开发协作。

LINE台湾工程师Penny Sun也进一步介绍了这些工具在协作上的帮助。首先,在资料准备与探索的阶段,会需要资料工程师来继进行特征工程,由于这项工作需经过反复的试验,团队建立了一个用来管理特征资料的特征商店(Feature Store),让资料工程师能将整理后的资料,透过一个统一的界面输入特征商店,将特征资料以标准化的方式来储存,如此一来,ML工程师与资料分析师,就能透过同一个界面来查找所需资料,不用再费时处理资料,借此达到重复利用特征资料的目的。

接着,在模型开发的环节,团队整合了Jupyter Notebook作为协作开发的工具,也整合了开源的Jnotebook Reader,让开发的Notebook可以轻易在各个团队间共享,Penny Sun也特别提到,由于Line台湾开发的每一份程式码,都需要至少两个人以上看过,团队也整合了Jupyter Notebook的协同作业工具ReviewNB,让检视程式码的工作更顺畅。

而在模型开发的阶段,过去需要工程人员协助建立起开发流程,但现在,团队自建了一个Pipeline Editor的工具,让ML开发者能直接透过视觉化拖拉设定的方式,将Pipeline的每个步骤流程串连起来,来降低与工程人员的协作成本;开发者在编辑完Pipeline之后,则会转换为开源工作流管理平台Airflow的脚本,来进行后续的部署、CI/CD的工作流程。

在模型训练的环节,Line台湾也透过由上百颗GPU支持的NSML平台来训练模型,满足大量的运算需求,并透过视觉化的方式来监控所使用的资源量;不只如此,NSML平台也提供了AutoML的功能,能节省ML训练过程中需要反复调校超参数的时间,针对持续训练时产生的不同模型版本,团队也整合了开源ML平台MLFlow,让开发者能进行版本控管,还能在后续模型测试的阶段,进行简单的分析验证。

在模型经过验证后,团队也运用开源ML模型部署平台BentoML,将选定的模型存取下来,将预测的服务打包成Docker Image放到Docker Hub上,再透过自动扩充的模型部署工具KFServing部署到K8s上,根据流量来自动扩充运算资源量。

最后,在上线后的模型成效监控环节,需监控的面向包括服务本身的健康程度,以及模型是否因环境的变化而衰退,前者可以透过普罗米修斯(Prometheus)搭配Grafana来监控,后者则需要根据业务逻辑来设定监控指标,透过BI仪表板来监控,根据模型衰退程度来触发模型重新训练。

“我们希望透过MLU平台,让更多ML开发者可以轻松创造出更多有价值的ML应用。”Penny Sun表示,希望借由MLU平台,在维持模型开发品质的同时,也消除不同角色之间的知识壁垒。

Line台湾运用MLU平台开发的三种ML应用

Penny Sun也实际举出三个运用MLU平台,来开发并维运模型的ML应用案例。

其一,是关键字搜寻ML模型,比如在Line购物中的关键字搜寻推荐,就是根据使用者查询的历史记录,来建立词与句子的嵌入模型。不过,由于关键字会跟着每天的潮流或趋势而改变,模型需要频繁的迭代更新,甚至每天都需要重新训练,为了加速模型的迭代,团队运用MLFlow工具来进行版本控管与模型验证,来确保重新训练后的模型品质也能维持在一定的水准,同时也建立仪表板来监控模型服务端的健康指标,来随时触发模型重新训练。

其二,则是文章内容推荐ML,比如Line Today中推荐给用户相同类型的文章来阅读。这个ML应用会以NLP模型为基础,比如BERT或ELECTRA,因此在衰退速度上较慢,需重新训练模型的频率也较低,不过,在训练这类模型时,会需要针对超参数进行反复的试验,也就需要运用AutoML自动调整参数的功能,来更有效率的找出表现较佳的模型,并透过KFServing来提供服务端可直接呼叫的API,来节省部署上线的开发时间。

其三,则是目标群众锁定(User Targeting)的ML模型,目的要在最小成本下找到最容易被吸引的使用者群,比如Line推播的贴图活动。这个ML应用与上述两者的最大不同,是该模型的预测结果是一份目标群众的名单,因此在模型持续交付的步骤中,实际上是透过线下的模型服务,来产生一份用户名单,而在模型监控上,则会在使用者行为改变时,重新进行实验来建立新模型。

2020-12-21 14:51:00

相关文章