\

超级智能计算:Simon Knowles在WAICF演讲实录

作者:

分享  

Share on weixin
Share on weibo
Share on linkedin

订阅

你该如何开发一台可提供与人脑相当的人工智能处理能力的计算机呢?

随着人工智能的快速发展,使用比生物模型更多参数的模型的前景已非常接近。

可用计算,是决定我们能否达到这一重要里程碑的关键因素之一。

在法国戛纳世界人工智能节的主题演讲中,Graphcore联合创始人兼CTO Simon Knowles探讨了通往“超级智能”的道路,以及Graphcore硬件和软件系统将如何推动Exascale人工智能计算的出现。

更多有关Good Computer的信息,请点击阅读《Graphcore宣布通往超级智能AI计算机的路线图》

演讲内容:

今天我演讲的内容是——当我们试图将计算机扩展到人类或超人类的规模时会发生什么。这些内容由Graphcore内部人工智能机器开发团队提供,我将尽量深入浅出得介绍它。

 “超级智能”是厄尔文•约翰•古德(Irvine John Good)在1960年提出的概念。古德原名伊萨多•雅各布•古达克(Isadore Jacob Gudak),生于波兰。他是“提出超过人类潜力的机器”这一想法的开创者之一。他坚持认为,人类的存亡取决于这种机器的建造。在建造这种机器的早期,我们正面临毁灭的危险,除非我们通过更智慧的事物获得一些好的建议。古德建议我们制造“超级智能机器”,并将“超级智能”定义为在相当广泛的任务范围内能够远远超过任何人类智力的机器。

实际上,今天是一个很好(good)的星期五。五分钟前我刚刚想到,没有比今天更适合的日子来阐述杰克-古德关于这个主题的观点了。

正式开始之前,我想提醒一下,开发大型计算机有两个原因。一个是能力的原因,另一个是生产力的原因。人工智能中的能力型机器是努力实现超越人类能力的机器,换言之,做我们做不到的事情。我们不太清楚这对日后会有什么影响,但显然这是我们现在正在努力做的事情。

生产力型机器更注重经济性,换句话说就是发现你可以让机器用人工智能技术做一些有用的事情。这件事你可以做吗?即便人类可以从事某项工作,但生产力型机器比起人类不会疲倦也更便宜。所以我会把重点放在能力型机器方面,换言之,从我们今天的科技水平来分析什么样的真正庞大且强大的机器是可以掌握的,以及是什么限制了强大的人工智能机器。

AI的能力由两个要素决定——一个是机器的设计,另一个是训练工作。请记住,我们所打造的是可以学习的机器,所以仅仅有一个空白的、强大的机器是不行的。我们需要的是一个受过训练的机器。训练的形式显然是数据训练。数据的质量有好有坏,数量有多有少,显然你希望拿到质量好、大量的训练数据。这也是模型规模的一个功能,如果你喜欢一个大的模型,它有很多可学习的状态,比一个小的模型更有潜力做有用的事情。我认为我们在迄今为止的人工智能发展过程中已经认识到了这一点。

然后是设计参数。还有就是选择用来在机器中保存数据的表示方法的有效性——你如何在机器中保存关于语言、图像、图形关系等的信息。

最后是对你所学的数据进行推理的过程的有效性,以及你是否愿意,在训练过程和推理过程中首先学习这些数据首先去学习这些数据。

这些都是变量。那么,既然有意思的领域是超人类智能或超级智能,那么人类的信息规模是什么?人类的大脑与我们今天使用的人工智能的结构完全不同。尽管如此,我们也许可以猜想,如果我们想建造一个比人类更强大的机器,那么它可能至少需要持有(与人类大脑)同样多的字节或比特的状态。

人类的大脑中有数以万亿计的突触连接。因此,你所知道的,所经历的,以及你所感受到的涉及你的大脑的一切,都储存在这一数量的突触中,这些都是你通过生活学到的。可能你拥有的比你真正需要或使用的更多。我们知道,人类可以从大脑损伤中恢复,说明大脑有一个很好的冗余度。至于这些突触连接如何准确地被编程,有关的研究工作也非常吸引人。特别是在海马体中,它们的位分辨率在4到5比特之间。100万亿或200万亿个参数中的每一个都是大约半个字节,所以你可以把自己想象成一个容器——在你长成一个成年人类时,可以容纳大约100兆字节的学习信息。显然,儿童的信息量会较少,而且当我们衰老时,我们的信息量也会下降。

人工神经网络有一个非常强大的属性,与真正的人类大脑完全不同,那就是人工神经网络中的权重状态可以在每个通过的数据上多次使用。这就是卷积特性,它是现在使用的所有神经网络的特征,而大脑无法做到这一点。如果你有一个突触连接,你不能与另一个突触连接分享它学到的信息。因此,人脑可能确实需要比人工神经网络更多的权重来实现同样的工作。

考虑到所有这些,也考虑到我们或许并不需要人工智能来学习很多我们作为人类社会成员需要学习的东西,换句话说,它们可以更专业。如果我们有一个人脑大小的人工智能,我们可以训练它只做一件事情,做到非常好的程度,然后它就不需要做其他事情了。所以,考虑到所有这些,最初的猜想是,也许在一个机器中我们需要大约100万亿个学习参数,才能明确具备实现超级智能的潜力。

显然,机器本身并不能实现超级智能。但我们需要拥有这种规模的机器以实现这种潜力。所以我们需要考虑建造一个达到这种规模的机器。

人工智能的现况如何?人工智能一直在发展中,至少当前的神经网络99%是一直处于发展中,且已经发展十年之久了。我们有一个主学习算法,这很重要。我们有一个主模型结构的元素,就像一个合成的大脑皮层。人脑在工作时是相当同质的,它在处理音频信号、视频信号和触感信号时使用一个基本相同的结构。

如果我们能在人工意义上学习类似的结构,从而得到一个主模型结构。尽管如今部分这方面的元素已经出现了,但我认为它还不完整。

最后,我将更多地谈论这个问题。最近,我们得到了一个从人工神经网络的规模的解耦,从操作它所需的计算量产生的参数数量而言,这一步很重要。以上这就是当今人工智能的三大特点。

主学习算法是随机梯度下降的,通过反向传播的一阶随机梯度下降。任何编码这些东西的人都会知道这一点。今天所有的神经网络都是以主算法训练为基础的,仅这一点就对硬件和计算机的构造有一些有趣的影响。

首先,我们发现神经网络可以用几个字节的权重进行合理并有效的训练,但我们还需要优化器的状态来帮助它们学习。因此,最终的机器生产力需要每个权重约10字节。对于100万亿个参数的大脑,你需要大约一个PB(千兆字节)——这是一个很大的存储量,但绝不是遥不可及的。

有趣的是,我们还知道,存储必须位于半导体存储器中,它必须是静态随机存取存储器或动态RAM。我们是怎么知道的呢?如果你试图重写一百万次,固态磁盘碟片就会磨损,而重写一百万次正是我们在神经网络上运行训练所需要的。因此,专门建造一台机器是没有用的,因为它只需运行一次程序就会耗尽。我们也知道,磁带和磁盘速度太慢。所以可以肯定的是,这一个PB必须是在SRAM(静态随机存取存储器)或DRAM(动态随机存储器)中。而SRAM太昂贵了,所以它只能是在DRAM中。因此,这是一个相当重大的观点,这就是SGD(随机梯度下降)作为主算法的结果。

我们还知道,如果你必须做一百万或十万次迭代,并且在每次迭代中必须读取整个模型并优化状态,用它进行计算,然后再把它写回去(这就是SGD的工作方式)。如果做这些需要一秒钟,那么一百万次迭代将花费你12天的时间。就算你有足够的耐心等12天来训练你的神经网络,估计你也没有足够的耐心等待100天。不管你有多大的耐心,很明显,除非你能做这个操作,读取所有的存储,然后把所有的存储写回去,除非你能在几秒钟内完成这个操作,否则你的耐心就会耗尽。

我们还知道,这个存储是PB级的,它的可读性和可写性必须达到每秒PB级的速度。另一个有趣的事情是,这个主算法中的数据流是完全可预测的。我们确切地知道东西(stuff)何时移动。它本质上是一个顺序过程。除了运算符内部,没有固有的并行性,这意味着传统可编程机器的所有自动缓存层级现在都没有用。你最好放弃固定的存储器,SRAM或DRAM,然后在软件中移动内容(stuff),这对硬件来说也是一个很大的转变。

这里有一个例子说明如何不这样做。我通常不评价友商,所以这里不提他们的名字。但我确实需要把这种操作指出来。

有一家公司声称能够实现大脑规模神经网络训练。它认为,正确的方法是把所有的状态放在一个盒子里,所有的计算放在另一些不同的盒子里,两个盒子通过网络设备传输数据,并且承载所有状态的盒子拥有较低的带宽。这样,盒子里的所有状态的读取和写入过程大约耗时四个半小时。

记住,每运行一次训练程序,就意味着而可能需要重复一百万次以上流程。因此,这意味着无论那个盒子里的模型是什么结构,无论你在图的右边应用多少计算,运行一次训练程序需要500年的时间。这太疯狂了。你可以在这段时间运行一个更小的模型,但事实上,在你的大存储箱中,只有大约0.01%的内存可以用来部署SGD学习。所以这不可取。你应该怎么做?很明显,你应该将内存分布在所有的计算引擎上,以实现带宽的最大化。

所以最糟糕的事情就是集中存储,绝不能这么做。你需要让存储分散。我说过,有一些主模型的特征正在出现,一种合成的皮质。它们是什么?首先,所有的神经网络都将它们的数据还原为向量集。无论它们的数据是人类的句子或语音,还是图片或视频或图表,都不重要。我们发现,它们都可以被有效地还原为向量集,而向量代表着数据的表示。

我们还发现,多层的增量处理是有用的。这就是深度神经网络中 “深度 “一词的由来。它们现在都很“深”。这很有用。每一层一般由线性过程组成,通常是一个加权,然后是一些点状的非线性紧随其后。我们还发现,对我们而言,这些层如果递增地增加少量的表示向量,它们可以很容易地学习模型,这就是所谓的残差。因此,当前几乎所有的神经网络都是残差网络,在早期甚至于几年前颇为不同。现在它们都是残差。

我们还发现,交替进行表示向量与表示向量本身的过程之间的交互相当有效。在向量和向量内部的处理之间进行交替,已经是一个相当普遍的特征了。

最后一点更有争议性。你的大脑皮层并不完全是各向同性的,这意味着你的每一层大脑皮层似乎都有类似的结构——这已经开始在神经网络中应用了。虽然不是普遍情况,但许多神经网络实际上现在基本上有很多重复的相同类型的层结构。

英伟达,当今人工智能计算市场的巨头,最近声称,他们在过去十年里将人工智能计算的性能提高了100万倍。我记得是一百万,得查一下这个数字。真正的数字是300(倍),我认为这实际上是超级惊人的。我认为其他的3000个来自于使用3000个GPU。但是你知道,在人工智能很久之前就有多芯片计算机了,所以我不考虑这个。

尽管如此,从英伟达的Maxwell到Hopper的十年间,GPU的峰值算术性能大约增加了300倍,Hopper还没有完全到来,但明年肯定会与我们见面。这令人印象深刻,所以我想我应该仔细分析,看看其中是否有很多是可重复的。

大约四倍来自于从32位数到8位数的缩减。我们知道人工智能计算不必非常精确,你得到的实际上是四的平方作为效率系数,因为大部分操作是矩阵操作。如果你想,你会得到减小尺寸效果的平方。这是一个16的系数。这是改变算术的大小或改变算术得出的数字的大小的最大单一因素。

第二个最大的因素是硅处理技术的进步,从28纳米到5纳米,仅在晶体管密度方面就提高了8倍,约1.7倍的时钟速度,但在功率方面有一定代价。做同样的工作,功率增加了2.8倍以上。

最后,有多少是归结于改变架构。显然,GPU一开始是作为图形处理器,现在它们越来越多地成为人工智能处理器,所以他们试图重新调整架构以达到这一目的。10年内的1.4倍似乎正来自于此。

这有多大的可重复性?我认为算术精度的降低可能已经被挖掘出来了。也许我们可以降到4位。这将是一种用四位的对数表示。这是有可能的,但八位已经很难操作了。四位是有可能的,但就是太难了,会影响晶体管密度的增加。

我们也许需要5年或更长时间才能实现性能的2倍增长。在快速增加晶体管密度方面,摩尔定律基本上已经结束,我们当然可以继续着手于时钟频率,制造比今天快一倍的芯片是完全可行的,甚至也许可以更快,但在能耗方面将是超线性的。因此,如果你想要双倍的时钟速度,你可能需要付出三倍的能耗,这将为未来发展埋下隐患。

最后,我认为当务之急是调整架构以适应人工智能方面1.4倍,这显然这也是Graphcore的使命——以为人工智能提供更好的架构为主要目标,这也是该领域的其他几家公司同样在在尝试的事情。显然,英伟达并不具备从清晰的基础开始的优势,但我认为肯定有空间。我们从这张幻灯片中得到的启示是,目前我们在硅芯片上所能做的大规模提升已经基本完成了,只有在架构上更加激进,AI的表现才会变得更好。我认为这是下一步我们需要投入的方向。

这不是一张传统的晶体管密度随时间变化的图表,实际上它展现了固定硅面积的每瓦特性能。你们都知道,能做出多大的芯片是有实际限制的。所有玩家基本上都制造最大尺寸的芯片。使用这样的芯片每秒能做多少工作,或者使用这样的芯片每瓦能做多少工作?这是全尺寸芯片归一化后每瓦特的性能。你可以看到摩尔定律开始时的全盛时期,芯片性能大约每两年翻一番,然后在2005年90纳米时,所谓的Dennard缩放,即传统的电压缩放戛然而止,半导体性能提升的速度急剧下降到每年约18%,这就是我们在过去几年中所面对的现实情况。

如今面临的情况是半导体的性能提升速度再次下降。这其实受到了多种原因的影响,但肯定与晶体管的几何形状、电线和互连的限制有关。实际上,在每瓦特性能或每操作能量方面,我们并不预期每年有超过5%的提升。

因此,在25年内将功能密度提高2000倍,这很棒。我们可能会看到功能密度的进一步提高,也许是2倍或者更多,但不会看到硅在能源效率方面有任何显著的提高,我们可能会看到更好的架构。我认为,它将会达到一个峰值,即每浮点运算1pJ或每exaflop一兆瓦 ,这更像是用于神经网络训练的常用FLOPS数量。

因此遗憾的是,硅的作用并不大,现在甚至不是每浮点运算1pJ,而是大约每浮点运算3pJ。但我认为它还有一丝希望,可能会下降到1,只针对于基础设施而言。换言之,放在大规模系统中的机器,如超大规模仓库、数据中心或超级计算机,大约每浮点运算3pJ。

这意味着,如果有10亿个参数,就可能需要大约200亿个记号来优化训练这种规模的网络。这里有一篇最新的论文,解释了其中的原理,供您参考。所以一小时就需要大约250个芯片运作并产生100千瓦能耗,这暂时还可以接受。但是,如果尝试增加一千倍呢?但是,当下大多数神经网络是密集的,换言之,每个参数与每个数据点之间都在相互作用。如果参数增加一千、数据增加一千、计算量增加一百万,那么一年运行一次程序便需要25000个芯片和一个十兆瓦的发电站,这就是一万亿个参数。所以很明显,100万亿个参数,是人类不可能达到的水平。

那么如何解决这个问题呢?大脑的一些例行习惯就是关键所在。当突发情况出现时,并不是所有的大脑神经元都会被激活。我的意思是,我想如果现在有一只老虎跳出来,大多数的神经元都可能会激活。大多数情况下,大脑在处理任何数据时,都只使用了其中非常小的一部分。换言之,它有能力将数据引导至有用的部分,也就是大脑中需要适应数据的部分。

最近,我们发现了如何在人工神经网络中做到这一点。要依据参数能力,换言之,人工神经网络中的权重数量在不增加计算量的情况下增长。它也允许当前的网络,真正的大型语言网络如GPT3,保持不变的规模,实际上降低了计算量,使之更好用,更人性化。

这也可能是一种直觉。以一个语言模型为例,你希望一个语言模型能做些什么?不仅是学习一种语言和一种语法,可能是学习多种语言,还能理解法语、英语、德语或其他语言的观点以及它们之间的关系,或者还能够理解与政治、科学相关的语言。然而,一个特定的句子只能用一种语言,它只涉及一个主题。因此,很明显,当单个网络处理一个特定的数据时,如果它有合理的多功能性,便只需要访问其学习信息的一小部分,而这正是我们所利用的。因此,从直觉方面而言,这正是人工神经网络需要探索的。

我把迄今为止的深度神经网络的研究进展分成了三个不同时期,超过10年。首先是深度神经网络的突破。现在有多层结构,这无疑优于简单结构(如线性回归)在数据建模方面的表现。同时,许多令人惊讶的能力也正在出现,例如,神经网络识别不同人的能力。这是一件非常有趣的事情,所以我们也使它们变得更大、更强。

对其进行限制的原因是,我们必须使用精选的数据来训练它们。你不得不说,这是杰克的照片,这张是乔的照片,都必须由人来做标记。所以数据成本比较高,这就是模型的规模受到数据成本限制的原因。

如今,当现代的基于语言模型的Transformer出现时,这一切都改变了,它将遍及所有形式的数据中,例如视频Transformer。它的改变是因为我们研究出了一个让神经网络从未标记的数据中学习的方法。在语言方面,通过屏蔽单词要求它填补空白。因为数据是基础,原理是可用的,并不需要标记。

外面有大量的数据。你可以通过阅读维基百科,了解很多语言和语言的相关概念,这预示着模型系数规模的巨大扩张,大概是1000倍,从数以亿计的路由器增加到数以千亿计的参数。

但我们停下来了,受到这种密集计算特性的影响,每个数据点权重和每一个浮点运算都进行交互,这是个很大的问题。因此,第三步正在进行,就是利用这些有根的网络,这意味着每个数据点不再需要与每个浮点运算交互。我希望这也能支持另一个1000倍的系数,这就是我们需要缩小的差距。随后就可以得到100万亿的参数,这就是人类规模的模型,比我们现在使用的计算更少。在第三步突破上,我们虽然还没有实现千倍,但已经实现了50倍,这一点上还不错。

这是Graphcore在几个月前宣布Bow系统时提到的一台计算机,也是我们正在开发的一台计算机。我们已经发布了为这台计算机制造芯片和底盘组件的步骤,正在准备开始铺设。这里只是为了让您了解这台机器的规模,换言之,这是一台比人类具有更多参数状态,更多权重的机器。在我们研究出如何在软件中实现超级智能之前,它不会成为超级智能计算机,但它至少是突破探索超级智能的一个基础,即有比人类更聪明的事物出现。

这是一台大规模计算机,配有大约价值1.2亿美元的8000个芯片,10兆瓦,10 exaflop,4 PB,所有的可读和可写都在一秒钟甚至更早的时间之内完成,即每秒10PB。虽然规模巨大,但完全可以安装在一个大房间里。它也不会是有史以来最大的超级计算机,我相信其他人也会尝试开发这类计算机。

现在,我们已经进行到第三步突破。路由网络,在所有超级智能机器中,具有足够大的参数化状态,可为探索超级智能提供平台。总结一下,我们还剩一分钟时间,有三个要点。

首先,硅片内的超级智能需要花费高昂的成本。如果想要100万亿个参数,任何已知的硅技术都不会很便宜,而且在大型机器上计算也需要长期消耗大量的电力。因此,只要是硅材料,无论怎么做都会很昂贵。然而,这是可行的。换句话说,人们还是会开发这些机器,并将在未来几年内逐步实现。

其次,每个浮点运算的能量像是一堵墙。就能源效率而言,现在的硅工艺技术已经走到了尽头。因此,无论做什么,都无法逃脱能耗的限制。如果要进行一定数量的计算,那么就需要支付能源成本。为了最大限度地减少计算,你会更倾向于使用路由,从而在无需太多计算的情况下提供一个较大的可用信息容量。

最后,一阶随机梯度下降仍然是学习的主算法。存储上有带宽限制。换言之,这就要求必须能够在大约一秒钟内读写出所建立的大量存储,这意味着它不仅必须是位于DRAM中,还必须比传统的服务器类DIMS要快一些。

谢谢大家

More Posts

Graphcore开源Argon Streams AV1视频解码器验证工具

没见过雪,神经网络如何模拟降雪?

Paperspace和Graphcore携手为开发者提供免费IPU

深入探讨:Hugging Face Optimum Graphcore上的视觉transformer

Paperspace上的IPU入门

Pienso和Graphcore携手,以更深入、更快速的人工智能洞见为企业赋能

获取最新的GRAPHCORE资讯

在下方注册以获取最新的资讯和更新:




    获取最新的GRAPHCORE资讯

    在下方注册以获取最新的资讯和更新: