写给MLOps人才培育苦手 | MLOps落地指南 - 团队篇

当理解MLOps的定义、以及ML专案与软件专案的差别之後,接下来我想谈谈如何再把MLOps往下切分成几个面向,让公司的决策人员能够从大方向往下切分细节,开始落地与执行。

根据MLOps包含的范畴,切分成三阶段规划、执行、修正,并以团队、技术、流程三个面向来讨论规划方向。

规划

当公司才刚开始谈到ML专案、MLOps规划的时候,可能因为几个其他公司的成功故事而感到兴奋,想跟着执行。管理者、领导者(公司层级的、职能部门或部门的)则必须在这个阶段定义:(1)改进目标:使用 ML 改进客户服务有哪些,客户现有的痛点在哪、我们预期客户改变的行为可以怎麽测量(2)预期效益:假设是降低成本或自动执行任务的任务,原先的执行成本为何。(3)影响范围:这些效益在公司内部流程、外部使用者旅程造成的更动、影响范围有哪些,以及最早期的试验点以及试验使用者有哪些。

将(1)改进目标(2)预期效益(3)影响范围列出之後,就也能够知道在这个专案上面可以接受的每年、每月花费预期落在什麽范围。

期待沟通

根据史丹佛的cs329s课程资料指出“公司在执行ML专案的前6大迷思,其中一个就包含:机器学习(ML)会对你的公司展开一夜成功的神奇魔法。

ML专案的投资回报,取决於导入的成熟阶段、模型在市场中运行的状况越成熟、开发迭代周期越快等等。其中使用产品阶段模型超过五年以上的公司当中,几乎75%的公司可以在30天内部署模型。在刚开始使用机器学习管道的企业中,有60%的企业需要30天以上的时间来部署模型。

公司在规划上,除了和执行者沟通预期所要达到的成效。同时也必须了解,自家公司的资料收集状况,是否足够反应各个阶段的使用者途径?储存的资料品质,资料是否完整、储存逻辑是否一致、是否有根据最新的商业逻辑纪录资料等等。

关於专案的承诺、预期与期许,可结合Agile的规划mindset去思考最小可行性以及往後的迭代规划。让专案可以及早开始,及早暴露风险以及调整方向。

团队:

在团队的经营上则可以分为:(1)雇用(2)教育训练(3)跨部门合作三部分。

  1. 雇用:许多公司在一开始执行ML专案的时候,针对ML团队的雇用也跟公司本身的产业、既有IT团队有关。举例来说,假设公司的所有系统都属於跟外部合作,购买外部的解决方案或产品,这样的话公司则不见得会雇用ML相关人员。取而代之的是与提供技术服务的公司合作,向他们购买一整个解决方案,这样需要花费的成本,就仅限於沟通时间以及购买产品上。
    另一种状况则是雇用in house(公司内)的ML团队。自家有ML团队的好处是(1)沟通成本较低:ML团队是一直跟在公司内部,对於公司的商业逻辑以及领域知识是相对熟悉的,在沟通需求上也比较能够相互理解为什麽要设定这样的专案目标跟专案评估指标。(2)系统整合度较高:如果公司内部有自己开发的软件系统,其基础架设的Log和Monitor也可以比较容易跟ML专案的整合,在专案或公司营运的高度来看,可以有一致的报表格式和资料输出规划。

  2. 教育训练:许多公司在规划要做ML和实际在做ML的过程当中,有时候会有一些空窗期,例如等待资料量足够、等待资料储存平台架设好、等待公司的各种合规审核通过等等。这些时间还是能够集结公司的ML专案相关人员,进行相关的教育训练,从资料收集、资料安全与隐私、机器学习模型可解释性以及模型资料偏见、系统维运、学习ML模型指标与商业指标如何互通等等方向去学习。让未来专案真正开始运行的时候,团队可以有更好的知识基础,相互学习以及调整专案方向。

  3. 跨部门合作:ML专案的执行,不只是一项独立的技术,相反的是ML专案多是跨领域的。一般来说需要与几个部门一起沟通协调,需要多种观点才能让这个专案更完善、提供价值。ML模型团队、系统维运团队(devops)、管理团队、该ML功能合作的产品负责人等等,不同面向以及层级的人都会需要进来沟通。在ML导入的早期,通常公司垂直面向层级的同事也会因为是重点专案,所以会在沟通的环节里面。而ML产品的产出,则是需要横向团队一起沟通,去思考(1)训练资料怎麽进来(2)模型怎麽评估及改进(3)模型结果是否有与商业期待一致(4)使用者如何能够无痛适用有ML功能的产品(5)如何收集使用者体验的反馈资料(6)系统如何支援可扩张性以及系统稳定度(7)资料安全与隐私是否符合该市场法规(8)专案的支出与受益相比是否符合比例(9)该专案的设置如何在技术与商业上,用最短的时间复制到其他专案。等等。

结语:

今天我们讨论到:在ML导入前期相关的沟通内容,以及在团队的建置上有哪些考量点,以及跨部门之间的沟通需要互相对齐(align)哪些东西。明天我们继续讨论,MLOps落地时,在技术上面需关注哪些部分。


<<:  Day 3 | 物件控制与事件监听

>>:  D3- 如何透过 Google Apps Script 的 Trigger 来建立一个自动开启、调整与关闭的 Google 表单?

[06] [Flask 快速上手笔记] 05. 发送请求与文件上传

在 Flask 里面导入 request 套件包 from flask import request...

【Day 08】Sorting:Selection Sort 选择排序法 ( 用 JavaScript 学演算法 )

选择排序法的概念是,将阵列分为两个部分,每次扫描未排序的部分时,从数列中拿出最小的数,丢到另一边,...

【Day01】概述

Verilog 是什麽? Verilog 是一种硬体描述语言(Hardware Descriptio...

postman

昨天介绍了API,今天要介绍一个postman的应用程序,它是一个可以让我们检查和实作API的app...

[Day08] JavaScript - 回圈_part 2

forEach 来看看forEach在MDN的定义 Array.prototype.forEach(...