Press "Enter" to skip to content

杰夫 · 迪恩:《深度学习的黄金十年:计算系统与应用》

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

假如十年前,你向别人介绍人脸识别、无人驾驶、对话机器人,也许会被当作疯子。然而今天,随着AI技术的发展,这一切都逐渐成真。

 

即便五年前,有道推出有道神经网络翻译引擎(YNMT),使得翻译质量得到质的飞跃时,大家对机器翻译的质量仍然心存疑虑。但今天,人们甚至已经开始讨论未来是否还会存在翻译这个职业。

 

过去十年是人工智能快速发展的十年,也是从实验室走向工业界的十年。近期拜读AI领域标杆人物、Google 人工智能负责人杰夫·迪恩的长文,不免有些共鸣与感悟,也对继续投身 AI 技术发展的下一个十年充满期待。

 

我们用有道神经网络翻译引擎(YNMT)将全文做了翻译,以飨读者。大家也可以感受一下,当前机器翻译的效果。

 

——网易有道首席科学家 段亦涛

 

00

 

摘要

 

自计算机诞生之初,人类就梦想着能够创造出“会思考的机器”。1956年,约翰·麦卡锡(John McCarthy)在达特茅斯学院(Dartmouth College)组织了一个研讨会,会上一群数学家和科学家聚在一起,“研究如何让机器使用语言,形成抽象概念,解决现在只留给人类的各种问题,并提高自己。”讲习班与会者乐观地认为,几个月的集中努力将在这些问题上取得实际进展。

 

几个月的时间表被证明过于乐观。在接下来的50年里,创造人工智能系统的各种方法层出不穷,包括基于逻辑的系统、基于规则的专家系统和神经网络编码世界逻辑规则并使用这些规则的方法被证明是无效的。以Cyc项目为最突出的例子,手工将数百万条人类知识整理成机器可读的形式,被证明是一项非常劳动密集型的工作,在使机器自主学习方面没有取得显着进展从真正的生物神经网络中汲取灵感的人工神经网络,在这段时间里似乎是一种很有前途的方法,但最终在20世纪90年代失宠。虽然他们能够在玩具规模的问题上得出令人印象深刻的结果,但他们无法在当时的现实世界问题上得出有趣的结果。

 

1990年,作为一名本科生,我对神经网络着迷,觉得它们似乎是创造智能机器的正确抽象,并相信我们只需要更多的计算能力,就可以使更大的神经网络解决更大、更有趣的问题。我做了一篇关于神经网络并行训练的本科论文,相信如果我们可以使用64个处理器而不是一个处理器来训练一个神经网络,那幺神经网络就可以解决更多有趣的任务然而事实证明,相对于1990年的计算机,我们需要大约100万倍的计算能力,而不是64倍,才能让神经网络在具有挑战性的问题上开始取得令人印象深刻的进展!

 

然而,大约从2008年开始,由于摩尔定律,我们开始拥有如此强大的计算机,神经网络开始复苏,并成为最有前途的创造能看、能听、能理解和能学习的计算机的方式(以及将这种方法重新命名为“深度学习”)。

 

从2011年到本文撰写时(2021年)的这十年,在实现1956年达特茅斯研讨会设定的目标方面取得了显着进展,机器学习(ML)和人工智能现在在许多领域都取得了巨大的进步,为新的计算体验和交互创造了机会,并极大地扩展了世界上可以解决的问题集。

 

本文主要关注三个方面: 推动这一进展的计算硬件和软件系统;过去十年中机器学习的一些激动人心的应用实例;以及我们如何创造更强大的机器学习系统,以真正实现创造智能机器的目标。

 

01

 

人工智能的硬件和软件

 

与通用的计算机代码(比如你每天运行文字处理器或网络浏览器时可能会用到的软件)不同,深度学习算法通常是由组成少量线性代数操作的不同方式构建的:矩阵乘法、向量点积和类似的操作。由于这种有限的操作词汇表,我们有可能制造出专门支持这类计算的计算机或加速器芯片。这种专门化实现了相对于通用中央处理单元(cpu)的新的效率和设计选择,后者必须运行更广泛的各种算法。

 

在21世纪初,一些研究人员开始研究使用图形处理单元(gpu)来实现深度学习算法。尽管这些设备最初是为绘制图形而设计的,但研究人员发现,它们也非常适合深度学习算法,因为与cpu相比,它们具有相对较高的浮点计算率。2004年,计算机科学家Kyoung-Su Oh和Keechul Jung展示了使用GPU的神经网络算法的近20倍的改进。2008年,计算机科学家Rajat Raina和同事展示了使用GPU的速度比一些无监督学习算法的最佳cpu实现的速度高72.6倍。

 

这些早期的成就继续建立,因为在gpu上训练的神经网络在各种各样的计算机视觉比赛中胜过其他方法。随着深度学习方法在图像识别、语音识别和语言理解方面的显着改进,以及越来越多的计算密集型模型(在更大的数据集上训练)不断展示改进的结果,机器学习领域真正开始腾飞。计算机系统架构师们开始研究如何将深度学习模型扩展到计算密集程度更高的地方。早期的一种方法使用大规模分布式系统来训练单一的深度学习模型。谷歌研究员开发了 DistBelief 框架,这是一个能够使用大规模分布式系统来训练单个神经网络的软件系统。使用DistBelief,研究人员能够训练一个单一的无监督神经网络模型,该模型比以前的神经网络大两个数量级。该模型是在 YouTube 视频的大量随机帧集合上训练的,有了一个大的网络和足够的计算和训练数据,它证明了模型中的单个人工神经元(神经网络的构建模块)可以学习识别像人脸或猫这样的高级概念,尽管除了原始图像的像素外,从来没有给过关于这些概念的任何信息。

 

这些成功促使系统设计师设计出比gpu更适合和匹配深度学习算法需求的计算设备。为了构建专门的硬件,深度学习算法有两个非常好的特性。首先,它们对降低的精度非常宽容。许多数值算法需要32位或64位浮点表示来保证计算的数值稳定性,与此不同,深度学习算法在训练期间使用16位浮点表示(神经网络从观察中学习的过程),在推理期间使用8位甚至4位整数定点表示(神经网络从输入生成预测或其他输出的过程)通常都没问题。与使用更高精度的乘法器相比,使用较低精度的乘法器可以在相同的芯片区域放置更多的乘法器,这意味着芯片每秒可以执行更多的计算。其次,深度学习算法所需的计算几乎完全由密集矩阵或向量上不同序列的线性代数运算组成,如矩阵乘法或向量点积。这让我们看到,制造专门用于低精度线性代数计算的芯片和系统,可以在每美元和每瓦特的性能方面带来很大的好处。这方面的早期芯片是谷歌的第一个张量处理单元(TPUv1),它针对用于深度学习推理的8位整数计算,在速度和性能上比当代cpu和gpu提高了1到2个数量级这些芯片的部署使谷歌在语音识别精度、语言翻译和图像分类系统方面取得了显着的改进。后来的TPU系统由自定义芯片和更大规模的系统组成,这些芯片通过高速自定义网络连接到pods(用于训练深度学习模型的大规模超级计算机)像NVIDIA这样的GPU制造商开始为较低精度的深度学习计算量身定制后来的设计,风投资金资助的创业公司如雨后雨来,构建各种深度学习加速器芯片,其中GraphCore、Cerebras、SambaNova和Nervana是其中最知名的一些。

 

随着 gpu 和其他面向 ml 的硬件崛起,研究人员开发了开源软件框架,使表达深度学习模型和计算变得容易。这些软件框架仍然是关键的推动者。今天,开源框架帮助广泛的研究人员、工程师和其他人推动深度学习研究,并将深度学习应用到范围非常广泛的问题领域(其中许多将在下面讨论)。一些最早的框架,如2003年开始开发的Torch,从早期的数学工具(如MatLab和NumPy)中汲取灵感Theano是2010年开发的,是一个早期的面向深度学习的框架,包括自动符号区分自动微分是一个有用的工具,它大大简化了许多基于梯度的机器学习算法的表达,例如随机梯度下降(一种通过比较实际输出和期望输出,并在误差梯度的方向上对模型参数进行小的调整来纠正输出中的错误的技术)。DistBelief和Caffe是在2010年代早期开发的框架,强调规模和性能。

 

TensorFlow是一个允许表达机器学习计算的框架它是谷歌在2015年开发和开源的,并结合了早期框架,如Theano和DistBelief的想法,TensorFlow是针对各种各样的系统设计的,允许ML计算运行在桌面计算机、手机、数据中心的大规模分布式环境和web浏览器上,并针对各种各样的计算设备,包括cpu、gpu和tpu。该系统已被下载超过5000万次,是世界上最受欢迎的开源软件包之一。它使世界各地大大小小的个人和组织能够大量使用机器学习。

 

2018年发布的JAX是一个流行的面向python的开源库,它结合了复杂的自动区分和底层的XLA编译器,TensorFlow也使用它来高效地将机器学习计算映射到各种不同类型的硬件上

 

像Tensor-Flow和PyTorch这样的开源机器学习库和工具的重要性再怎幺强调也不为过。它们允许研究人员在这些框架上快速尝试想法并表达它们。随着世界各地的研究人员和工程师更容易建立在彼此的工作上,整个领域的进展速度加快了!

 

02

 

研究爆炸

 

随着研究的进步,gpu和tpu等面向ml的硬件的计算能力不断增强,以及Tensor-Flow和PyTorch等开源机器学习工具的广泛采用,机器学习及其应用领域的研究产出出现了巨大的增长。一个强有力的指标是发布到arXiv机器学习相关类别的论文数量,arXiv是一个流行的论文预印本托管服务,2018年发布的论文预印本数量是2009年的32倍多(每两年增长一倍多)现在,每天有超过100篇与机器学习相关的研究论文发布在arXiv上,而且这种增长没有任何放缓的迹象。

 

03

 

应用爆炸

 

计算能力的变革性增长、机器学习软件和硬件系统的进步,以及机器学习研究的激增,都导致了机器学习应用在科学和工程的许多领域的激增。通过与气候科学和医疗保健等关键领域的专家合作,机器学习研究人员正在帮助解决对社会有益、促进人类进步的重要问题。我们确实生活在一个激动人心的时代。

 

神经科学是机器学习加速科学进步的一个重要领域。2020年,研究人员研究了一只苍蝇的大脑,以更多地了解人类大脑的工作方式。他们建立了一个连接体,一个突触分辨率级别的整个苍蝇大脑连接图但如果没有机器学习和我们现在拥有的计算能力,这将需要很多年。例如,在20世纪70年代,研究人员花了大约10年的时间,煞费苦心地绘制了蠕虫大脑中的大约300个神经元。相比之下,苍蝇的大脑有10万个神经元,而老鼠的大脑(机器学习辅助连接组学的下一个目标)有大约7000万个神经元。人类的大脑包含大约850亿个神经元,每个神经元大约有1000个连接。幸运的是,基于深度学习的计算机视觉技术的进步,现在可以加快这个之前庞大的过程。今天,依靠机器学习,你可以使用交互式3d模型自己探索苍蝇的大脑!

 

3.1

 

分子生物学

 

机器学习还可以帮助我们更多地了解我们的基因构成,最终更有效地解决基于基因的疾病。这些新技术允许科学家通过更精确的模拟、估计和数据 分析来更快地探索潜在实验的前景。一种名为DeepVariant的开源工具可以更准确地处理来自DNA测序机的原始信息(其中包含读取基因序列的物理过程引入的错误),并通过卷积神经网络对其进行分析,相对于参考基因组数据,更准确地识别序列中真正的基因变异。一旦确定了遗传变异,深度学习还可以帮助分析遗传序列,更好地理解导致特定健康或其他结果的单个或多个DNA突变的遗传特征。例如,达纳-法伯癌症研究所(Dana-Farber Cancer Institute)领导的一项研究,在2367名癌症患者队列中,将导致前列腺癌和黑色素瘤的基因变异的诊断率提高了14%。

 

3.2

 

医疗保健

 

机器学习还提供了帮助检测和诊断疾病的新方法。例如,当应用于医学图像时,计算机视觉可以帮助医生诊断一些严重的疾病,比医生自己诊断更快速、更准确。

 

一个令人印象深刻的例子是深度神经网络正确诊断糖尿病视网膜病变的能力,通常与人类眼科医生的水平相当。这种眼疾是增长最快的可预防失明原因(预计到2040年将影响6.42亿人)。

 

深度学习系统还可以像训练有素的放射科医生一样或更好地帮助检测肺癌。同样的道理也适用于乳腺癌、皮肤病和其他疾病对病历进行顺序预测的应用可以帮助临床医生确定慢性疾病的可能诊断和风险水平。

 

今天的深度学习技术也让我们更准确地了解疾病的传播方式,让我们有更好的机会预防疾病。机器学习帮助我们模拟复杂事件,如全球COVID-19大流行,这需要全面的流行病学数据集、开发新的可解释模型和基于代理的模拟器,为公共卫生应对提供信息。

 

3.3

 

天气、环境和气候变化

 

气候变化是当前人类面临的最大挑战之一。机器学习可以帮助我们更好地了解天气和环境,特别是在预测日常天气和气候灾害方面。

 

在天气和降水预报方面,计算密集型的基于物理的模型,如美国国家海洋和大气管理局的高分辨率快速刷新(HRRR),长期以来一直占据主导地位,然而基于机器学习的预测系统在短时间尺度上的预测比HRRR更准确,具有更好的空间分辨率和更快的预测计算。

 

对于洪水预测,神经网络可以为世界各地的河流系统建模(一种被称为HydroNets的技术),从而产生更准确的水位预测例如,利用这项技术,当局可以更快地向印度和孟加拉国的2亿多人发出洪水警报。

 

机器学习还能帮助我们更好地分析卫星图像。我们可以快速评估自然灾害后的损害(即使有有限的先前卫星图像),了解野火的影响和程度,并改善生态和野生动物监测。

 

3.4

 

机器人技术

 

物理世界是混乱的,充满了意想不到的障碍、滑动和破碎。这使得创造出能够在厨房、办公室和道路等混乱的真实环境中成功操作的机器人变得相当具有挑战性(工业机器人已经对世界产生了重大影响,可以在工厂装配线等更可控的环境中操作)。要对真实的物理任务进行编码或编程,研究人员需要预测机器人可能遇到的所有可能情况。机器学习通过结合强化学习、人类演示和自然语言教学等技术,有效地训练机器人在现实环境中有效地操作。机器学习还提供了一种更灵活、适应性更强的方法,机器人可以学习执行抓取或行走任务的最佳方式,而不是被锁定在硬编码的假设中。

 

一些有趣的研究技术包括与远程机器人导航相结合的自动强化学习,教机器人遵循自然语言指令(多种语言!),以及应用零射击模仿学习框架来帮助机器人更好地导航模拟和真实环境。

 

3.5

 

可用性

 

我们很容易认为看到美丽的画面,听到喜欢的歌曲,或与心爱的人说话是理所当然的。然而,超过10亿人无法通过这些方式接触世界。机器学习通过将这些信号(视觉、听觉、语音)转化为有无障碍需求的人可以很好地管理的其他信号,从而改善无障碍环境,使人们能够更好地接触到周围的世界。一些应用的例子包括语音到文本的转录,当某人参与对话时的实时转录,以及帮助视障用户识别他们周围环境的应用。

 

3.6

 

因材施教

 

机器学习还可以用于创建工具和应用程序,以帮助个性化学习。这将带来深远的好处,最初的例子包括早期儿童阅读指导,如谷歌Read Along(前身为Bolo),它正在帮助世界各地的儿童学习各种不同语言的阅读,和机器学习工具,如苏格拉底,可以通过给他们直观的解释和更详细的信息,他们正在努力学习的概念,在各种各样的科目,如数学、化学、还有文学由语音识别、现实的语音输出和语言理解支持的个性化学习有潜力改善世界各地的教育成果。

 

3.7

 

计算机辅助创造力

 

深度学习算法显示出以复杂和创造性的方式转换图像的惊人能力,使我们能够轻松地创建莫奈风格的宇宙飞船或爱德华·蒙克风格的金门大桥。通过一种艺术风格转移的算法(由机器学习研究员Leon Gatys和同事开发),神经网络可以取一张真实世界的图像和一幅画的图像,并自动呈现画家风格的真实世界的图像。OpenAI的DALL·E让用户可以使用文本描述图像(“牛油果形状的扶手椅”或“一个阁楼卧室,床头柜旁边有一张白色的床,床旁边有一个鱼缸”),并生成具有自然语言描述所表达的属性的图像,为艺术家和其他创作者提供了复杂的工具,以快速创建他们头脑中的图像。

 

以机器学习为动力的工具也在帮助音乐家以前所未有的方式进行创作除了“技术”,这些计算的新用途可以帮助任何人创造新的和独特的声音、节奏、旋律,甚至是一种全新的乐器。

 

不难想象,未来的工具可以交互式地帮助人们创造我们精神意象的惊人表现——“给我画一个海滩……不,我希望是晚上……满月的时候…还有一只长颈鹿妈妈和一个婴儿在冲浪者旁边从水里出来”——通过与我们的计算机助手互动交谈。

 

3.8

 

重要组成部分

 

联邦学习是一种强大的机器学习方法,可以保护用户隐私,同时利用许多不同的客户端(如移动设备或组织)协作训练一个模型,同时保持训练数据的分散这使得在大规模学习系统中具有优越隐私属性的方法成为可能。

 

研究人员通过开发自适应学习算法、在联邦设置中模仿集中式算法的技术、对互补的密码图形协议的大幅改进等,继续推动联邦学习的艺术水平。

 

3.9

 

Transformer

 

自人工智能领域诞生以来,语言一直是该领域发展的核心,因为语言的使用和理解在我们的日常生活中无处不在。因为语言涉及符号,所以一开始很自然地促使人工智能采用符号方法。但多年来,人工智能研究人员逐渐意识到,更多的统计或基于模式的方法可以产生更好的实际用途。正确的深度学习类型可以有效地表示和操纵语言的分层结构,用于各种现实世界的任务,从语言之间的翻译到图像标记。谷歌和其他地方在这一领域的大部分工作现在依赖于变形金刚,这是一种最初为语言问题开发的特殊风格的神经网络模型(但越来越多的证据表明,它们也可以用于图像、视频、语音、蛋白质折叠和其他各种各样的领域)。

 

已经有几个在科学设置中使用变形器的有趣例子,例如训练蛋白质序列以找到编码有意义的生物特性的表示,通过语言建模生成蛋白质,bio-BERT用于生物医学数据中的文本挖掘(使用预先训练的模型和训练代码),嵌入科学文本(使用代码),以及医学问题回答。计算机科学家Maithra Raghu和Eric Schmidt对深度学习用于科学发现的方法进行了全面的回顾。

 

3.10

 

计算机系统的机器学习

 

研究人员还将机器学习应用于核心计算机科学和计算机系统本身的问题。这对机器学习和计算基础设施研究来说是一个令人兴奋的良性循环,因为它可以加速我们应用到其他领域的所有技术。事实上,这一趋势正在催生全新的会议,如 MLSys 基于学习的方法甚至被应用于数据库索引、学习排序算法、编译器优化、图优化和内存分配。

 

04

 

机器学习的未来

 

在ML研究社区中出现了一些有趣的研究线索,如果把它们结合起来,可能会更加有趣。

 

首先,在稀疏激活模型上的工作,比如稀疏门控混合专家模型,展示了如何构建非常大的容量模型,其中对于任何给定的例子,只有模型的一部分被“激活”(比如,2048个专家中只有2或3个专家)这些模型中的路由函数与不同的专家同时联合训练,使路由函数了解哪些专家擅长于哪类示例,而专家同时学习针对所给出的示例流的特征进行专门研究。这与现在大多数的ML模型形成了鲜明的对比,在ML模型中,每个实例都要激活整个模型。研究科学家Ashish Vaswani和他的同事们表明,这种方法在训练时效率提高了约9倍,在推理时效率提高了约2.5倍,而且更准确(+1 BLEU点,对于语言翻译任务来说,这是一个相对较大的准确性提高)。

 

其次,在自动化机器学习(AutoML)方面的工作,如神经结构搜索或进化结构搜索等技术可以自动学习有效的结构和机器学习模型或组件的其他方面,以优化给定任务的准确性,通常涉及运行许多自动化实验,每一个可能涉及大量的计算。

 

第三,在几个到几十个相关任务的适度规模上进行多任务训练,或者从一个相关任务的大量数据上训练的模型转移学习,然后对一个新任务的少量数据进行微调,已经被证明对各种各样的问题都是非常有效的到目前为止,多任务机器学习的大多数应用通常是在单一模态的情况下(如所有视觉任务或所有文本任务),尽管少数作者也考虑了多模态的设置。

 

一个特别有趣的研究方向将这三种趋势结合在一起,即在大规模ML加速器硬件上运行一个系统,目标是训练一个可以执行数千或数百万任务的单一模型。这样的模型可能由不同结构的许多不同组件组成,示例之间的数据流在逐个示例的基础上是相对动态的。该模型可能会使用像稀疏门控混合专家和学习路由这样的技术,以拥有一个非常大的容量模型,但在这个模型中,给定的任务或示例只稀疏地激活系统中总组件的一小部分(因此保持每个训练示例或推理的计算成本和功耗低得多)。一个有趣的探索方向是对不同的例子使用动态和自适应的计算量,这样“简单”的例子比“困难”的例子使用的计算量要少得多(这在今天的机器学习模型中是一个相对不寻常的特性)。图1描述了这样一个系统。

 

 

每个组件本身可能正在运行一些类似于automl的体系结构搜索,以便使组件的结构适应路由到该组件的数据类型如果有用,新任务可以利用在其他任务上训练的组件。希望通过非常大规模的多任务学习、共享组件和学习路由,模型可以非常快速地学习以较高的精度完成新任务,每个新任务的示例相对较少(因为模型能够利用其在完成其他相关任务时已经开发的专业知识和内部表示)。

 

在人工智能和计算机系统工程领域,构建一个能够处理数百万个任务,并能够学习自动成功完成新任务的单一机器学习系统是一个真正的巨大挑战。它将需要在许多领域的专业知识和进步,包括机器学习算法、公平和可解释性等负责任的AI主题、分布式系统和计算机架构,从而通过构建一个可以在机器学习的所有应用领域中独立解决新任务的系统来推动人工智能领域的发展。

 

4.1

 

负责任的AI开发

 

虽然人工智能有能力在我们生活的许多方面帮助我们,但所有研究人员和实践者都应该确保这些方法是负责任的开发——仔细审查偏见、公平、隐私和其他社会考虑因素,这些工具可能会如何表现和影响他人,并努力适当地解决这些考虑因素。

 

制定一套明确的原则来指导负责任的发展也很重要。2018年,谷歌发布了一套人工智能原则,指导该公司在人工智能方面的工作和使用。人工智能原则列出了重要的考虑领域,包括机器学习系统中的偏见、安全、公平、问责、透明度和隐私等问题。近年来,其他组织和政府也遵循这一模式,发布了自己关于人工智能使用的原则。很高兴看到更多的组织发布他们自己的指南,我希望这一趋势将继续下去,直到它不再是一种趋势,而是所有机器学习研究和开发的标准。

 

05

 

总结

 

2010年代是深度学习研究和进步的黄金十年。在这十年里,该领域在1956年创造了人工智能领域的研讨会上提出的一些最困难的问题领域取得了巨大的进展。机器能够以早期研究人员所希望的方式看、听和理解语言。

 

这些核心领域的成功使许多科学领域取得了巨大的进步,使我们的智能手机变得更加智能,并使我们看到了未来的可能性,因为我们继续在创造更复杂和强大的深度学习模型,以帮助我们的日常生活。在强大无比的机器学习系统的帮助下,我们的未来将变得更有创造力、更有能力。我迫不及待地想看看未来会发生什幺!

 

作者注:

 

Alison Carroll, Heather Struntz 和 Phyllis Bendell 帮助编辑了这份手稿,并对如何呈现大部分材料提出了许多有用的建议。

 

©2022由Jeffrey Dean提供。在CC BY-NC 4.0许可下发布。

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。