你是否胜利设计、训练和测试了一个机器学习利用(Machine Learning Application,MLA)?尽管通过了实验室的审核,但机器学习利用的体现却是不能令人承受的,甚至可能在生产中失败?
如果是这样,请持续浏览本文,我将具体介绍我的共事和我遇到过的陷阱。接下来我将具体探讨最佳实际,其中一些是咱们曾经开发的可防止这些陷阱的解决方案。
方 法
升高机器学习利用设计、开发和部署的高老本和累赘,是 DataOps、DevOps、MLOps、GitOps、CloudOps……xOps 的方法论畛域,其中,Ops 代表经营(Operations)。
咱们认为,你应该依照这个程序,先学会匍匐,再学会行走,再学会跑步,而后兴许是再学会航行。
在咱们看来,xOps 就相当于机器学习利用生命周期中的行走、跑步和航行。
咱们从匍匐开始。
本文重点探讨我的项目启动时的陷阱和最佳实际:机器学习利用设计阶段。
项目管理被形容为陷阱和最佳实际。
项目管理能够安排成一个步骤图(边和节点)。按特定程序执行的工作就是瀑布式项目管理办法。一个例子是按设计、开发、测试和最初部署的顺序排列。
注:咱们有两个我的项目获得了胜利,但也有很多我的项目失败了。用瀑布我的项目办法按程序实现这些工作。对于失败的我的项目,咱们不是没有工夫,就是没有资金。这些我的项目都麻烦,要花掉很多周末的工夫。
机器学习利用项目管理被设想成一种间断的工作循环图(参见图 1)。咱们也能够把一个利用我的项目看作是一个工作清单,其中每个工作都是局部实现的。这些工作中有些能够并行执行,有些依赖于其余工作,有些反复执行,直到利用变成“垃圾箱”。
注:咱们倡议你通过迭代和异步的形式来实现工作。
但愿以上就是咱们须要探讨的对于机器学习利用项目管理办法的全部内容。从当初开始,咱们将重点介绍一些在机器学习利用设计阶段所遇到的比拟多的陷阱。这些陷阱来自于 40 多年的综合教训和大概 18 个机器学习利用我的项目。
对于本文所列举的任何陷阱,都会具体阐明一种或多种最佳实际的变通办法或解决方案。每个最佳实际通常都是一个组件工作,它只有尽可能少的先验输出。你会留神到,有些工作有不可避免的启动依赖性。
在机器学习利用我的项目生命周期中,咱们也陷入了开发和生产过程中的陷阱。咱们(通常)用最佳实际来发现自我。
陷阱和最佳实际
陷阱 1:寻找问题的机器学习解决方案
咱们之所以把这个陷阱放在第一个地位,是因为作为一家征询团体,次要是在 2016 年及更早的时候,在业务问题不须要机器学习解决方案的时候,咱们经常将精力投入到机器学习计划。
对所有这些客户来说,他们想要说他们正在应用机器学习利用,无论他们是否须要机器学习,还是没有为机器学习做好筹备。
陷阱 2:没有数据,没有发现问题
请不要笑,但在 2017 年之前的早些时候,咱们受雇于客户,却没有发现任何数据或问题。
咱们发现,第 1 个陷阱和第 2 个陷阱都须要解决,而后能力持续。
最佳实际 1:理解业务问题,定义机器学习利用解决方案
不要与那些不能或不违心让你定义可行的机器学习解决方案的公司单干。
最佳实际 2:低成本意味着低成功率
你的第一个我的项目应该减少性能,而不是替换和改良现有性能。
要证实机器学习的增值,首先要防止将机器学习利用于组织的遗留(现有)零碎。说起来容易做起来难!
注:你可能最终会了解组织或部门的业务流程以及该流程的零碎实现。对于心愿用机器学习解决的业务用例,零碎实现将很少或齐全不理解。
最佳实际 3:查找并确定业务用例、流程和 / 或数据流图
要害绩效指标(Key Performance Indicators,KPI)被组织视为重要指标。组织能够掂量各部门、流程和我的项目的衰弱指标。
另外,对利益相关者进行考察,找出最让他们悲观的中央。
举例来说,一家连锁酒店掂量房间的可用性,或者一家餐厅掂量桌子的可用性。机器学习能够依据过来的预订状况预测将来的预订状况。然而,更有价值的机器学习会升高可用性。
最佳实际 4:每次只做一个机器学习利用
一旦确定了业务用例问题,就能够提出一个机器学习利用解决方案。在第一个机器学习利用获得可掂量的胜利之后,你就能够启动其余的机器学习利用我的项目了。
最佳实际 5:当第一个机器学习利用取得成功后,通过启动更多的机器学习利用我的项目来减少投资
这种最佳实际是突出的。但不那么显著的是,在第一个机器学习利用我的项目投入生产之前,你的赞助商可能心愿启动更多的机器学习利用我的项目。
你的赞助者(或你)可能会因为实验室中训练、测试和验证的丑陋后果而十分兴奋。揭示本人和他们要对过来的劫难放弃警惕。
陷阱 3:设计单体架构
创立单体利用会导致瀑布式开发过程。不同的步骤和利用的各个局部是高度相干的。
最佳实际 6:设计组件管道或微服务架构
将机器学习利用设计成组件或微服务的管道。在这种状况下,每个组件都是一个可拆散的机器学习微服务。每个组件都是齐全可执行的,彼此独立,须要明确定义的输出和输入。
技巧:基于组件的架构可能让你的团队以异步的形式进行开发机器学习利用的不同局部。
最佳实际 7:机器学习利用设计蓝图
设计的第一局部规定了机器学习利用的功能性和非功能性需要。确定的需要形成了机器学习利用的架构设计。此外,需要将决定生产策略,并对机器学习利用进行具体测试。
技巧:制订并宽泛分享机器学习利用架构蓝图,展现端到端集成机器学习利用管道中的各个逻辑组件。
最佳实际 8:应用软件工程最佳实际
在机器学习中使用软件开发我的项目的教训。
因为输出数据和调整参数对随机机器学习的利用比确定性利用有更大的影响,因而机器学习就不同。然而,你将会发现你过来的大部分软件工程办法和最佳实际都实用于你的机器学习我的项目。
陷阱 4:从新创造轮子
咱们看到了很多因为前期工作钻研不到位而不得不重新启动我的项目的例子。
能工摹形,巧匠窃意。(Good artists borrow, great artists steal.)
——Pablo Ruiz Picasso(1881 年 10 月 25 日——1973 年 4 月 8 日)技巧:一开始花点工夫在 GitHub 上搜寻一下,而后持续实现这个我的项目。技巧:咱们的教训是,arvix.org 上的好论文都是用代码实现的,并放在 GitHub 上。代码片段有助于启动我的项目。
陷阱 5:解决方案太过简略
对于较小规模的我的项目,一个开箱即用的解决方案可能就足够了。可怜的是,为了确保在竞争中的当先劣势,可能须要定制性能或多个机器学习模型组合。
最佳实际 9:自然语言解决利用架构须要 Transformer
因为自然语言解决利用在近两年产生了显著的变动,咱们决定在本文中退出孤立的最佳实际。
咱们曾在 2017 年部署了基于 GLOVE 的自然语言解决利用。2018 年呈现了 BERT Transformer。通过两个要害的改良,BERT 带来了自然语言解决性能的大跃进:
- BERT 被事后训练在一个语料库大小至多 4 个数量级(10000 倍)比咱们的基于 GLOVE 的机器学习模型更加微小;
-
BERT 的模型参数的数量比咱们基于 GLOVE 的 ML 模型大两个数量级(100 倍)。
[……] 扩大到极其规模的模型也会带来很大的改良 [……]
——Devlin 等人,2018 年
陷阱 6:不通报停顿状况
无论机器学习利用有多胜利,在我的项目过程中都会呈现一些小问题。咱们曾经找到了一份提供给客户我的项目发起人和经理的 1~2 页的每周状态报告,即便他们没有要求这么做,但这能够打消我的项目中的大部分沟通谬误。
故事:有一次,咱们被炒了鱿鱼,但侥幸的是,在两天之后,当几次误会廓清之后,咱们又被从新雇用了。从此以后,每周的状态报告就成了必须的最佳实际。
陷阱 7:弄错了业务用例
无论你在我的项目中的地位如何,你的要求都是谬误的,你须要停下来并从新评估。做好从新开始或者被辞退的筹备。记录你新提出的解决方案。人生苦短,无奈持续推出一个须要解决问题的机器学习利用解决方案。
陷阱 8:机器学习 App 不能满足需要
陷阱 8 与陷阱 7 相似。因为你正确地解决了业务用例,所以咱们把它列在这里,但目前业务需要的优先级不高,或者隐没了。这样的话,你惟一能做的就是提出不同的需要,去满足它们。要做好走人的筹备。
陷阱 9:客户没有机器学习的教训或常识
早些时候,咱们举办了《如何从机器学习中获益?》(How to benefit from Machine Learning?)课程。当初,咱们将这些课程指向 Github、Coursera 和 Medium 博客上的 Awesome-X URL。
但咱们不会放弃幻灯片,因为咱们还是会常常用到它。
技巧:为客户的开发人员提供机器学习实际的领导。
陷阱 10:没有机器学习部署基础设施
对于“咱们没有 ML 部署基础设施”这个问题,咱们只有一个答案(可行的解决方案),那就是去获取一个云账户。
推出本人的基础设施是能够做到的。Apple、Amazon、Google、IBM、Zillow 和其余数十亿(或数万亿)的公司都曾经做到了。咱们的答案是:去获取一个云账户。
最佳实际 10:在云端中部署
Google Cloud Platform(GCP)是基于云端部署机器学习模型的次要抉择之一。其余抉择有 AWS、Microsoft Azure、Paperspace 等。
技巧:咱们最喜爱的是收费的 GCP Colab。
最佳实际 11:定期审核解决方案
机器学习的最新进展正在产生,并且正在减速。你不想被另一个 BERT 类的事件蒙蔽双眼。
要及时把握最新文献。你还能够向你的客户宣传全新的、优良的机器学习我的项目。
结语
咱们是从内部参谋的角度为客户设计机器学习利用而写的本文。然而,如果你是负责设计机器学习利用解决方案的外部员工或团队,那么本文提到的所有陷阱和最佳实际都同样实用。
人工智能 1.0 行业的第一波浪潮在 20 世纪 80 年代末能够说是失败的。人工智能 1.0 行业因为难以推出弱小的生产机器学习利用而夭折。
人工智能 2.0 行业之所以取得成功,是因为弱小的生产机器学习利用的推广和日常应用。咱们预计胜利将会持续增长,人们在生活中应用机器学习,甚至都没有意识到这一点(只管存在营销行为)。
但愿这些陷阱和最佳实际能帮忙你设计机器学习利用,并使它们胜利地投入到生产环境中。
咱们将详述在机器学习我的项目生命周期的开发和部署阶段遇到的更多陷阱。此外,咱们还将列出咱们用来摆脱困境的最佳实际。咱们在后续博文中实现这一工作。
作者介绍:
Bruce H. Cottman,博士,物理学家、机器学习科学家、一直获得提高的软件工程师。热衷从新兴技术中推断将来。
原文链接:
https://towardsdatascience.co…
(文章转自 AI 火线,鸣谢)