网易logo

机器学习日渐升温 它给巨头们带来哪些机遇和挑战

subtitle 网易智能08-10 15:02 跟贴 2 条

  本文系网易智能工作室(公众号 smartman 163)出品。聚焦AI,读懂下一个大时代!

  【网易智能讯 8月10日消息】大型科技公司都在积极地围绕人工智能和机器学习进行调整:谷歌提出了“AI First”的战略,而优步将ML语言贯彻到了极致,内部人工智能研究实验室不断涌现出新的成果。

  他们倾注了大量的资源和精力让全世界相信,机器智能革命正在到来。他们认为,深度学习是推动这一转型的突破性进展,并为新型自动驾驶汽车、虚拟助手等提供了动力。

  抛去对这种科学形式的大肆宣传不谈,这种科学实践其实并没有那么遥远。

  机器学习学科的软件工程师和数据科学家仍然使用许多相同的算法和工程工具,如同他们多年前做的那样。

  也就是说,相比深层的神经网络,传统的机器学习模式正在为大多数人工智能应用提供动力。工程师们仍在使用传统的软件工程工具来进行机器学习工程,但这些工具并不起作用:数据建模的管道试图将数据转为模型,但最终得到的只是一些不完整的碎片。随着大型科技公司构建具有端到端功能的新型机器学习平台,这一过程将会有所改观。

  大型科技公司最近开始使用他们自己的集中平台来研究机器学习,这能更清晰地将之前科学家和工程师分散的工作流程整合到一起。

  “机器学习三部曲”是怎样的过程

  机器学习工程分为三个阶段,数据处理、模型构建、部署和监控。在这个过程中,我们有管道和模型,也就是机器学习算法学习预测给定输入数据的过程。

  “深度学习”就是在这一过程发生。深度学习是一种机器学习算法的子范畴,它使用多层次的神经网络来学习输入和输出之间的复杂关系。神经网络的层次越多,它所能捕捉到的复杂性就越高。

  传统的统计机器学习算法(即那些不使用深层神经网络的算法)拥有更有限的能力来获取关于训练数据的信息。但是,这些更基本的机器学习算法与许多程序都高度适配,这使得深度学习模型在很多情况下是多余的。因此,我们仍能看到软件工程师在机器学习工程中广泛使用这些传统模型——即使我们正处于对深度学习的狂热之中。

  但是,支撑起整个学习过程的基础,是训练机器学习模型前后的环节。

  第一个阶段涉及清理和格式化大量数据,并将其输入到模型中。最后一个阶段涉及对模型的仔细部署和监控。我们发现,人工智能的大部分工程时间实际上并不是用来构建机器学习模型的,而是用来准备和监控这些模型。

  尽管大型科技公司人工智能研究实验室专注于深度学习,但在这些公司中,大多数机器学习应用程序并不依赖于神经网络,而是使用传统的机器学习模式。最常见的模型包括线性/逻辑回归、随机森林和增强决策树。但这些都是不被推荐的模型,甚至不如朋友建议、广告定向、用户兴趣预测、供需模拟和搜索结果排名。

  工程师用来训练这些模型的一些工具也同样能取得很好的效果。尽管谷歌的TensorFlow正在回温,但最常用的机器学习库之一是scikit-learning,它是十年前发布的。

  我们有充分的理由使用更简单的模型而不是深度学习。深度神经网络训练难度很大。它们需要更多的时间和计算能力(它们通常需要不同的硬件,特别是图形处理器)。让深入学习运转成功是很困难的,它仍然需要大量的手工操作,包括直觉、尝试和报错。

  在传统的机器学习模式下,工程师花在模型培训和调优上的时间相对较短,通常只有几个小时。最终,如果深度学习能够实现的准确度提升较小,那么它所能带来的价值将远低于其对可扩展性和开发速度的需求。

  因此,在训练机器学习模式时,传统方法效果很好。但是,同样的情况并不适用于连接机器学习管道的基础设施。在机器学习工程中使用同样的旧版软件工程工具,将有更大可能出现错误。

  机器学习管道的第一阶段数据收集和处理恰恰论证了这一点。虽然大公司肯定有大数据,但数据科学家或工程师必须清理数据,使之有用,也就是验证并整合来自不同来源的重复数据,标准化指标,设计和证明功能。

  在大多数公司,工程师通常结合使用SQL或Hive查询和Python脚本,从一个或多个数据源聚合并格式化多达数百万个数据点。这通常需要几天的体力劳动。其中一些可能是重复性的工作,因为许多公司的流程是分散的,数据科学家或工程师经常使用本地脚本或Jupyter笔记本操作数据。

  此外,大型科技公司的规模较大,难免会造成错误。在生产任务中,要谨慎部署和监控模型。正如一位工程师所描述的那样,“在大公司,百分之八十的机器学习流程都相当于基础设施。”“在大公司,百分之八十的机器学习流程都相当于基础设施。”

  然而,传统的单元测试——传统软件测试的支柱——并不真正适用于机器学习模型,因为机器学习模型的正确输出在之前是未知的。毕竟,机器学习的目的是在没有工程师编写任何规则的引导下,让模型学会根据数据做出预测。因此,工程师们采用的不是单元测试,而是采用一种不那么结构化的方法:他们手动监控仪表板,并为新模型编写警报。

  实际世界数据的变化可能会让训练的模型变得不那么准确,因此工程师根据应用程序的不同,每天按月对新数据进行重新培训。但是,现有的工程基础设施中缺少机器学习的支持,可能会造成开发模型和生产模型之间的脱节——毕竟正常代码更新的频率要低得多。

  许多工程师仍依赖于将模型部署到生产中的基本方法,比如将已训练模型的串行化版本或模型权重保存到一个文件中。工程师有时需要用另一种语言或框架重建模型原型和部分数据管道,因此他们在生产基础设施上工作。从数据处理到培训再到部署的所有阶段,任何与机器学习开发的不兼容都可能导致错误。

  为了解决这些问题,一些拥有开发定制工具资源的大公司已经投入了时间和工程技术来创建他们自己的机器学习工具。他们的目标是拥有一个无缝的、端对端的机器学习平台,完全兼容该公司的工程基础设施。

  Facebook的FBLearner和Uber的米开朗基罗都是内置的机器学习平台,它们都可以做到这一点。它们允许工程师用直观的用户界面来构建培训和验证数据集,减少在这一阶段花费的时间。然后,工程师就可以通过点击按钮来(或多或少地)训练模型。最后,他们可以轻松地监控和直接更新生产模型。

  像Azure机器学习和亚马逊机器学习这样的服务都是公开的可选方案,提供类似端到端平台功能,但只与其他Amazon或微软服务集成,用于存储管道数据和部署组件。

  尽管大型科技公司一直强调要通过机器学习来提高产品质量,但在大多数公司,这一过程仍面临重大挑战和效率低下问题。他们仍然使用传统的机器学习模式,而不是更先进的深度学习,仍然依赖于传统的工具基础设施,而这些工具根本不适合机器学习。

  幸运的是,由于目前专注于这些公司的人工智能,他们正在投资研发专门的工具,使机器学习变得更好。有了这些内部工具,或者有可能与第三方机器学习平台结合起来,这些平台能够紧密地整合到现有的基础设施中,这些组织就能将人工智能的潜能变为现实。(选自:techcrunch 作者:Catherine Dong 编译:网易见外智能编译平台 审校:姜启航)

热门跟贴
打开网易新闻,查看更多跟贴
大家都在看