您当前的位置是:  首页 > 资讯 > 文章精选 >
 首页 > 资讯 > 文章精选 >

【AI开发也要拥抱DevOps】企业规模化落地AI关键是MLOps(上)

2021-04-06 13:38:35   作者:   来源:CTI论坛   评论:0  点击:


  随着企业AI走出实验阶段,开始分化出多种开发角色,如何透过打造如产线般紧密分工的协作方法,来加速落地AI?关键就是MLOps的实践
  这是一张在AI领域流传已久的ML Pipeline流程图。如图所示,企业要落地一个AI应用,需做的事情远比训练一个模型多更多,甚至可以说,整个AI开发系统只有非常少的程式码,是训练模型所使用。(图片来源/Ambiata)
  脸书随处可见AI应用的身影,从个人化贴文排序、新闻推荐、广告推播、人脸标注到仇恨言论过滤,背后都靠AI进行自动化决策。这个开发规模有多大?脸书2016年在自家部落格公开了一个惊人的数据,脸书工程团队在过去短短一年多的时间内,就训练了超过100万个ML模型,更达到每秒600万次预测。换句话说,平均只要1天,就能训练出两、三千个AI模型。为何脸书可以这麽大规模的开发出各种AI应用,关键就是2014年着手打造的ML平台FBLearner Flow,这套AI开发流程,大大减少了AI开发过程中的人工作业。
  举例来说,在FBLearner Flow平台上,提供了多种预定义ML流程(Pipeline),不同的AI专案能根据需求重复利用这些开发流程,甚至还有一个AI实验管理UI介面,让开发者不用写任何一行前端程式,就能快速建立模型实验的工作流,管理每日上千次的模型实验结果,更能线上快速检视模型输出、修改标签与原始数据,甚至能启动大规模部署工作,并监控模型的表现。
  这正是脸书训练出百万个AI模型的关键,不只降低工程师手动开发作业,还建立可重复使用的ML流程,让工程师能更专注於特徵工程或模型训练,藉此提升AI开发速度与模型准确率,甚至,非AI专业的软体工程师,也能用这个平台来开发AI应用。勤业众信风险管理谘询副总经理廖子毅指出,这个作法,正是近两年崛起的MLOps概念的体现。
  MLOps:一种加速AI落地的人员协作方法
  什麽是MLOps?为何这两年,成了企业AI团队高度关注的议题?
  越来越多企业在AI的发展,走出了实验阶段,开始更大规模的落地应用。为了加速AI开发,开始有企业仿效生产线设计,针对AI开发来建立一个系统性作业流程。
  尤其,当AI模型进入持续交付、持续部署、成效监控与迭代更新的阶段,要串起整个模型从开发到运维的全生命周期循环,更需要AI模型训练的资料科学团队,和负责AI应用部署落地的IT团队,彼此紧密协作,来维持AI上线后的表现。
  两种不同角色团队协作的概念,听起来很熟悉,在软体开发领域一点都不陌生,就是已经盛行多年的DevOps要解决的课题,运用自动化测试、持续整合、持续部署的工具,推动开发与运维人员更紧密协作,来加速软体版本迭代更新。近来,国外更直接将DevOps概念延伸到AI开发领域,取ML与DevOps的字尾,创造出「MLOps」的名词,提倡AI开发也应该纳入DevOps文化,透过AI、IT团队不同角色间的紧密协作,来加速AI落地。
  不过,比起DevOps的实践,是在软体部署的环节,强调开发与运维人员间的协作,MLOps更提倡AI全生命周期各角色的协作,透过将AI开发流程标准化与简化,建立起一套系统性协作新方法。
  因为相较於软体开发,AI开发涉及的角色与工作流程都更加复杂。从一张在AI领域流传已久的ML Pipeline流程图可以了解,企业要落地一个AI应用,需做的事情远比训练一个模型多更多,甚至可以说,整个AI开发系统只有非常少部分的程式码,是训练模型所使用,除此之外,还需进行环境配置、资料搜集、特徵工程、资料验证、运算资源管理、实验分析、流程管理、部署上线及成效监测等工作,更需众多不同专业角色来共同协作。
  「在ML开发流程中,没有人可以从头到尾做完所有事情。」Line台湾资料工程部资深经理蔡景祥格外有体会的说,AI团队的不同角色都得各司其职,藉由更紧密的分工协作,在不同开发阶段优化AI。
  他以自家经验来解释,Line台湾AI团队中,资料工程师负责资料处理相关工程,ML工程师负责开发AI演算法,前者处理后的资料,会成为后者训练模型的资料来源。因此,两种角色需共同定义模型开发所需的资料集,资料处理后的储存格式与位置,以便后者能直接取用符合需求的资料,无缝进行下阶段的开发。
  又比如资料科学家虽擅长开发ML模型,但有时为了提升1%的模型准确率,开发出上百MB大小的庞大模型,实际上线后,却可能拖慢了线上服务的效能。这时,负责分析模型上线实际成效的资料分析师,就需要与资料科学家相互协作,来进行模型精准度与效能之间的取舍。
  甚至,蔡景祥指出,ML模型上线后,模型表现还会随着输入资料的漂移而逐渐衰变,这时,更需要运维与开发人员紧密协作,在运维端观察到模型衰变后,交由开发端重新调校模型,甚至得以新特徵、新演算法重新开发准确率更高的模型,再交由运维端部署上线,才能维持模型随时达到精准预测。
  而且,也不只是技术团队成员间要相互协作,技术单位与业务单位也需要协同合作,透过如模型成效分析工具,量化使用ML后的成效数据,来进一步说服业务单位改用AI预测,确保AI能更有效提供商业面的洞察。
  MLOps流程包含了多种元素在内,包括模型探索、ML Pipeline的部署、模型打包与部署、模型版本控管、模型监控与管理、模型治理、模型安全等议题,都要透过MLOps来实现。(图片来源/勤业众信)
  AI成熟度高的企业如何大用MLOps?
  勤业众信风险管理谘询副总经理廖子毅表示,让AI开发、部署与运维三大团队,能透过一个标准化的流程来生产AI,建立像是工厂产线的作业流程,就是导入MLOps的重要指标。(摄影/洪政伟)
  像脸书、Line都属于重度使用AI的企业,所以,才会格外重视AI开发的协作文化。勤业众信一份内部调查报告就指出,不只脸书,MLOps的早期实践者如Google、Uber、Netflix、Airbnb等企业,都在加速AI应用落地时,面临了开发瓶颈,并自建ML平台来克服挑战。
  因为这些企业不仅拥有自己的资料科学家与工程团队,面临更多AI开发需求,已经上线的AI应用,更需要一套运维与管理办法,来随时提供精准预测。
  比如Uber刚开始开发AI时,没有遵循一套统一的开发流程,将模型部署到生产环境时,也仰赖工程人员客制化开发来上线服务,导致AI开发技能局限在少数人手上,应用规模也难以扩大。於是,Uber从2015年开始打造ML平台Michelangelo,要透过标准化的端到端AI开发工作流,让更多员工能跨过门槛来参与AI开发。
  Netflix则是发觉,不同团队角色之间,常用的分析软体与程式语言互不相同,增加了AI开发的协作挑战,因此从2017年Q3开始,试图深化Jupyter Notebook作为资料处理工具的应用,更整合了支援Jupyter Notebook的相关函式库或工具,比如互动式介面nteract、用於参数化与执行Jupyter Notebook的函式库Papermill、Notebook浏览与共享工具Commuter以及容器管理平台Titus,来建构AI开发的基础建设。
  除了国外的应用案例,台湾也开始有企业实践MLOps。比如Line台湾就在去年底完整揭露了韩国总部建置的ML开发平台ML Universe(简称MLU),平台中整合了不同的开源与自建工具,让工程师能透过UI的编辑器功能,简易设定来建立ML Pipeline,训练完的模型也能快速打包成Docker Image来进行部署,大幅降低了资料科学家与工程团队间的沟通成本,更提升了开发效率。
  或像玉山银行在2020年时就透露,采用了MLOps协作方法,让数据模型或新上线的服务,都能即时、弹性回应使用者需求,更打破了AI团队既有的职务内容框架,让开发者能从产品端反过来思考ML应用。
  「让AI开发、部署与运维三大团队,能透过一个标准化的流程来生产AI,建立像是工厂产线的作业流程,就是导入MLOps的重要指标。」廖子毅强调。
  勤业众信更在2021年技术趋势报告预测中,将MLOps列为今年度十大趋势之一,今年将有更多企业面临MLOps的导入需求,这一套AI开发与运维的方法,更将扩大企业落地AI的规模,促成AI开发走向工业化(Industrialized AI)。
  本文未完,下半篇在这里
【免责声明】本文仅代表作者本人观点,与CTI论坛无关。CTI论坛对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

专题

CTI论坛会员企业