(英国剑桥大学)部署机器学习中的挑战:案例研究综述(下)中文译文 Challenges in Deploying Machine Learnings: a Survey of Case Studies

论文原文:https://arxiv.org/pdf/2011.09926.pdf

翻译:闪闪·Style

 

前一篇文章:(英国剑桥大学)部署机器学习中的挑战:案例研究综述(中)中文译文

 

(8)潜在解决方案的讨论

这篇综述着眼于不同行业的案例研究:计算机网络、制造业、太空探索、执法、银行业等等。然而,糟糕的部署经验会严重阻碍机器学习应用的进一步增长。为了使机器学习部署可扩展并允许每个可能从中受益的业务访问到这些资源,了解最关键的痛点并提供解决这些问题的工具、服务和最佳实践非常重要。我们认为这篇综述是朝着这个方向迈出的第一步:通过认识到目前报告的最常见的挑战,我们希望促进学术界积极讨论可能的解决办法。我们将解决方案的可能研究途径分为两类,我们将在下面讨论。

(8.1)工具和服务

机器学习工具和服务市场正在经历快速增长[87]。因此,针对个别部署问题的工具不断开发和发布。对于我们强调的一些问题,使用正确的特定工具是完全合理的方法。

例如,对于机器学习模型的操作维护,最有可能就是这种情况。市场上的许多平台为用户提供端到端的体验,包括数据存储、再训练和部署等。例如AWS SageMaker[88]、Microsoft AzureML[89]、Uber Michelangelo[90]、TensorFlow TFX[91]等。一个典型的机器平台除了其他特性外,还包括数据存储设施、带有用于训练和推理操作的API的模型宿主、一组用于监视模型健康状况的通用度量以及一个接受用户自定义更改的接口。通过为常见任务提供托管基础设施和一系列开箱即用的实现,这些平台大大减少了与在生产中维护机器学习模型相关的操作负担。

质量保证看起来也是一个更好的工具可以提供很大帮助的领域。如第3节所述,数据完整性在质量控制中起着重要作用,是一个活跃的研究分支[18]。模型本身也可以从测试套件的开发中受益匪浅,以验证它们的行为。这通常是通过反复试验来完成的,但是正在开发更正式的方法,就像NLP(自然语言处理)模型的检查表方法一样[92]。

如第3.3节所述,获取标签通常是真实世界数据的一个问题。监管不力已经成为一个独立的管理层领域,用以寻求解决这一挑战的方法。因此,一些薄弱的监管库(supervision libraries)目前正积极地在社区内被使用,并显示出良好的工业应用效果。一些最流行的工具包括Snokel[93]、Snuba[94]和cleanlab[95]。

使用特定的工具来解决个别问题是一种简单的方法。然而,从业者需要意识到,通过使用特定的工具,他们在解决方案中引入了额外的依赖性。虽然一个附加的依赖关系似乎是可以管理的,但是它们的数量会迅速增加,并成为维护负担。此外,正如我们前面提到的,新的机器学习工具不断地被发布,从而使实践者面临着通过学习其优点和缺点来选择合适工具的困境。

(8.2)整体性方法(Holistic approaches)

尽管机器学习部署需要一定数量的软件开发,机器学习项目与传统的软件工程项目从根本上是不同的,我们认为它们需要不同的方法。主要差异来自于那些独特的活动,如数据发现、数据集准备、模型训练、部署成功度量等。其中一些活动的定义不够精确,无法进行可靠的时间估计,有些活动承担着巨大的潜在风险,而有些活动则难以衡量项目的整体附加值。因此,机器学习部署并不能很好地适应软件工程管理范式的广泛方法,也不能很好地适应常见的软件体系结构模式。

面向数据的架构(DOA,[96],[97])是一个例子,它建议重新思考软件开发中通常是如何完成的,这样做有望解决我们在本篇综述中讨论过的许多问题。具体地说,DOA背后的思想是考虑用基于流的体系结构取代当前企业系统中广泛存在的微服务体系结构,从而使业务逻辑元素之间的数据流更加明确和可访问。微服务体系结构在实现高扩展性和实现单一责任原则方面非常成功。然而,它们也使数据流很难跟踪,并且每个服务的所有者都要确保输入和输出以一致的形式存储。DOA通过将数据移动到无状态执行节点之间的数据流中来解决这一问题,从而使数据在设计上可用和可跟踪,因而使数据发现、收集和标记变得更加简单。从本质上讲,DOA建议承认现代系统通常是数据驱动的,因此需要在其体系结构原则中对数据予以优先考虑。

如上所述,机器学习项目通常不适合常用的管理过程,如Scrum或瀑布。因此,考虑专门为机器学习量身定做的流程是有意义的,其中一个这样的尝试是由Lavin等人[98]完成的,他们提出了面向机器学习的技术就绪水平(Technology Readiness Levels for ML:TRL4ML)框架。TRL4ML描述了一个生成健壮的机器学习系统的过程,该过程考虑了机器学习和传统软件工程之间的关键区别。

软件工程中一个非常广泛的实践是定义一组指导方针和最佳实践,以帮助开发人员在开发过程的各个阶段做出决策。这些指导原则可以涵盖范围广泛的问题,从变量名到执行环境设置。类似地,Zinkevich[99]汇编了一组Google公司内部使用的机器学习的最佳实践。虽然这不能被视为进行机器学习部署的一个清晰易懂的范例,但这篇文章从公司的工程师和研究人员的实际生活经验中提供了许多重要方面的实用建议。

整体性方法是在考虑机器学习应用的基础上创建的,因此它们有可能为部署机器学习提供极大的方便。但是应该注意的是,所有这些方法都需要大量的时间投入,因为它们代表着对项目管理和开发中现行规范的重大改变。因此,在采用任何一种方法之前,应仔细评估风险与收益。

(9)下一步工作

尽管我们回顾的一系列挑战涵盖了机器学习部署工作流的每个阶段,但我们认为它还远未完成。确定其它的,特别是非技术性的挑战是进一步工作的自然方向。例如,可以通过与行业代表就其部署机器学习的经验进行访谈来实现这一点。

在本文中,我们回顾了来自不同行业的报告,这些报告显示了在生产中部署机器学习所面临挑战的普遍性和多样性。一个有趣的扩展可以是产业的比较分析。对最经常报告的挑战进行定量和定性分析可能会带来有趣的可迁移性(transferability)机会,因为在一个领域开发的方法可能适用于另一个领域。

我们的工作包括在第8.1节中对现有工具的简要讨论。然而,社区将受益于对当前可用工具和服务的一个全面而详尽的评估,这些工具和服务对应于我们的研究中所报告的那些挑战。这项新工作可以与我们的综述相结合,使从业者能够识别他们所面临的问题,并选择最合适的工具来解决问题。

(10)结论

在本篇综述中,我们展示了从业者在机器学习部署工作流的每一步都要应对挑战,这是出于在生产中部署机器学习的实际考虑。我们讨论了在数据管理、模型学习、模型验证和模型部署阶段出现的挑战,以及影响整个部署流水线的考虑因素,包括伦理、最终用户的信任与安全性。我们通过回顾案例研究、经验报告和学术文献,用不同领域和行业的例子对每个阶段进行了说明。

我们认为,值得学术界花时间和精力来思考这些问题,而不是期望每个应用领域都能找到自己的方法。我们相信,机器学习研究人员可以通过探索整体性方法和考虑实际因素来推动机器学习部署经验的改进。

从本篇综述的论文收集和回顾过程中,我们注意到学术文献中缺乏部署经验报告。行业机器学习从业者获得的有价值的知识不会公开发表。我们鼓励组织优先分享此类报告,因为它们为更广泛的社区提供有价值的信息,同时也是自我反省、收集反馈和改进自身解决方案的一种方式。

我们希望这篇综述将鼓励学术界讨论在生产中部署机器学习的实用方法。

致谢

我们要感谢我们的审稿人提出的深思熟虑的意见和建议。我们也要感谢Jessica Montgomery、Diana Robinson和Ferenc Huszar的讨论,帮助形成了这篇作品。

(完)

你可能感兴趣的:(机器学习)