3面向谈ML产品与软件产品的相异处

在过去的5-7年当中,ML已经不再只限於研究人员能够接触、使用,越来越多的AI/ML工具以及产品出现,使得能够谈论这个领域的人变多了,踏入ML工作的门槛也逐渐降低。同时我们也看得出软件业这几年,在devops、产品管理这一块进步得非常多,使得软件的工作变得复杂。这样的改变不管对於ML engineer、data scientist或是devops都是一件辛苦的事情。

当ML从模型走向产品,成为能够面对市场的产品时,许多决策者和专案管理人员开始觉得无所依靠。过去在数位转型的时候,已经学习了一次怎麽跟数位产品合作、怎麽跟软件产品合作。而现在则是要懂得区份,ML产品与过去大家熟悉的软件开发产品有什麽不同。让自己可以更快的学习、适应未来产业的状况。

接下来让我们从ML产品与软件产品的(1)使用目的(2)使用者历程(3)开发者技能树,这三个面向来讨论,这两者的同与异。

1. 从使用目的来看

相同:透过使用电脑、数位载具,不管是企业、学校、个人,都能够ML与软件专案当中得到益处。电脑的使用,在计算、记忆上面都可以借用电脑的软硬体来帮我们突破人类既有的限制,提高了许多方便性。并且在网路的利基点上,你能够跨区域性的,重复使用先前在另外一个城市、国家设定好的环境,享有同样品质的服务,达到相同的目的。这些益处也帮助使用者在使用产品的过程,能够更高效率的完成日常生活所需要的事情,让省下来的时间能够做更具有创造性的活动。提供了商业价值,也开启文化与艺术新的面向。

不同:软件专案能够帮助你做的,是移除日常生活当中的重复性,帮你透过数位化的方式保存过去需要有纸本记载的资料,想想word、excel、outlook的核心功能有哪些,大概就可以有一些概念。而在ML 专案当中,专注的则是从数据当中寻找规则,需要有足够数量的资料才能够开展的一个服务。这个不同处也使得企业在导入数位产品与ML产品的时间也会不同,前者可以在公司刚开立的时候,就开始使用,例如客服系统、ERP等等,後者则是要等到累积用户资料、行为观测、历史纪录等资料数量足够多才比较适当引入、开发。

2. 从使用者历程(user journey)来看

相同:身为一个使用者可以在不同环境享有这两种产品的好处,像是电脑、笔电、手机等数位用品。现在这两者的产品也跟着扩展到IOT、嵌入式系统、边缘装置(edge device)、smart home等等。在生活当中的各式场景都能够使用到这两种产品。

不同:ML的产品大部分不会独立存在,而是依赖、加强既有的数位产品。举例来说,在使用gmail的这个服务,本身是数位产品的范畴,帮助你从实体邮件,进化成数位邮件的体验。让你用一台电脑的空间,取代过去好几个柜子的纸本纪录。而在gmail里面,有一些像是在信件寄来的时候帮你自动归到垃圾信件、或是写信时自动帮你完成想写的句子,这两个都是ML产品的范畴。

所以你大概能够想见,ML产品的存在,是为了让原有的数位产品体验更上一层楼而有的存在。也因此企业在评估ML产品的效益时,除了其本身模型是否有提供对使用者有助益的预测及推荐,也需要不断调整ML功能相对应的前端显示,如何让使用者更没有障碍的去探索、发现这些新功能,而ML产品推送的预测结果,要如何最好的嵌入在使用者的流程中,让大家可以顺畅的使用这两个产品所带来的益处。

3. 从开发者的技能树来看

相同:不管是软件产品或者是ML产品,在背後都需要有技术开发人员支撑,这些开发人员的共通语言,就是他们在工作上使用的程序语言。这些技术人员也都需要能够将市场的需求转换成程序开发的规格,让这些产品在上线之後能够交付相对应的价值。

不同:开发ML产品的,不管是ML researcher, data scientist, ML engineer等职位,大部分都是使用python来作为开发语言,其职责大多关注在如何将商业问题转换成ML问题、训练模型、模型评测。如下图所显示,而软件开发工程,则是包含网站前後端、基础架构、资料库以及安全等问题。要能够发展成ML的全端工程师,能够照顾从模型到部署上线; 跟软件开发的全端工程师,所需要养成的技能以及时间是无法相对比较的。

GreekDataGuy 绘制软件工程与ML的范畴
*图片为GreekDataGuy绘制

稍微延伸一下,来说说之所以ML产品的开发团队会不好找,则主要基於以下两个原因:
(1) data scientist(资料科学家)的养成,学习过程并不总是有包含软件开发的基础知识,而是多专注於数理能力、实验设计的范畴上。因此对於程序码的维护、软件产品的lifecycle跟DevOps 实践就比较没有完整的概念。
(2) 机器学习演算法的开发,算是在ML软件里面相对稳定且成熟的部分,几乎每个资料科学家都知道自己在演算法与实验阶段要做什麽。但是载有训练模型之後,关於部署的实作,以及模型带来的商业影响,则没有太多的想法。一个好的资料科学家也必须要能够说得出,其工作的产业,有哪些面向之於其他产业是特别的,哪些模型与哪些资料是能够为自己的公司或自己的研究题目带来助益的。

在ML专案上技术上面的细节,之前我写了另外一篇文章,整理了史丹佛的cs329s课程,其中一节谈到两个专案在版本控制, 测试资料, 资料中毒三个方面的不同之处。大家可以点过去看看。

结语

我们今天透过三个面向谈论软件开发产品跟机器学习产品的不同。明天来谈谈,知道这些不同的层面之後,要如何帮助你的ML开发团队落地。

Reference
[1]. Machine Learning Is Getting Easier. Software Engineering Is Still Hard, https://towardsdatascience.com/machine-learning-is-getting-easier-software-engineering-is-still-hard-d4e8320bc046
[2]. The Rise of the term MLOPs, https://towardsdatascience.com/the-rise-of-the-term-mlops-3b14d5bd1bdb


<<:  Day 2:Golang 是什麽?

>>:  Day 02 「住手!你想搞死 QA 吗?」 单元测试是测试还是功能?

裸机Hyperviser之间比较

但市面上的裸机Hyperviser还有其他选择(ESXI, Proxmox VE…),为何独锺unR...

Day 22 UICollectionView的练习 (2/2)

今天把功能都做完吧~ 首先,我们把图片弄到Assets.xcassets里面,直接把照片拖曳到左边红...

DAY7 - 图

之後会有几天与图相关的演算法,所以今天先看一下表示方式~~ 边 1135. 最低成本联通所有城市这题...

Day 30 | 我居然完赛了了了~

终於来到铁人赛最後一天啦~~~ 原先只想挑战看看自己能不能坚持一件事情 30 天, 加上有被建议说,...

react 大冒险-一些实用的 package-day 30

今天似乎是第 30 天,轻松一下~ 来介绍一些好用的 package (伪)结赛感言 总之晃的一下就...