机器学习应用设计阶段的 10 个陷阱和 11 个最佳实践

本文主要介绍了在机器学习项目的最初设计阶段中,你可能会遇到的陷阱,并详细阐述如何避免这些陷阱的最佳实践。

本文最初发表于 Towards Data Science 博客,经原作者 Bruce H. Cottman 授权,InfoQ 中文站翻译并分享。

图 1:机器学习应用的迭代生命周期

你是否成功设计、训练和测试了一个机器学习应用(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 带来了自然语言处理性能的大跃进:

  1. BERT 被预先训练在一个语料库大小至少 4 个数量级(10000 倍)比我们的基于 GLOVE 的机器学习模型更加巨大;

  2. 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.com/10-pitfalls-and-11-best-practices-for-the-design-phase-of-a-machine-learning-application-project-66c3d599f87


你也「在看」吗?👇

(0)

相关推荐

  • 微服务架构设计实践系列之九:应用架构

    微服务架构设计实践  目    次1 序言2 微服务3 软件架构设计思想4 微服务架构设计实践4.1 项目概述4.2 架构准备阶段4.3 概念架构阶段4.4 细化架构阶段4.4.1 业务架构4.4.2 ...

  • 初窥Web前端工程化:web-pack核心组件设计

    上期回顾 先来回顾一下,在上期内容里,川哥为我们揭示了当下前端编译打包工具都是运行再Node环境下的,开发者是离不开编辑器IDE.编译打包这些工具. 但如何离开Node环境,前端开发者又该怎么办呢,此 ...

  • 管理沟通实务(第五版)项目三

    项目三 组织沟通方案设计 任务一 设计外部沟通方案 任务二 设计纵向沟通方案 任务三 设计横向沟通方案

  • 儒拉玛特一站式视觉应用系统解决方案

    近期,一条装载着儒拉玛特机器视觉系统的自动化装配检测线即将验收并发往客户现场. 为使取料和识别更加精确,该自动化产线运用了儒拉玛特机器视觉系统,通过两台工业相机来实现视觉定位取料和视觉识别两个应用. ...

  • 管理沟通实务(第五版)项目二

    项目二 人际沟通方案设计 任务一 克服人际沟通障碍 任务二 设计人际沟通方案 任务三 处理人际冲突

  • 银行核心系统项目实施小结

    鹏城第一峰--梧桐山 一.系统总体架构 1.应用架构,例如:核心线.渠道线.客户线.产品线.. 2.数据架构,例如:柜员层.客户层.产品层.账户层.流水层.参数层.. 3.技术架构,例如:核心与外围/ ...

  • 管理沟通实务(第五版)项目八

    项目八 团队沟通方案设计 任务一 认知团队类型及特征 任务二 设计团队沟通方案 任务三 组织高效率会议 主要参考文献

  • 接手餐饮“转让店”,这10大陷阱不得不防?|创业笔记第219期

    近几年市场竞争愈发激烈,街边门口贴着"转让店"的店铺多如牛毛,很多想从事餐饮创业的人在没有找到合适地段的时候都想接手一个准备大干一场,这本来值得庆贺,可如果不小心,在接手" ...

  • 被“转让店”坑得无语!这10大陷阱​最好提前知道!

    经过疫情的洗牌,街边空出来好多"转让店",很多想从事餐饮创业的人在没有找到合适地段的时候都想接手一个准备大干一场. 这本来值得庆贺,可如果不小心,在接手"转让店" ...

  • 装修工程中的这10个“陷阱”你能躲过几个...

    装修工程中的这10个"陷阱"你能躲过几个?躲过6个以上算合格,躲过十个就可以自己做装修了. 很多业主都感觉装修水深,确实从你开始准备装修的那一刻起包括寻找装修公司.选择装修材料.装 ...

  • 托尔斯泰:人生10大陷阱

    - Tchaikovsky:PianoPieces,Op.40&51(柴可夫斯基:钢琴小品,作品40&51) Лев Николаевич Толстой 魏韶华 人生10大陷阱 文: ...

  • 接手餐饮“转让店”,这10大陷阱​最好提前知道!

    百宴技为先.修得方成艺--马涛! 独立成长不如一起分享,一个小小的分享您会帮助很多人!部分文章转载网络或者别的公众平台.内容仅供阅读和大伙分享,不做商业盈利.如有侵犯版权请及时联系我,我会及时删除. ...

  • 煤改电招标文件公布、招标、评标和合同签订中的10大陷阱!

    从北京"煤改电"开始,政府在燃煤锅炉替代行动中充当着关键先生,行业企业就算挤破头也要参加政府招投标项目.但是除了北京以外的其他地区,由于政府财政实力有限,招投标项目存在很多坑,没有 ...

  • 复试锦囊 | 关于考研面试的8个忠告,10个陷阱,你中了几个?

    根据往年经验,大概在3月上旬,34所院校的自划线就将公布完毕.3月中旬,国家线就将公布.紧接而来的就是院校的复试环节.所以大家能够看出来,分数线的公布时间和复试时间十分相近,大家千万不能等着分数线下来 ...

  • 接手餐饮“转让店”,这10大陷阱不得不防!

    职业餐饮网 1794篇原创内容 公众号 近几年市场竞争愈发激烈,街边门口贴着"转让店"的店铺多如牛毛,很多想从事餐饮创业的人在没有找到合适地段的时候都想接手一个准备大干一场,这本来 ...

  • 智库人常提的10大“陷阱”

    人类在发展过程中有很多难以逾越的.或者无法违背的金科玉律.在评论政治.外交.历史.社会.经济和管理等问题时,智库牛人常提的10大"陷阱": 1.塔西佗陷阱 普布利乌斯·科尔奈利乌斯 ...