Line如何用MLOps重构AI开发流程

近年来,Line积极转型为一家AI企业,从自然语言处理、语音识别、计算机视觉、OCR、脸部识别、影音处理、资料分析到语音合成,各种AI技术都要涉猎。打开Line应用程序,无论浏览Line Today、Line TV、Line Music或是Line购物的页面,各种内容的个性化推荐,甚至是聊天消息的事实核实机制,背后都是靠ML模型来支持运行。

随着Line运用AI更深、更广,更加依赖AI来提供各项服务,Line也摸索出一套更快落地AI的方法,循序渐进的实践MLOps,从刚开始逐一导入辅助开发的工具,到进一步集成多项工具打造了ML平台,Line一步步重构过去的AI开发流程,就是要让Line集团的所有AI团队成员,通过一套更紧密分工协作的开发流程,加速AI规模化落地。

Line如何设计ML平台加强人员分工协作?

一开始实践MLOps时,Line韩国总部发起了一个名为Jutopia的ML平台开发项目,催生了Line当前AI开发的关键基础架构──ML Universe(简称MLU) 。Line台湾AI团队也跨国参与了这个项目,Line台湾资料工程部资深经理蔡景祥直言,这套系统性AI开发与运维方法就是MLOps。

Line中国的一位负责Jutopia项目的团队成员Changqin He,在去年底的Line开发者大会上首度公开了这项项目。他一开始就先提问:“资料科学家要通过什么方式,向企业说明数据分析的结果?资料工程师要如何确保程序的可靠性,维持每小时运行不中断?ML工程师又该如何保留ML开发过程的迭代,让其他项目重复使用?”

Line中国负责Jutopia项目的团队成员Changqin He表示,Line发起一项ML协作平台项目命名为Jutopia,目标要创建起一套标准化的ML开发工作流,通过系统性的AI协同开发方法,让AI各阶段的开发更顺畅。(图片来源/Youtube)

这三个问题,正是Netflix在思考未来的资料分析工具应具备哪些功能时,默认涵盖的三个方面,Netflix更以Jupyter Notebook,作为最可能实现上述三个场景的开发工具,决定在企业内深度导入使用。

Changqin He则是引用了这三个问题,点出AI协作的重要性,同样以Jupyter Notebook为核心发起一项ML协作平台项目,更取其前缀命名为Jutopia,目标要创建起一套标准化的ML开发工作流,通过系统性的AI协同开发方法,拉近开发团队成员间的距离,让AI各阶段的开发更顺畅。

比如说,Line的资料科学家过去在实例一个ML项目时,需要花费许多时间在工程端的程序开发上,身为过来人的蔡景祥形容,开发AI得从头到尾“手刻”一个ML开发流程,比如设置资料或模型的导入导出位置、系统间的串联,甚至是将模型打包成服务、部署上线等工作,全部都要包办。虽然也能将这些工作交由工程端人员执行,但两个角色之间也需要频繁沟通,才能确保开发流程不出错。

为了克服这个挑战,Line打造了一个ML平台(后来称为MLU)。这个平台最核心的功能,就将工程师各自打造的ML开发流程,转变为更容易重复使用的标准化流程,让工程师实例不同ML项目时,不用再花时间重新打造轮子。甚至,直接通过MLU平台的编辑器功能,就能快速设置不同项目各自需要的ML流程配置,再由系统自动执行指令,来完成开发环境的配置。

不只如此,MLU平台还集成了多项开发工具,让用户能在平台上直接调用开发工具来使用,而不用担心个别软件的开发环境设置,通过各种开发工具在不同环节的应用,不仅能进一步提升AI开发效率,也能同时作为沟通凭借,让不同角色成员能更容易介入协作。

“我们希望让写模型的人专心写模型,应用开发的人专心开发应用,不用再费心处理繁琐的系统串联与维护工作。”蔡景祥表示,让每个角色都能专注于自己的专业技能,来更有效率地进行AI开发,就是MLU平台创建的初衷。

Line如何角色分工参与AI关键任务开发?

“在AI开发流程中,没有人可以从头到尾做完所有事情。”蔡景祥坦言,随着AI团队逐渐扩大,会逐渐分化出不同的开发角色,这些角色可能包括了负责特征处理的资料工程师、负责模型开发的ML工程师、部署模型的IT运维人员,甚至不只是开发与运维端的人员,连商业面的资料分析师或产品经理,都需要在不同的开发阶段,运用各自的专业来优化AI。

像是在Line资料工程团队中,也分化出多样的角色来共同开发AI,分别是资料工程师、ML工程师、ML服务工程师,以及资料分析师4大角色。

若以打造游乐园来比喻,蔡景祥指出,资料工程师的任务,就是打造游乐园的基础建设,通过创建起一个稳固的资料收集设施,来根据需求搜集资料,需擅长如大数据架构、SQL、ETL、消息队列(Message queuing)等技术。

ML工程师,则像是游乐园的设计师,负责选出适当的资料集与算法,来创建起合适的ML模型,需具备的技能包括机器学习、深度学习、计算机视觉、NLP等。

ML服务工程师,则像是游乐园基础建设的实际施工与维护者,主要负责创建并运维一个ML平台,需熟悉的技术包括系统基础建设设计、DevOps。

资料分析师,则需比工程师具备更多的商业思维,要能够利用统计的方法,来分析模型上线后的实际成效,类似于在游乐园中观察哪些设施需要改善的角色,因此需具备商业知识、熟悉统计及资料可视化等技能。

除了分化出4大不同专业的AI开发角色,Line也将ML工作流程分为6大环节,分别是准备资料、探索资料、开发模型、训练模型、测试模型与部署上线,蔡景祥也以Line台湾实例AI的经验,来说明不同角色如何在各个开发环节中进行协作。

首先,在准备资料的阶段,由于领域知识扮演了重要角色,在资料标注的过程中,需要产品端、资料分析与资料工程专家相互协作,来筛选出有效的资料提供后续使用。

接着,进入探索资料阶段,则会交由ML工程师,根据资料特性来发掘资料潜在的价值,并通过特征工程萃取所需的资料特征。

有了资料,就能进入模型开发的阶段,此时,会需通过ML工程师、资料工程师及资料分析师的协作,选择适当的算法来开发模型,在这个阶段中,算法的挑选与模型的版本控制,成为协作过程中的重要的课题。

而后进入模型训练的阶段,则会交由ML工程师,负责进行超参数的调整与硬件计算资源的调度。

模型训练完成后,将进入测试模型的环节,同样交由ML工程师负责,来验证模型是否确实有效、是否达到预期的效益。

若没问题,就会进入最后的部署上线阶段,需要ML工程师、ML服务工程师共同协作,来确保模型在实验环境与线上环境中的表现并不会产生太大偏差,也不会随着时间衰退,实际部署后也要能应对大流量的预测需求,才能有效扩大提供服务。

“MLOps是一个在ML全生命周期中,涉及到的所有人员共同协作的方法。”蔡景祥表示,该如何让不同角色在ML开发各阶段相互协作,就是Line的AI团队,想用MLOps做到的事。