来源|The Robot Brains Podcast
编译|OneFlow社区
Simon Knowles从事处理器研发工作已超过30年,是一位非常典型的连续创业者。
从剑桥大学电子工程专业毕业后,他前往英国政府研究实验室研究过早期的神经网络。而后他进入意法半导体公司(ST Microelectronics),领导了微处理器开发小组。
1990年代,Simon Knowles创立了一家面向DSL芯片业务的Element 14,它于2000年被美国的有线和无线通信半导体公司博通以6.4亿美元的价格收购;2002年,Simon Knowles和Nigel Toon创办了3G蜂窝调制解调器芯片公司Icera,并在2011年以4.36亿美元卖给了英伟达。
Graphcore联合创始人 Nigel Toon(左)和 Simon Knowles(右)
随后,Simon Knowles和Nigel Toon一直在考虑再次合作创业,并从2013年开始筹集资金,2016年,那个后来备受业界、市场和资本高度关注的Graphcore对外宣布成立,他们主要研发专用于AI计算的全新处理器IPU(Intelligence Processing Unit),以帮助加速机器智能产品和服务的开发。Simon Knowles担任公司联合创始人、CTO兼执行副总裁。
为了开发出可以利用所有功率但比GPU更节能的芯片,他们设计了一款具有1216个处理器内核的芯片,共有240亿个晶体管。2018年年底,他们研发的首款IPU芯片正式推出,每秒能够检测10000张不同的图像。2020年12月,Graphcore宣布E轮融资筹集了2.22亿美元,总融资额超过4.5亿美元。
他们的目标是使机器能够识别更复杂的数据,从中找到完成给定任务的方法而不仅仅是简单的对象。
在由Pieter Abbeel主持The Robot Brains Podcast节目中,Simon Knowles介绍了AI计算的发展背景,分享了Graphcore的创业思路和过程以及IPU的设计理念,并对AI芯片行业的未来发展做了展望。
以下是对话内容,OneFlow社区做了不改变原意的翻译和编辑。
1
第三次创业想法的缘起
Pieter:可以说,最新一轮AI崛起的标志性事件是在2012年的ImageNet图像识别挑战赛上,Geoffrey Hinton和他的学生Alex Krizhevsky、Ilya Sutskever提出的深度卷积神经网络结构AlexNet获得了压倒性优势,并一举夺魁,AlexNet引爆了神经网络的应用热潮。
有人可能会说,这次崛起主要是由于Alex使用了GPU而非CPU来训练神经网络,而GPU可以训练更多的数据,效率也更高。你能不能先解释一下GPU与CPU的区别,以及为什么GPU更有利于AI计算?
Simon:如果你没有深入了解过处理器,可能就不知道微处理器有很多种类型。英特尔制造的处理器称之为CPU,具有很强的通用性。专用于图形处理的是GPU。还有其他很多类型的处理器,它们的工作原理与GPU和CPU都不相同。
比如用于通信领域的网络处理器,主要是做包处理、路由查找等任务;还有不同类型的数字信号处理器DSP,主要是将信号以数字方式表示并处理;此外,还有我和我的团队曾研发的媒体处理器,曾是意法半导体公司制造的首批专用媒体处理器之一,可以进行编解码,处理M-JPEG、MPEG4、H.264等格式。
为什么这些处理器的结构有所不同?不同类别的处理器之间主要存在以下三个方面的差异:
首先是并行方式,即通过构建机器间不同的并行方式来获得更高性能;其次是内存层次结构,这很大程度上取决于需要访问的数据结构类型以及访问方式;最后是算术运算的形状和大小,运算需要消耗大量算力,所以你需要确定数据类型以及计算量大小。
AI应该是第一个对低精度数字进行高性能处理的应用。人们喜欢将AI与传统的高性能计算(HPC)放在一起比较,但它们的原理恰恰相反。
那GPU的不同之处是什么?现在的GPU芯片支持独立的线程运行独立的程序。其中,每个独立的线程都有约为1000位宽的矢量数据路径。GPU最初的设计是用于处理像素阵列或投影到像素阵列上的3D世界模型。对于需要执行的任务,开发者可以拥有自己想要的并行方式。换言之,GPU的内存层次结构帮助开发者高效地获取内存中的2D或3D对象,算术计算帮助开发者高效地处理这些对象。不过,与此相反,我们现在的设计假设之一是,智能处理需要考虑数据内部的结构,而不仅仅视之为数组或张量。
Pieter:通过GPU可以训练更大的神经网络,并且获得更好的结果,这一突破在2012年突然就发生了。凑巧在这一年,我听说你在马尔堡酒馆(Marlborough Tavern)的私密会议上所谈的事让你的职业生涯有了新突破。当时发生了什么?
Simon:你说的是我和Nigel Toon(Graphcore联合创始人)见面的事。他是我的多年好友,在那之前,我们经常聚在一起谈论未来最合适的合作方向,最终决定创建一个芯片公司。
实际上,我们当时想出了三个发展方向:炙手可热的物联网(IoT),用ARM内核构建重负载服务器来与X86竞争,还有一个就是人工智能。
当时,我们在马尔堡酒馆进行了讨论,一致认为IoT这个方向看上去很无聊。它的有趣之处恰恰在于如何处理收集到的数据,而答案就是人工智能。而对于使用ARM内核构建重负载服务器这个方向,如果选择创业来和芯片巨头英特尔同台较量,这无疑是一项艰难的挑战。当然,我们都知道ARM服务器芯片会出现,而且现在已经出现了,就是有些难用。
然而对于AI方向,我们认为它足够特殊,也有足够的市场潜力,可以成就一番大事业。这次讨论实际上发生在AlexNet提出之前。换言之,我们的想法并不是受到神经网络的启发。但有趣的是,我和Hinton在1980年代中期讨论过神经网络。
我的第一份工作是在一个受英国政府资助的研究基地,叫皇家信号与雷达机构( Royal Signals and Radar Establishment),现在听起来有点怪,我们主要研发液晶显示器等项目。然而,当时我参与的一个项目是尝试用神经网络来翻译人类语言,发现关键的短语等类似内容。
当时我们在芯片中构建了一个神经网络。我们猜想,如果可以构建一个比这还大100倍的神经网络,就可以做我们想做的工作,但最终没能实现。当然,现在我们可以完成这项工作,但100倍这个量级远远不够。
早在60年代,人们推测神经网络会在80年代爆发,但当时的技术无法实现。然后在2010年代,从Alex Krizhevsky那篇著名的论文开始,神经网络突然就火起来了,或许是那时有条件让这一切发生。
Pieter:考虑到对下一代高效计算的需求,你在酒馆里预言,AI会是下一个技术浪潮,之后“AlexNet时刻”就来了,当时你有没有跟Nigel说“记住我们的谈话,我们肯定要为此而努力”?AlexNet的出现是否影响了你的想法?
Simon:不,我们在2012年初做出的决定就是要做人工智能方向,并且成立一家芯片公司。当时,没有比投资芯片更不时尚的风投项目了。所以很明显,我们必须慢慢来,选择时机,并尝试通过风险投资来启动创业。
我们创业前已经做过几家成功的芯片公司,所以肯定有投资者会投我们。但实际上,我确实花了更长时间来研究创业并试图弄清楚该怎么做。大约在2014年,我们开始启动项目并招聘工程师。虽然直到2016年Graphcore才对外公开,但在这之前做了一些前期的准备工作。我们最初是在另一家叫Acorn的芯片公司内部孵化的。
你可能会觉得有点奇怪,但实际上,我们首次创业做Element 14就曾这样做过。这至少是我们以前经历过的一种创业方式。
Graphcore的创业之路走向正轨后,我们意识到CNN的快速发展,必须使我们的架构更适应于CNN,当然我们的架构还需要更多其他架构已经具备的结构,比如在处理器中构建矩阵引擎。
2
为什么需要专用AI芯片
Pieter:现在可以用语音、图像、自动驾驶等多个应用场景的数据集来训练神经网络,而你们似乎是在为这些应用场景开发一款AI芯片。与过去的计算相比,是什么使得拥有专用AI芯片成为可能?AI芯片的重要性体现在哪里?
Simon:如果你打算开发一种新型处理器,真的需要有一个20年的长远视角。因为你不仅需要开发处理器,还需要开发编程工具,在此基础上人们才能开发应用。如果这个研发方向不能持续发展20年,那就不值得这么做。但是,如果你问起20年后处理器领域会发展到什么程度,坦率地说,没人知道。
几年前,我们还不知道神经网络会像今天这样无处不在;在五年的时间里,我们可能又发现了一些神经网络领域之外的新事物。因此,处理器的设计人员不能仅仅满足于瞄准现有的需求, 有些芯片领域的初创公司在努力做到这一点。
还有一些项目,比如谷歌的TPU(Tensor Processing Unit)是一款在专用功能的硬件基础上经过轻量级封装而成的专用处理器,也仅仅是在瞄准已知的需求。
我肯定谷歌就会这么做,因为这是他们现在的业务需要,如果明天需要做其他的,那他们明天就会去启动做不同的东西,但不会尝试像我们这样瞄准长期需求去设计芯片。从我们的角度来看,不能仅仅满足于现有的流行需求。
那么我们需要瞄准什么呢?在根本原理上需要关注什么呢?首先,我们现在的一切技术都依赖大量的计算,而提供大量算力的唯一方法是使用大量并行计算,我们不能期冀单个芯片一直在变得越来越快。
其次,低精度算术运算也非常根本。我认为,从数据中学习本质上是个概率性任务,而概率构造并不是非常精确,那相当于用很多非常不精确的数字,让你做精确的事情。
最后,数据内在的结构也很有意思。一些有用的数据可以很方便地被表示成向量或二维矩阵。而向量是以序列形式出现的,就像句子中的词条序列。矩阵则以像素阵列的形式出现。这就是自然数据的形式,非常方便。这也是我们的公司之所以叫Graphcore的原因。
然而,神经网络是怎么回事呢?从看起来像某种样子的数据开始,逐渐把这种样子的数据形式转换成一些中间表征(坦率地说我们也不知道具体是什么),最终一步一步地通过许多这样的转换,产生一些可能是简单的2D或者3D的数据结构,也可能不是这样。
它应该有个更宏观的视角,不仅仅是所包含的那些信息,而是要比二维矩阵中的一组点(points)更宏观。
事实上,这一点不仅适用于中间表征,甚至适用于其他一些类型的输入和输出形式,比如亚马逊等公司构建的推荐系统图谱,或是Facebook那种一个由多个图组成的巨大的关系结构图。
自然界到处都是图。而图几乎像是数据中结构之母。所以我们的另一个原则是,必须能处理图这种广义的数据结构。不管你在做什么人工智能应用,怎么去做,你可能不是在神经网络层面去处理,而是在图上。
从处理器的角度而言,图有什么特征?它们的维度非常高,对处理器的存储结构有巨大的影响。如果数据是低维的,比如一维的话,序列中有两个邻近数据,那么你就可以把这两个邻近数据放在你建立的内存中相邻的地址,然后去定位它们。但现在,你无法在上千个维度上做到这一点。所以,当你把一个高维数据结构嵌入到现在可以实现的低维存储器中时,数据会分散。如果你想在图中处理邻域,必须先把需要的东西收集在一起。这是一个典型的稀疏问题。
因此,我们也是基于这一点来押注未来。我们认定,最终的数据结构都需要是非常复杂的图。
此前,我们并没有预料到神经网络领域会变得如此普遍,现在神经网络领域似乎又到了它的“AlexNet时刻”。目前为止,我认为有两次“AlexNet时刻”。一次是AlexNet神经网络本身的流行,另一次是Transformer网络的突破,但有趣的不仅是Transformer本身,更重要的是,它可以采用无监督学习的模式。
Pieter: 我们怎么样可以用这些神经网络开发其他一些有意思的项目,你能不能预测一下未来类似的需求?
Simon:我会谈谈对不同类型神经网络的看法,我的看法也不是特别新颖。信号处理有一套基本的关键功能部件,你可以用不同方式使用这些功能部件做一些有用的事情。这些关键功能部件包括有限脉冲响应滤波器、无限脉冲响应滤波器、采样器、傅里叶变换等等。通过组合这些基本模块,可以在电话或各类通信基础设施中构建信号处理架构。
神经网络的原理也差不多是这样。神经网络是分层的,因为我们发现最好的学习方式是渐进式的。换言之,通过影响相对较小的多层变换,我们发现有不同类型的层是有用的。有些层如局部卷积,对图像之类很有用。有的层基本上能够从其所在环境中的任何地方提取信息,这是注意力层。有些层完全忽略了所在环境的维度,只是做一些其它事情,比如把数据投射到一个更大的维度特征空间,然后再收缩回去,这样做好像有助于实现事物的解耦。
我认为,这些层就像我们构建DSP系统的组件,只是在学习哪些部分是有用的。一旦我们有了一整套完备部件,就可以用各种方式把它们固定在一起。
目前,我对从传统的CNN和Transformer之类的注意力模型之间的迁移非常着迷。很高兴看到它们在图像处理上的应用效果很不错,它们在前面用了几层CNN,然后在后面用了几层Transformer,这种思路应该是正确的。
Pieter:Graphcore引起了很大反响,可以说,它的技术深入到了构成AI计算核心的基本单元。你之前提到你们想创造一个在20年内都有效的项目,今天的人们所做的项目与五年前肯定有密切的关系。但与此同时,世界发展速度非常快,你们如何保证现在设计的芯片在20年后还不过时?你的信心来源是什么?
Simon:老实说,一些非常有趣的领域发展得非常快。因为如果这些领域前景很好,会吸引大批聪明人加入。当我们创立Element 14公司搭建那些 DSL (当时叫作铜缆宽带)时,这个领域发展得非常快。互联网的诞生助推了21世纪的科技泡沫,从根本上说这是很有价值的事情。
另外我想说的是,我们要着眼于最根本性问题,而不是着眼于眼下正在流行的事物。AI 的基本点就是低精度算法和大规模并行。另一个基本点与芯片有关,也就是摩尔定律。
看一下Graphcore的IPU芯片Colossus Mark 2,并将其与我们在1990年成立的Element 14研发的芯片比较,比后者安装的晶体管数量大约多了10000倍,运行速度大约快了100倍。这很了不起。
遗憾的是,芯片性能的提升速度差不多要到头了。众所周知,芯片最终会面临能耗问题。如果你想不断提升性能,就必须考虑能耗问题。
这个问题是如何在我们的芯片结构中得到体现?那就是确保存储和计算彼此非常接近。在传统芯片中,大多数的电能都用在数据搬运上,而不是花在算术计算或是记忆上。因此,IPU架构背后的另一种基本原则是所谓的分布式计算,不这么做的话,你芯片一定需要海量的逻辑单元,无论是做运算的逻辑门还是内存都需要很多晶体管。
Pieter:当提到AI芯片公司时,大多数人首先想到的是英伟达,它研发的GPU非常受欢迎,在AI领域提供了大量算力。很明显,Graphcore必须与他们竞争,或者开辟出他们没有涉及的领域。况且他们是一家大公司,而你们是一家创业公司,你们的竞争优势如何体现?
Simon:我并不期望英伟达消失或被任何新来者打败。计算机从数据中学习的思想广为人知,而AI几乎存在于人类未来技术的任何领域,所有这些需求都能由一个架构来支持吗?我认为这是不可能的,可能会出现各类具有不同优缺点的架构。但不可否认,他们是人工智能领域的主导力量,我不指望这一点会改变。
如果你在创业,第一条准则就是不要试图生产大公司现有产品的强化版。因为现有公司有如此大的市场力量,仅仅有更好的产品来做同样的事情是不够的。在某种程度上,我们的第二家创业公司Icera(2011年被英伟达收购)在同高通公司的产品竞争中就是这样,我们在工程上超越了高通,但市场竞争上仍非常惨烈。
当然,你在某些方面的表现不会那么好,这是不可避免的,但你仍然在其他方面表现得会更好。所以我们现在不是要研发一个更好的GPU,我们把它称为IPU,那是不同的产品,有不同形状,应用场景不同,但还是会赋能一些AI应用。
在AI计算时代,我对有其他可行的方法来提供价值完全持开放态度,我非常确信业内有另外一些非常有前途的创业公司。但是,我对很多公司决定尝试克隆GPU芯片感到惊讶和失望,这对我来说毫无意义。
Pieter:IPU和GPU各有其更适合的应用,在某些工作负载的应用效果上,能再介绍一些IPU的优势吗?
Simon:我想现在已经很清楚了,GPU芯片上有很多线程,就可以做更多的工作。如果有一个任意结构的数据,这些线程可以转到该结构的各个部分,并独立于同质的数据结构,有效地做有用的工作。
我们已经证明,在一些体现稀疏性的地方,无论是有条件执行,还是条件访存,或者只是穿孔的数据结构,IPU对这些任务做得特别好。我认为我们现在已经证明了相对于GPU的能效优势。
我们的芯片存储逻辑和计算逻辑大约各占一半。它们紧密地混合在一起,所以数据通常不需要移动很远就能进行处理,这与传统处理器有很大不同,即使是像GPU这样的高度并行处理器。
在自然语言处理中的Transformer这类模型上,在标准基准上看一下每瓦特的性能。如果你的机箱采取10千瓦或类似的预算,给定这种能效限制,我们可以从IPU中获得比GPU更多的性能,而且这是基于每秒运算峰值次数差不多的芯片。
Pieter:你能不能介绍一些具体的案例,它们在底层可能依赖于更稀疏的计算,因此非常适合用IPU。
Simon:稀疏数据结构的最好的应用案例是分子。分子很少排列成简单的线或方块,它们之间几乎就是图(graph)的关系。
还有一种情况是,有用的分子往往不是非常大。它们可以有非常复杂的行为,但仍然相当小。一个由几千个原子组成的分子仍然是具有惊人复杂性。如果你在研究某种结构的分子,预测或获取其属性,并试图找出可以表达这些属性的结构。这也是一个很好的例子。
它有两个奇妙的特性,使其更适合于IPU。首先是一个足够小的数据结构,可以全部放在芯片的内存中,我们的芯片访问这段特殊内存的带宽可达每秒数千兆字节。其次,由于IPU有大规模并行结构,可以比其他架构更快地操作不规则的数据结构。
还有很多其他应用,比如发现新的化学材料、治疗冠状病毒等疾病,甚至只是了解那些分子的行为对社会也有巨大的潜在好处。
此外,我们的芯片在金融领域已经有相当大的吸引力。很多金融模型被证明是抽象结构,对未来可能发生的事情进行概率性预演,这需要大量产生随机数的能力。而我们的机器的1500个处理器分别都有一个强大随机数生成器。
即使在那些不是图结构或者像自然语言处理领域那样稀疏的领域,IPU也有明显的优势。比如对词块序列的处理就能胜过GPU,而这是从头进行设计的优势。对了,创业公司的优势之一就是能把自己卖给英伟达这样的巨头。
当然,我们对英伟达抱有极大的敬意,他们在将GPU应用于AI领域并在服务社区方面做得非常好,但GPU确实有个缺点,它仍然是源于图形处理的。
如果他们能从头开始做起,我相信,他们也可以构建像我们这样的新产品,但在大公司你永远没有这样的机会,因为你总会受制于已有业务发展的惯性。
Graphcore研发的技术确实假定了一定的计算规模,但它并不假定你会有一个装满芯片的机箱。这样做的原因是,我们从芯片上放置的足够的内存中获得了巨大能力。如果芯片太小,或者功率预算太小,就没有意义了。
所以你不会在移动手机中看到Graphcore的芯片,这个市场是为其他公司准备的,我不会说我们的产品已经达到了在移动手机领域应用的水平。IPU的应用范围是从云基础设施、企业基础设施到重负载边缘设备,以及功率预算为几十瓦的智能相机等领域。
Pieter:我相信你对Cerebras芯片公司的产品很熟悉,他们要构建一个尽可能大的芯片,似乎与你们正在做的事情有点互补。但与更标准的方法相比,我认为他们制造完整晶圆的芯片并不寻常。
Simon:其实早在1990年代,有人曾尝试使用当时被称为晶圆级集成(WSI)的全硅晶片来制造内存,当然在制造处理器方面也有一些进展。
Cerebras公司做了什么?我们都用常规方式制作芯片,把这些芯片从晶圆上切下来,并做好包装,然后把这些芯片重新安装到一块电路板上,而他们是直接把这些芯片留在晶圆上。这样做的缺点是,制造工艺并不完美,其中有些芯片可能会出毛病,所以你必须有足够的备件,并解决那些不起作用的芯片。
还有一个缺点是,你打包了所有的处理器,而且要把大量的处理器放在尽可能小的空间,这意味着你会遇到最大功率输出和散热问题。
解决供电和散热问题是非常重要的,Cerebras的优势是可以使用硅加工技术制成的电路将这些芯片连接在一起,这比在电路板上安装要好得多。现在我认为这种优势还不够,某种程度上也有劣势,因为你只能接触到边缘区域,无法接触到阵列中间的电路,这意味着,如果你想把更多内存附加在系统内,只能把它连接在边缘附近。但不管怎样,这是一个非常有趣的尝试。
我不愿把它称之为芯片,它大约有5.5平方厘米,如果观察它的构建方式,晶片上的很多东西还是用了传统的办法,譬如他们在顶部放了一些线路把芯片连接起来,当然它绝对还是一整块晶片,作为一名处理器设计师,我认为该组件的缺点或许超过了优点,但他们能坚持下去真的让我印象很深刻,希望他们一切顺利。
3
如何成功研发一款芯片
Pieter:下面聊聊Graphcore吧。从你开始设计第一款Graphcore芯片再到流片的过程中都发生了什么?
Simon:Colossus Mark 2是有史以来制造的最复杂的芯片。如果这是我们第一次尝试去做这样的产品,我很确定我们会失败。
现在我们之所以能够做成,是因为团队的核心成员在一起工作了很长一段时间,要比Graphcore成立的时间长得多,这甚至可以追溯到在这之前的两家初创公司,在30年前,就有五六个人成为我们这个处理器团队的成员,并且我们一直在构建芯片。
我们曾用已知的每一种工艺试产过相应定制化设计的处理器,经历了从150纳米到130、90、65、40、28、16、8、7纳米等多个连续的工艺节点,而且每一款都是开箱即用的。
芯片技术很复杂,你没法在大学里学到,我们很高兴曾在一家大型半导体公司学习相应知识并构建芯片。制造芯片就像制造飞机,非常复杂,需要非常多样化的技能。
如果给一群非常聪明的博士生10亿美元的资金去制造一架客机,如果他们想成功的话,可能还需要一些以前做过类似工作的人。这个世界没有那么多团队具备构建芯片的能力,而我们恰巧就是其中一支团队。
现在有很多人在试图构建芯片,但这让我感到有点沮丧,因为很多风险投资并不会获得回报,这可不是什么好事。
很多云计算公司已经决定学习Google来自己设计和制造芯片,这意味着他们可能不会购买我们的产品。但遗憾的是,很多公司无法成功整合一支可以交付这类设备的团队,当这种情况发生时,他们将会找像我们这样的专业芯片公司来填补这一鸿沟。
Pieter:芯片工作和我们现在所知道的许多其他人工智能的工作有点不同。比如Jeff Hinton、Alex Krizhevsky和Ilya Sutskever他们三个人在2012年的研究就带来了巨大突破,这个成果建立在前人和他们自己以前的研究基础上,但在芯片设计中,三个人却不能让芯片运作起来。
Simon:这很有趣,实际上构建芯片并不需要很多人。我反对那些曾经说芯片设计变得越来越困难的人,芯片团队正在成倍的变大。像我们这样构建最先进的微处理器的团队,大约用30名芯片设计师的团队生产了第一台设备,同样数量的软件工程师团队编写工具链来对设备编程。30年前,我们就可以在同样人数的情况下构建一个最先进的复杂系统,所以只是增加了一些人手。
从最初的构建理念到开发第一代芯片,我们花了大约三年半的时间,现在我们又花了一年半的时间实现今天的产品。这就是初创公司的研发历程。
简单地说,如果你想制造一款有竞争力的新芯片,花费1亿美元做第一代产品,你可能要花5亿美元来构建你的业务,所以这个领域并不适合胆小的人来投资,明智的做法是找到能胜任的人员。
Pieter:随着新冠疫情的大流行,你们在这期间的合作模式一定发生了变化,为了确保团队能保持紧密合作,你们做了哪些事情?
Simon:新冠疫情显然意味着远程交流的时间要更长。我们发现,在线上交流真的非常高效。在这个过程中确实会减少一些自主能动性。但我们这个规模的团队足够紧密,去年的生产力可能没有下降。我们非常期待回到办公室,但我认为,工作模式将永远改变,一部分人会在办公室工作,另一部分人会远程工作。
真正的困难是去整合新人。我们一直期望那种与人相处时会产生一种特殊的化学反应,在建立团队关系的早期阶段,你需要更多这种化学反应。当然,很幸运我们能够继续成长,也募集了更多风投资金。
4
人脑的启发以及稀疏的必要性
Pieter:目前设计的芯片和人脑之间仍有很大差距——我并不是在说软件,尽管人类的大脑运行着更有趣的“软件”等等——就硬件来说,人脑平均消耗的能源大概是20瓦,与当前的芯片相比,功耗非常低。你怎么看这两者之间的对比?
Simon:有一个学派认为,我们应该建造与生物神经系统结构非常相似的硅处理器,我并不怎么认同这个观点。
我认为在电子学的物理特性中存在巨大的差异,而基底(substrate)上的差异可能要求采用不同的方法来生成计算结构。显然,尝试研究大脑来是如何计算的很有趣,我毫不怀疑通过这类研究我们学到了很多东西,并把它应用到未来的计算机上。但我最终还是不明白为什么硅计算机将具有和湿件计算机(wetware computer)相同的形态学。所以我不是神经形态学的倡导者。
就像现在所说的效率,在任何不可逆地执行程序的计算结构中,都存在计算效率的限制。这是一个稍微有点学术性的问题。
但如何高效计算是有一个基本的基于噪声的极限,事实上,在我们达到这个基本理论极限之前还有一种实用性(practical)极限。
现在大脑比电子芯片的计算效率高出两个数量级。但我们还没有完全理解大脑中的轴突,它们会传递电子这是比较容易理解的,那是一个基于电荷的信号系统,就像硅中的半导体一样,然而我们对神经元细胞本身的计算功能却知之甚少。
这似乎涉及到分子间的相互作用,比我们习惯使用的基于电荷的电子更高效。所以一些不同的东西可能会出现,日益强大的硅电子学使我们更接近大脑的能力,但出于根本性原因,硅永远不会达到大脑的功率效率。
还有另一个很大的问题,那就是大脑可能有100 TB的状态(state),大约有200万亿个突触。我不是生物学家,但我看到一些有趣的研究表明,一个突触中可以存储4或5位的信息。
现在我们可以构建一台有 100 TB状态的计算机———事实上,可以在一个火柴盒大小的空间中内置100 TB数据———但不幸的是,如果这台机器要像在大脑中那样快速获取状态,就会消耗大量的电能,不能像人脑那样消耗20瓦去做任何有用的事情。
对人类来说,关于大脑如何做到如此节能,就其能源管理而言,目前还是一个谜。人类大脑里有各种不同类型的轴突,进化的大脑在增加其容量方面做得很好,并且控制着能源消耗。我们对神经元细胞内部的运作原理了解得越多,就越意识到它相当复杂。
Pieter:你刚才提到有100 TB的信息存储在我们的大脑中,而我的Macbook Pro只有2TB。但现在在电脑上存储100 TB的数据并不难,这会让人想到将大脑的数据上传到电脑中,但还不清楚如何才能做到这一点。
Simon:绝对是这样。事实上,三星已经成功了,他们是内存领域的佼佼者,在不足一平方厘米的硅芯片成功地内置了1 TB内存,非常惊人。现在容量问题又是总计算量需求的问题之一。
举例来说,GPT3现在有1750亿个参数。今天训练它大概需要300 zettaFLOPS的算力。如果你想建立一个大型的计算基础设施来训练它,就要付出巨大成本(译者注:一次训练成本超过1200万美元)。
现在,如果我将这个模型的参数量扩展到大脑大小会发生什么?模型会增大一千倍,训练模型所需的能耗也会增加一千倍。但增加模型容量的目的是让它处理更多数据,因此训练的数据集也变得更大。如果你应用那些扩展定律(Scaling Laws),你最终需要庞大的算力,运行一次可能需要花费50亿美元。
那么很明显,我们必须确保能对每个数据进行推理,但它不必与系统中的每个参数交互,换句话说,就是稀疏性必不可少,否则神经网络范式将永远无法达到那样的规模。
如果神经网络是我们希望的通用计算结构,那不管它们的结构如何,大规模稀疏是必要的。我个人认为,有多种形式的稀疏最有前景,可能代表下一个神奇的“GPT突破性事件”。
那这是不是门控计算(Gated Computation)?诸如Switch Transformer中的稀疏门控专家混合层(Sparsely-Gated Mixture-of-Experts)之类的东西,一个接一个token通过神经网络的各个层。它们从非常多的数值中选择一组权重状态,这种形式已经被证明是非常有效的,但某种形式的稀疏是绝对不可避免的。
如果神经网络能够达到人类大脑的潜能,只有在拥有超人类能力的AI时,人工智能的一些应用才有用。假设你和一个人工智能医生互动,如果你不认为它比人类医生聪明,你就不会关注它。我们对人工智能的最低标准是它们比人聪明。
5
AI行业的未来发展
Pieter:你对人工智能的未来发展的更长远看法是什么?人工智能计算在其中会发挥什么作用?
Simon:很难想象计算的任何发展方向。我认为,仅仅通过让计算机参与到解决问题的过程中来,这还算不上创造了新的价值。
如果你认为程序只是解决问题的方法的一种表现,那么,目前为止所有的计算机都没有从根本上解决问题,尽管我们倾向于认为它们是解决问题的。
我们必须人工想办法解决这个问题,并把这个方法编写成一个程序,显然计算机运行速度比人类要快得多,并且计算机可以在大量数据上做到这一点。但严格来说,计算没有参与解决问题的过程(译者注:因为解决问题的方法还是人想出来的)。因此,当计算机有了能自己想出算法的能力,我们才可以说计算机能解决问题了。
还有一些事情是可行的,例如从英语翻译成俄语。我们可以合理地想象机器可以做得更好,无论是从经济角度还是其他角度来看。
AI、信息技术的突破被视为下一次工业时代,这将从根本上改变人们的生活方式,我希望主要是变得更好。回到250年前,如果你想完成任何工作,唯一的方法是靠人工,然后蒸汽机出现了,它的发明者无法想象现在每个人都开着汽车到处转悠,或者坐上飞机去其他地方的海滩上度假。
因此,你必须非常有想象力才能看到人工智能同样也有如此潜力。如果我们创建的东西要比人类聪明得多,接下来会发生什么,一切都是未知的。
(本文在已获得编译授权,因翻译引入的缪误由译者承担责任。原视频链接:https://www.youtube.com/watch?v=Bf2Ztmnrbzs)
其他人都在看
欢迎下载体验OneFlow新一代开源深度学习框架:
https://github.com/Oneflow-Inc/oneflow/https://github.com/Oneflow-Inc/oneflow/