人工智能的深度学习圈已经就几个基本概念达成共识。
一种观点认为,在可预见的未来,神经网络变得越来越大的趋势将持续下去,但也有一些例外。
另一种共识认为,深度学习的潜力取决于软件创新,尽管新型硬件不断涌现。
这两件事放在一起意味着什么?
它们可能意味着,软件创新是唯一能让所有使用人工智能的人都能接触到深度学习的东西,而不仅仅是那些拥有最大、最昂贵的计算机的人。
“当我们深入研究时,今天的人工智能实际上是关于超级计算的,”芯片巨头英特尔人工智能和分析副总裁兼总经理李伟说。
“最大的模型需要一百万美元来训练,它们相当于一台超级计算机。”
另外:亚马逊的 Alexa 科学家证明更大的 AI 并不总是更好
李在接受 ZDNet 采访时表示,这使得大部分 AI 超出了凡人的能力范围。
“我们在研究实验室中采用人工智能非常成功,斯坦福大学博士生在那里创建识别猫和狗的算法,云服务提供商做了很多事情,”李说。
“这是不可持续的,如果每个人都必须支付一千万美元来训练一个万亿参数的模型,它就不会广泛适用,”李说。 “如果你想走得更远——这就是这里的机会,让人工智能无处不在——桥梁还没有完全建立起来。”
在李看来,桥梁是软件。 软件是一种能力,能够将实验室的突破成果分发给大大小小的组织,使用不同类型的计算机硬件,包括 CPU 和 GPU 以及所有新奇的加速器芯片。
“我将软件视为通往 AI 无处不在的桥梁,”李说。
对于李来说,目前的僵局有一种非常熟悉的感觉。 1990 年代,他在康奈尔大学攻读了计算机科学博士学位,推进了编译器技术,该软件使程序可以在给定的硬件上运行。 然后,他的工作特别专注于如何跨多个计算资源运行工作负载。
“令人惊奇的是,我当时学到的东西都是关于快速运行和处理大量数据的,”李回忆道。
另外:Graphcore 的首席执行官说,人工智能的未来是一个软件故事
继康奈尔大学之后,李在 25 年前被英特尔聘用,当时该公司正从主要的 PC 芯片制造商跃升为领先的服务器芯片供应商。 他的专业知识用于开发服务器编译器。 “我一直处于英特尔的前沿,”他回忆道,“这让我的工作充满乐趣。”
就像技术中经常出现的情况一样,旧的东西又是新的。 李说,突然间,深度学习中的一切都回到了当天编译器的创新。
他说,近年来“编译器变得无关紧要”,计算机科学的一个领域被视为基本稳定。 “但由于深度学习,编译器正在回归,”他说。 “我们正处于这种转变的中间。”
在他在康奈尔大学的博士论文中,李开发了一个编译器框架,用于在具有所谓的“非统一内存访问”或 NUMA 的超大型系统中处理代码。 他的程序为尽可能多的并行处理重新设计了代码循环。 但它还做了其他特别重要的事情:它根据代码在任何给定时间需要访问哪些内存来决定应该运行哪些代码。
李说,今天,深度学习正在接近那些同样的问题占主导地位的地步。 深度学习的潜力主要不是取决于可以计算多少矩阵乘法,而是取决于程序访问内存和带宽的效率。
“在 [深度学习] 的早期阶段,一切都与这些原语有关,你能否快速运行矩阵乘法,你能否快速运行卷积,”李说。
“向前迈进,原始人只是第一步,”李说。 这个问题变成了更具战略性的决策问题。 “你如何在我们拥有的所有异构机器上运行[计算操作]图,”他说。 “你想分布它,你想以某种方式并行化它,你想以某种方式处理内存层次结构——这些都是编译器优化。”
有些事情比其他事情更难。 “我们的工作是选择一个图形并将其划分为这些计算单元——这是比较容易的部分,”李说。 计算机程序员可以绘制计算硬件、各种节点、处理器的图表,并思考如何划分执行循环。
内存和通信要困难得多,也不容易用图表表示,尤其是在神经网络模型越来越大的情况下。
“困难的部分是内存层次结构,它比简单的并行化要难得多,这是关键,”李说。 “困难的部分是互连带宽,通信组织。”
“我们没有对数据移动建模的好方法,”他指出。 “大部分工作都是关于管理数据——编译器优化的难点在于如何以有效的方式管理数据。” 具体来说,“数据局部性非常重要,”李说,意思是,一个操作对给定的数据片段起作用,并且“希望那部分数据仍然保留在最近的内存层中,或者可能是某处的缓存中。”
此外:高通推出“AI Stack”产品组合,以统一移动、汽车、物联网和其他设备
问题的规模随着某些类型的深度学习而增加,例如图形神经网络,用于推荐系统,例如商业应用程序。
“在核心层面有相似之处,我们谈论的是矩阵乘法、卷积,但当你超越这一点时,就会有多样性,”李说。 在计算机视觉系统中,可能有数百万张图像需要处理,但“当你处理图表时,数据量是巨大的”。 每个人都与其他人联系在一起,就像在社交网络中一样,这意味着处理过程面临质的不同挑战。
“你想想 LinkedIn,有多少亿人——也就是数十亿个节点——这真的是大数据。”
如何处理真正大数据的内存和互连“回到并行编译器,”李说。
“实际上,我们需要很多编译器人员,因为这一切都回到了编译器上。”
英特尔已经采取措施让更多的编译器专家加入进来。 6 月,该公司宣布将收购位于苏格兰爱丁堡的并行编译器供应商 CodePlay 初创公司。
CodePlay 是英特尔努力为 Li 讨论的所有优化提供广泛软件堆栈的一个组成部分。 作为一种可能的解决方案,李是英特尔帮助开发的软件工具包和平台的拥护者,名为 oneAPI,其源代码发布在 GitHub 上。 自 2020 年 12 月以来,英特尔一直在发布自己的开源规范实施方案。
另外:人工智能初创公司 SiMa.ai 首次推出用于边缘计算的“专用”人工智能芯片
oneAPI 提供用于加速矩阵乘法原语的库,例如 oneDNN。 它还包括英特尔打算成为一种跨平台并行化语言的编程语言,称为 DPC++。 该语言是对 Khronos Group 开发的 SYCL 语言的改编。 CodePlay 已经有了自己的类似于 DPC++ 的成果,称为 ComputeC++。
当被问及 oneAPI 的进展时,李说,“采用率正在上升,这些是我们从深度学习方面得到很好采用的地方。”
“还有很长的路要走,”他补充道。 “在社区和生态系统中建立标准并不是一件容易的事情。”
英特尔可以指出一些实际的成功。 OneAPI 技术之一 OneDNN 是一种加速神经网络性能的方法,已成为 TensorFlow 和 PyTorch 中的默认设置。 一个名为 BigDL 的英特尔库可以自动重构在单个节点上开发的神经网络,以扩展到数千个节点,已被 MasterCard 等大公司采用。
处理器授权巨头 ARM 在其处理器设计中实施了 oneAPI。 “ARM 实际上在使用相同的 OneAPI,他们是我们 OneDNN 的主要贡献者之一,”李说。 “他们在 ARM 上实施了 oneDNN,这就是他们更快实现价值的方式。”
“最终,我们会从我们所做的优化中看到很多性能提升,”李说。 他说,使用 oneAPI “我们看到了 10 倍的规模,我们看到了 100 倍的性能提升”。
Li 的部分战斗是不断强调软件的重要性,在 Cerebras Systems、Graphcore 和 SambaNova 等初创公司的最新硬件加速器吸引了大部分注意力的世界里,软件的重要性可能会被掩盖。
“即使在行业内,也存在,你可以称之为脱节,”李说。 “人们经常谈论如何拥有数据、算法和计算——人们对软件的概念知之甚少,但实际上,软件在实现人工智能方面发挥着关键作用。”
尽管软件很重要,但关于 AI 加速的讨论总是会回到英特尔作为最大的独立处理器制造商的地位,以及它与 Cerebras 等年轻竞争对手以及现任 AI 芯片巨头 Nvidia 之间的较量。
另外:使超级计算机可用的 Jack Dongarra 获得了 2021 年 ACM 图灵奖
英特尔通过其于 2019 年收购的芯片制造商 Habana 直接与初创公司竞争,Habana 继续在连续几代产品中提供具有竞争力的性能改进。 英特尔承担着所有 x86 用户支持遗留代码的负担,这是初创公司所没有的。 但是,李说,从某种意义上说,初创公司还必须支持遗产——TensorFlow 和 PyTorch 等 AI 框架的遗产,这些框架主导了神经网络的创建。
“你如何将你独特的东西插入到已经存在的东西中?” 是李如何措辞的问题。 “这是所有人都面临的挑战,也是我们面临的挑战。
“这就是为什么我有一个团队致力于 Python,我有一个团队致力于 TensorFlow,”他说。 “这就是为什么我们的战略是在许多不同方面的软件生态系统。”
英特尔与 Nvidia 瓜分了大批量 AI 芯片的市场,Nvidia 主导着训练,最初阶段是开发神经网络,而当训练有素的神经网络运行预测时,英特尔拥有大部分推理市场。 英特尔在边缘也面临来自高通的竞争,高通正在推广自己的软件堆栈,可以将其视为 oneAPI 的替代品。
英特尔芯片路线图中处理器的激增——代号为 Ponte Vecchio 的数据中心 GPU、具有矩阵乘法能力的至强服务器 CPU 的持续增强、新的现场可编程门阵列 (FPGA) 等——意味着有一个非常大的 英特尔与 Nvidia、AMD、高通和初创公司竞争的维恩图。
“在今天的 CPU 中,我们拥有推理市场的大部分,这就是我们发挥作用的地方,并且由于我们在这里做的其他加速器,我们正在进入训练市场,”李说。
Nvidia 被普遍认为对训练市场的控制力很强,不仅是因为它的 GPU 出货量大,而且因为它的 CUDA 编程工具比其他任何东西都存在的时间更长。
“CUDA 问题很有趣,因为它实际上取决于人们的水平有多低,”李说。 Li 坚持认为,只有一小部分观众真正关心编写 CUDA 库和 CUDA 编程语言。 英特尔试图通过 oneAPI 接触的绝大多数人都是大众:在框架级别工作的数据科学家。
“当我们到处谈论人工智能时,你有数百万开发人员,但这些开发人员大多处于顶层,”他说。 “他们不会处于 CUDA 编程级别,他们将处于 TensorFlow 编程级别——这些人将使 AI 达到规模,对吧?”
英特尔是否有机会打破英伟达在深度学习研究人员中的领先优势? 李克制不做宏大的预测。 相反,他说,“我认为这对整个市场都有好处,因为它提供了另一种选择,”也就是说,oneAPI。
“我的目标是把我们的产品开发好,让产品在市场上自己说话,”他说。 “在我看来,英特尔处于有利地位,可以引领这场让人工智能无处不在的旅程,尤其是在软件方面。”
还有另外一个群体与英特尔竞争,但它也与之合作,即云服务提供商、亚马逊、Alphabet 和微软。 这三者都有自己的芯片程序。 就 Alphabet 的谷歌 TPU(张量处理单元)而言,该芯片系列现已进入第四代,并作为谷歌云中的专用主力得到大幅提升。 亚马逊的“Trainium”芯片作为一个生态系统目前还不太发达。
虽然云供应商从英特尔购买了大量处理器,但他们的本土部件可被视为英特尔及其商业硅竞争对手 Nvidia 和 AMD 的障碍。 内部芯片可以减轻商家产品的工作量。
一方面,英特尔努力转向,李说,与云巨头的需求保持联系。 “这很有趣:最初,人工智能只是关于计算机视觉,以及猫和狗,”李说。 “但是当我们开始与 CSP [云服务提供商] 合作时,我们发现那里的第一个周期,即他们消耗的最大计算量,不是计算机视觉,它实际上是推荐系统。”
初创公司跟不上这个步伐,李坚称。 “你可以想象,五年前,到处都有一家初创公司,他们只为 AlexNet 设计了机器,”这是一种进行广泛使用的 ImageNet 测试的神经网络。 “如今,他们已经倒闭了,因为他们无法应对 CSP 的趋势。”
与此同时,“云是我们的首要任务,但无处不在的人工智能实际上正在超越云,走向企业。”
这些企业客户“有不同的人群,他们有不同的要求和不同类型的应用程序”。 李观察到,这些企业可能包括 Facebook,也可能包括零售商。
Li 认为,IoT 和边缘计算的应用可能需要与 AI 的云操作不同的敏感性。
“我会与一些大零售商交谈,他们的应用程序并不完全是云应用程序,”李说。 “他们可能会在店内进行一些机器学习,这与云端略有不同。”
“这些事情在做的事情的多样性方面正在发生变化,”李观察到人工智能工作负载,“这就是为什么我认为英特尔处于有利地位,因为英特尔有规模。” 他坚持认为,芯片组合,即英特尔出货量,意味着它可以处理多样性。
“英特尔很大,我们今天在广泛的市场中设计和制造了一系列高质量的硬件,”他说,“而且,这些通常是相互连接的,”就像连接到云的边缘工作负载的情况一样 数据中心。
至于超大型神经网络,李认为蒸馏和迁移学习等技术将使这些超级计算机神经网络的成果渗透到普通用户手中。
“我会说,这将是一个金字塔,在金字塔的顶端是所有的模型,只有少数富有的公司可以继续推动这些东西,”李说。 “然后会有一个广度,它的大部分,你会发现更多的经济模型——采用一个大模型,然后找到等效的小模型来做同样的事情。
“但在高层,人们总是会追求超级计算类型的东西。”