最新技术雷达:BERT 尚需评估,10 倍工程师暂缓

caokaifa 2019-11-27

近日,ThoughtWorks 发布了最新一期技术雷达,这是其每半年发布一期的技术趋势报告,本文摘取了其中与人工智能相关的部分。值得注意的是,没有与 AI 相关的可采纳技术,Tensorflow 2.0 被认为是可以试验的,目前比较热门的 BERT 和联邦学习则被认为尚处评估阶段,10 倍工程师被认为可暂缓。

最新技术雷达:BERT 尚需评估,10 倍工程师暂缓

可采纳技术清单

暂无

ThoughtWorks 对可采纳的定义是强烈主张业界采用的技术,可以在适当的时候用于项目。在最新一期榜单中,所有技术领域可采纳的技术、工具、平台和语言加起来一共 9 个,不涉及人工智能领域。

可试验技术清单

这指的是值得使用的技术列表,重要的是理解如何建立这种能力,ThoughtWorks 建议企业在风险可控的项目中尝试如下技术。

Tensorflow 2.0

TensorFlow 的 2.0 版本保持了其作为机器学习框架的突出地位,现在已经扩展为可支持各种机器学习方法和执行环境(从移动 CPU 到大型 GPU 集群)的库。在此过程中,业内也出现了许多框架,以简化网络创建和训练任务。同时,其他框架(尤其是 PyTorch)提供了一种命令式编程模型, 该模型使调试和执行变得越来越容易。 TensorFlow 2.0 现在默认为命令流(立即执行),并采用 Keras 作为单个高阶 API。 尽管这些更改提高了 TensorFlow 的可用性并使其较 PyTorch 更具竞争力,但这是一次重大的重写,可能会破坏向后兼容性。TensorFlow 生态系统中的许多工具和服务框架都无法立即适配新版本。目前,请考虑是否要在 TensorFlow 2.0 中进行设计和试验,或恢复到版本 1 以在生产环境中服务和运行模型。

Automated machine learning (AutoML)

机器学习的强大能力和远大前途使得对专业人才的需求远超出专门从事该领域的数据科学家的数目。针对这种技能上的差距,我们看到了自动化机器学习(AutoML)工具的出现,这类工具旨在帮助非专业人士更容易地自动化完成从模型选择到模型训练的端到端过程,比如 Google 的 AutoML、DataRobot 和 H2O AutoML Interface。尽管我们已经从这些工具中看到了可喜的成果,但还是要提醒企业不要将其视为机器学习的全部。

正如 H2O 网站所述:在数据科学领域,仍需要相当深厚的知识和经验才能产出高性能的机器学习模型。对自动化技术的盲目信任,还会增加引入道德偏见或做出不利于少数群体的决策风险。 虽然企业可以使用这些工具作为起点,生成基本有用的经过训练的模型,但我们还是鼓 励他们寻找经验丰富的数据科学家来验证和完善最终模型。

Apache Flink

自从 Apache Flink 在 2016 年首次进入技术 雷达评估环以来,越来越多的开发者开始采用该技术。Flink 被视为领先的流处理引擎,在批处理与机器学习领域也逐渐成熟。与其他流处理引擎相比,Flink 的独特之处在于使用了一致的应用状态检查点。当发生错误时,应用可以重启,并从最近的检查点载入状态继续处理,就好像错误从未发生一样, 这让我们不必为了容错而不得不构建和操作复杂的外部系统。我们看到越来越多的公司在使用 Flink 构建数据处理平台。

Apollo Auto

Apollo Auto 让自动驾驶技术不再是科技巨头独享的”火箭科技”。百度旗下的 Apollo 项目的目标,是成为自动驾驶产业里的安卓操作系统。Apollo 平台拥有诸如感知、模拟、 规划以及智能控制相关的一系列组件,能够让汽车公司将自动驾驶系统集成到汽车硬件中。虽然开发者社区刚刚起步, 但是许多第三方厂商陆续加入并贡献良多。我们的一个项目就是帮助客户,使用基于 Apollo 的自动驾驶系统,完成自动驾驶执照的考试。Apollo 同时也提供演进式架构的方法,以逐步引入先进功能,以敏捷和迭代的方式集成更多传感器和功能。

ROS

ROS(Robot Operating System,机器人操作系统)这套程序库和工具集,能帮助软件开发人员创建机器人应用程序。这也是一个开发框架,提供硬件抽象、设备驱动、程序库、可视化程 序、消息传递、包管理等功能。开放自动驾驶平台 Apollo Auto 正是基于 ROS 的。在另一个 ADAS(高级驾驶辅助系统)模拟项目中,我们还使用了 ROS 的消息传递系统(使用 bag 文件格式)。随着 ADAS 的发展,ROS 这项不算新的技术,又重新引发开发人员的关注。

Continuous delivery for machine learning(CD4ML)

随着基于 ML 的应用程序的日益普及以及构建它们所涉及的技术复杂性,我们团队严重依赖于机器学习的持续交付(CD4ML), 以安全快速且可持续的方式交付此类应用程序。CD4ML 是将 CD 原理和实践引入 ML 应用程序的学科,消除了从训练模型到部署生产环境的长周期。在构建和部署模型的端到端过程中,CD4ML 消除了不同团队、数据工程师、数据科学家和 ML 工程师之间的手动传递。使用 CD4ML,我们团队成功实现了基于 ML 的应用程序所有组件的自动化版本管理、测试和部署,包括数据、模型和代码。

Data discoverability

数据科学家和分析师在工作流程中遇到的主要问题之一是找到所需的数据,弄清楚数据义并评估其是否值得使用。由于缺少可用数据源的元数据,并且缺少搜索和定位数据所需的适当功能,因此这仍然是一个挑战。我们鼓励提供分析数据集或构建数据平台的团队以数据的可发现性为其生态圈的首要功能,提供轻松定位可用数据,检测其质量,了解结构和源头,并获得访问权的能力。

传统上,此功能是由庞大的数据分类解决方案提供的。近年来,我们已经看到相关开源项目的增长,这些项目正在改善数据提供者和数据消费者的开发体验,从而使他们真正做好一件事: 使数据易于发现。这些工具包括 Lyft 的 Amundsen 和 LinkedIn 的 WhereHows。我们希望看到的改变是提供者有意识地分享利于可发现性的元数据,从而帮助发现性工具从应用程序数据库中推断出部分元数据信息。

Experiment tracking tools for machine learning

机器学习的日常工作通常可归结为一系列实验,包括选择建模方法、网络拓扑、训练数据集以及对模型的各种优化或调整。由于其中许多模型仍然难以解析或解释,因此数据科学家必须使用经验和直觉来假设一些改变,然后测量这些变化对模型整体性能的影响。随着这些模型在业务系统中使用得越来越普遍,出现了几种不同的“用于机器学习的实验跟踪工具”,以帮助研究人员有条理地进行实验,并跟踪实验结果。

尽管该领域还没有明确的赢家出现,但是诸如 MLflow 和 Weights&Biases 之类的工具,Comet 和 Neptune 之类的平台,已经在整个机器学习工作流程中引入了严谨性和可重复性。除此之外,它们还促进了相互协作,将数据科学从一项单独的工作转变为一项团队协作的运动。

Explainability as a first-class model selection criterion

深度神经网络在很多问题上都表现出了惊人的记忆力和准确性。只要有足够的训练数据和适当拓扑选择,这些模型就能满足并超越某些特定问题域中的人类能力。然而,它们天生是不透明的。虽然模型的某些部分可以通过迁移学习进行重用,但是我们很少能够赋予这些元素人类可理解的意义。

相比之下,可解释模型是一个允许说明决策是如何做出的模型。例如,一个决策树产生描述分类过程的推理链。可解释性在某些受监管的行业,或当我们关注决策的道德影响时变得至关重要。由于这些模型被更广泛地合并到关键业务系统中,因此将可解释性作为模型选择的头等标准非常重要。尽管功能强大,神经网络在可解释性要求严格的情况下,也可能不是一个合适的选项。

待评估技术清单

BERT

BERT 代表来自变换器的双向编码器表征量。它是 Google 在 2018 年十月份提出的一 种新的预训练表示方法。BERT 通过获得各种自然语言处理(NLP)任务的最高水平结果,极大改变了自然语言处理(NLP)的格局。基于转换器架构,它在训练期间从令牌的左右预警中学习。Google 还发布了经过预训练的通用 BERT 模型,该模型已针对包括 Wikipedia 在内的大量未标记文本进行了训练。开发人员可以在其特定于任务的数据上,使用和微调这些经过预训练的模型,并获得出色的结果。我们已经在 2019 年四月份的技术雷达上讨论过 NLP 的迁移学习、BERT 以及后继者会继续使 NLP 的迁移学习成为一个令人兴奋的领域,NLP 的迁移学习可以大大减少处理文本分类的用户工作量。

Federated learning (联邦学习)

模型训练通常需要从数据源收集大量数据,并将这些数据传输到集中运行模型训练算法的服务器上。但是,如果训练数据集中包括个人身份信息,这就会成为问题。而联邦学习这项技术的出现让我们备受鼓舞,联邦学习是一种隐私保护方法,用于训练大量与个人信息相关的各种数据集。联邦学习技术可以让数据保留在用户的设备上,并完全控制在用户的手中,但最终仍然可组成一个整体的训练数据集。

在联邦学习中,每个用户设备独立更新模型。然后将模型的参数(而不是数据本身)组合成一个 集中式的视图。尽管网络带宽和设备算力限制会给这项技术带来一些重大的技术挑战, 但是我们喜欢联邦学习的思路,让用户可以完全控制自己的个人信息。

Flair

Flair 是一个简单的基于 Python 的 NLP 框架。它让用户可以执行标准的 NLP 任务,例 如命名实体识别(NER),词性标记(PoS), 词义消歧和分类,并且在一系列 NLP 任务中都表现良好。Flair 为各种文字和文档嵌入提供了一个简单且统一的界面,包括 BERT、Elmo 及其自己的 Flair 嵌入。同时,它还提供多语言支持。这个框架本身是建立在 PyTorch 之上的。我们在某些项目中正在使用它,并且喜欢它的易用性和强大的抽象。

Facets

不论是直接使用还是作为机器学习模型的训练输入,越来越多的重要决策源自于大数据集。因此,了解数据中的差距、缺陷和潜在偏见十分重要。Google 的 Facets 项目在此领域提供了两个有力工具:Facets Overview 和 Facets Dive。Facets Overview 对数据集中的特征分布进行可视化,可以展现训练和验证集的偏斜,并且可以用于比较多个数据集。Facets Dive 用于在大数据集中挖掘和可视化单个数据点,并使用不同的可视维度来探究属性之间的关系,都是进行道德偏差测试的有力工具。

What-If Tool

机器学习世界的研究重点稍微从探索“模型能够理解什么”,转向了研究“模型是如何理解的 ”。由于担心引入偏差,或者过度泛化模型的适用性,因此开发出了 What-If Tool (WIT)这样的工具。这个工具可帮助数据科学家深入研究模型的行为,并将各种功能和数据集对输出的影响进行可视化。WIT 由 Google 引入,简化了比较模型、切片数据集、可视化构面和编辑单个数据点等任务,并可以在 Tensorboard 或 Jupyter notebooks 中使用。

尽管 WIT 可以帮助执行分析,但研究者仍然需要对模型背后的数学和理论有深刻的理解。WIT 只是数据科学家用来深入了解模型行为的工具,对于使用不当或缺乏训练不佳的算法,初级用户不应奢望有任何工具可以消除或减轻其风险或造成的损害。

Fairseq

Fairseq 是 Facebook AI Research 的序列到序列建模工具套件,允许研究人员和开发人员训练定制模型以进行翻译、摘要、语言建模和其他 NLP 任务。对于 PyTorch 的用户来说,这是一个不错的选择。它提供了各种序列到序列模型的参考实现,支持跨多个 GPU 和机器的分布式训练,可扩展性强,并具有许多预训练的模型,其中包括 RoBERTa,它是对 BERT 的优化。

ONNX

目前,围绕神经网络的相关工具和框架的生态系统正在迅速地发展。但是,这些框架和工具之间的互通性也成为一个挑战。在机器学习领域,通常需要在一种工具中快速进行原型设计和训练,然后将其部署到其他工具中进行推理。因为这些工具的内部格式并不兼容,为了使他们兼容,我们需要实现并维护很多麻烦的转换器。开放神经网络交换格式 ONNX 的出现,就是为解决这一问题。在 ONNX 中,表示神经网络的图形由标准规格的操作符和一系列表示训练权重和神经网络模型的格式所组成,这些图形可以在不同的工具间传递。这种一致的格式带来了很多的可能性,其中之一就是 Model Zoo,它是一系列基于 ONNX 格式的预训练模型的集合。

Data mesh

数据网格是一种可以解锁大规模数据分析的架构范式,快速解锁对越来越多的分布领域数据集的访问,从而支撑跨组织的大量数据的使用场景,如机器学习、分析或数据密集型应用程序。数据网格解决了传统集中式数据湖或数据平台体系结构的常见故障模式,它改变了数据湖及其前身数据仓库的集中式范式。数据网格的范式借鉴了现代分布式体系结构:将领域作为首要关注点,应用平台思维来创建自服务的数据基础设施,将数据视为产品,并应用开放标准化,从而实现可交互的分布式数据产品生态系统。

Ethical bias testing

过去一年,我们已经看到人们对机器学习,尤其是深度神经网络的兴趣正在发生变化。到目前为止,这些模型的卓越功能推动了工具和技术上令人兴奋的发展。虽然目前,人们越来越担心这些模型可能会造成意外伤害。例如,一个模型可以经过训练,通过简单排除弱势申请人而做出有利可图的信用决策。幸运的是,我们看到人们对道德偏见测试的兴趣与日俱增,这将有助于发现潜在的有害决策。一些工具,例如 lime,AI Fairness 360 或者 What-If,可以帮助我们发 现一些训练数据和可视化工具中未被充分代表的群体而导致的不准确性。可视化工具中,Google Facets 和 Facets Dive 可以用来发现大量训练数据中的子组。但是,这是一个正在发展的领域,我们期待随着时间的推移,出现针对道德偏见测试的标准和实践。

Semi-supervised learning loops

半监督学习循环是一类迭代式的机器学习工作流,它们利用未标记数据中尚待发现的关系,来提升学习性能。这些技术通过不同方式组合标记和未标记的数据集,从而改进模型。此外,它们还对在不同数据子集上训练出来的的模型进行对比。与机器从未标记数据中推断分类的无监督学习,以及训练集完全标记的有监督技术不同,半监督技术利用的是一小部分被标记数据和大部分未标记数据。半监督学习还与主动学习技术密切相关,在主动学习技术中,人们被引导至选择性标记的模糊数据点。因为能够精确标记数据的专家是稀缺资源,并且标记通常是机器学习中最耗时的活动,所以半监督技术不仅降低了训练成本,还使机器学习对于新型用户而言是可行的。

需暂缓处理清单

10 倍工程师

在过去几个月,10 倍工程师一词受到密切关注。一个广泛传播的推文讨论在实质上建议公司应原谅反社会和破坏性的行为,以留住被认为个人产出巨大的工程师。 幸运的是,许多人在社交媒体上都嘲笑了这个概念,但是“明星开发者”的刻板印象仍然普遍存在。根据我们的经验,伟大的工程师不是因为个人产出而是因为能在优秀的团队中合作而诞生。打造一支混合不同经验和背景,但成员才华横溢的团队,并为团队合作、学习和持续改进提供良好的助力,这会是更行之有效的方式。这些10 倍团队行动起来更快,弹性也更强而无需屈从错误的行为。

机器学习的未来:可解释性

在本期的四大主题中,有一个与人工智能相关的话题:打开机器学习的黑匣子。报告认为,尽管机器学习的功能非常强大,但许多模型本质上并不是很好理解。当通过这些模型推算出的结果存在偏差,大部分开发者也很难找到问题所在。如今,越来越多的辅助工作可以弥补不同模型的局限性,并在可解释性方面做了很多改进。ThoughtWorks 认为,理解深度神经网络仍然是一个遥不可及的目标。因此,在选择机器学习模型时,数据科学家开始将可解释性视为第一要务,这将是未来机器学习发展的重要方向。

相关推荐