查看原文
其他

学术&工业界大佬联合打造:ML产品落地流程指南

白鹡鸰 夕小瑶的卖萌屋 2022-12-30

文 | 白鹡鸰给小铁比了个心
编 | 小轶给白鸟鸟比了个赞

卖萌屋原创出品,本文禁止转载

前言

现在已经有了许多现成的ML开发部署工具,所以想要完成一个ML产品并不困难。但在实际开发过程中,人多手杂,免不了一顿兵荒马乱。相比之下,机械工业产品的开发,已经形成了一套完整的调研、开发、测试、复核流程。这种规范化的好处就是可以把各种风险降到最低。作为项目动辄上亿,时常涉及人命的NASA,为了保证开发过程万无一失,早于上世纪九十年代就提出了技术成熟度(Technology Readiness Level, TRL) 的概念,用于描述项目开发进度。如今,为了能够规范化ML产品开发部署,由Latent Science牵头,MIT, NASA, Oxford, Microsoft Research, Nvidia, Unity AI等12家工业&学术界巨头强强联手,推出了机器学习技术成熟度 (Machine Learning Technology Readiness Levels, MLTRL) 量表,用于说明他们眼中一个合格的ML产品要经过哪些考验才能上线。

这个指标既可以作为独立开发者们对自己工作进度的评估参照物,还可能成为未来各大公司内部报告和相互合作时的沟通标准。目前MLTRL还处于Arxiv预印状态,先一起看看吧~

论文题目
Technology Readiness Levels for Machine Learning Systems

论文链接 :
https://arxiv.org/abs/2101.03989

Arxiv访问慢的小伙伴也可以在 【夕小瑶的卖萌屋】 订阅号后台回复关键词 【0209】 下载论文PDF~

机器学习技术成熟度

由于MLTRL的理念来源于TRL,制定成员也包括TRL的创始者NASA,从图1可以看出,这两个指标的相似度很高。

▲通用的技术成熟度量表与机器学习领域技术成熟度量表对比

接下来是对各个等级较为详细的说明:

TRL 0:一个大胆的想法

重点:算法,数据
算法进度:★★★☆☆
代码进度:☆☆☆☆☆
测试进度:☆☆☆☆☆
团队沟通:★☆☆☆☆

所有的研究都源于一个大胆的想法,一个另辟蹊径的视角。这一阶段的主要工作是文献阅读,并且从数学方面验证想法的合理性,尤其需要注意你的研究基于了什么样的假设 。你应该拟定好接下来的研究计划,记得找几个更为丰富的研究者一起检查一遍,他们对可行性的判断可能会更准确,而且可以协助你找到想法中存在的漏洞。此外,还应该确认清楚是否有足够的数据支持接下来的研究。

TRL 1:目标导向型研究

重点:算法,实验级 (research-caliber)代码
算法进度:★★★★☆
代码进度:★★☆☆☆
测试进度:★☆☆☆☆
团队沟通:★★☆☆☆

大致敲定想法和研究计划之后,就应该开始粗略地跑点代码了。为了最高效率地验证算法的可行性,参考一下同行的代码暂时不会有问题,计算的复杂度、效率不应当占据太多的注意力 。这一阶段的模型测试还不必面面俱到,而是可以专注于预期中算法能够优化的那一部分数据。如果是项目开发,这时候要开始注意版本控制(包括代码、模型和数据集)了,否则后期万一出现问题,可能会付出惨痛的代价

TRL 2:验证原理

重点:算法,测试
算法进度:★★★★☆
代码进度:★★☆☆☆
测试进度:★★☆☆☆
团队沟通:★★☆☆☆

在类似于真实场景的环境中仿真/用类似真实分布的数据集测试过模型后,对模型的有效性证明就基本完成了。这里通常到了模型开发第一个分歧点:作为独立的功能继续开发;或者是并入一个长期的研究/开发项目。

有效性证明(Verification and Validation, V & V):

  1. 模型建对了吗?
  2. 模型有价值吗?

TRL 3:系统开发

重点:雏形级 (prototype-caliber)代码,团队
算法进度:★★★★☆
代码进度:★★★☆☆
测试进度:★★☆☆☆
团队沟通:★★★☆☆

在完成上一阶段对模型的测试后,是时候整理一下代码了:

  • 首先要保证代码的整洁和鲁棒性;
  • 是否已经可以面对各种出乎意料的输入或者运行结果;
  • 对数据的接口、程序的交互性、是否符合团队内的代码规范;
  • 算法的效率和可靠性也必须考虑到

此时你的队友中应该既有写AI的,又有工程师了,因为你们需要开始定义最终产品的服务级别协议和服务级别目标(Service-level agreements and objects, SLAs and SLOs)。

TRL 4:验证概念(与实用性)

重点:测试,沟通
算法进度:★★★★★
代码进度:★★★☆☆
测试进度:★★★☆☆
团队沟通:★★★★☆

来了来了,手忙脚乱的与真实场景初接触!此时你手里应当已经有着厚厚一沓关于模型表现、模型成本以及其他用户关心指标的报表。然而,遇到的挑战会更为复杂多样。之前测试效果再好,放到真实场景里跑一跑,意料外的报错层出不穷。本以为可以轻易从用户那里获得的数据,结果空白、缺失占了绝大多数。决定开发能否进入下一个阶段的评估者们磨刀霍霍,很可能发出“搁置”、“中止”这样可怕的声音——在TRL 4阶段项目夭折是很常见的。

TRL 5:模型能力评估

重点:测试,沟通
算法进度:★★★★★
代码进度:★★★☆☆
测试进度:★★★★☆
团队沟通:★★★★☆

是时候对“模型到底能做什么”盖棺定论了:功能是什么,优化体现在哪些方面,V & V的确切结论,都必须在这个阶段给出来。然后开始草拟产品导向的需求 (product-driven requirement)。其实这个步骤和TRL 4之间没有明显的分界线,或者说TRL 4侧重于在测试和沟通,TRL 5则强调必须下结论。进行评价的目的是为了将有限的开发资源集中到最值得的项目上。因此,想从TRL 5顺利毕业绝对不容易。

TRL 6:应用级的开发

重点:产品级 (product-caliber)代码
算法进度:★★★★★
代码进度:★★★★☆
测试进度:★★★★☆
团队沟通:★★★★☆

经历完第一轮真实场景的摩擦,从考核中幸存下来之后就应该开始进一步狂敲代码了。还记得之前的哪些山盟海誓吗?SLAs, SLOs, 产品需求,前面吹的“水”都是现在实装流下的泪。总之,码就是了!

TRL 7:集成

重点:代码,测试,团队
算法进度:★★★★★
代码进度:★★★★★
测试进度:★★★★★
团队沟通:★★★★★

既然功能已经实现得差不多了,接下去就是如何包装的问题了,所以这一阶段需要各个环节上的人员多沟通合作。专注于算法的AI工程师要继续测试模型在极端情况下的鲁棒性,而软件工程师必然要开始前端、后端、接口以及等等细节的处理。尤其需要注意两点:

  • 对质量的保障
  • 还有数据(获取、结构、用法和存储安全)。

最近已经出现了对不正当获取数据的严厉处罚案例,因此这方面需要格外注意[3]。

TRL 8:最后的部署

重点:测试
算法进度:★★★★★
代码进度:★★★★★
测试进度:★★★★★
团队沟通:★★★★★

测试!测试!测试!一边部署一边记得检查项目面对各种极端情况的承压性,要在用户涌入服务器之前做好准备!没准备好就别上!

TRL 9:上线啦啦啦~

重点:不要以为到这里就完事了
算法进度:★★★★★
代码进度:★★★★★
测试进度:★★★★★
团队沟通:★★★★★

可以说,从TRL 0-TRL 8都是勇者在新手村的任务,项目上线,才意味着漫长征程正式开始。根据实际运营情况和需求不断改进算法和代码,持续集成, 持续交付 (CI/CD),TRL 7-TRL 9循环的永动机模式就是项目的最终形态。

总结

作为机器学习项目的开发进度量表,MLTRL各个阶段的划分并不严格,也不一定非要按部就班地经历每一个阶段。只是说,这样的步骤能较为合理地分配人力物力资源,并且避免出现意外后成本过高的惨案。文章中还出具了MLTRL的阶段报告表格模板,并且对一些概念进行了更为详细的说明。感兴趣的朋友们可以自行翻看~

萌屋作者:白鹡鸰

白鹡鸰(jí líng)是一种候鸟,天性决定了会横跨很多领域。已在上海交大栖息四年,进入了名为博士的换毛期。目前以图像语义为食,但私下也对自然语言很感兴趣,喜欢在卖萌屋轻松不失严谨的氛围里浪~~形~~飞~~翔~~

知乎ID也是白鹡鸰,欢迎造访。

作品推荐:

  1. NLP太卷,我去研究蛋白质了~

  2. 谷歌40人发表59页长文:为何真实场景中ML模型表现不好?

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

 

[1]Technology Readiness Level, Wikipedia
https://en.wikipedia.org/wiki/Technology_readiness_level

[2]Technology readiness levels (TRL); Extract from Part 19 - Commission Decision C(2014)4995.
https://ec.europa.eu/research/participants/data/ref/h2020/wp/2014_2015/annexes/h2020-wp1415-annex-g-trl_en.pdf

[3] https://www.ftc.gov/enforcement/cases-proceedings/1923172/everalbum-inc-matter

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存