文|LiYuan、凌梓郡
编辑|卫诗婕
「而我已经老了」,75岁的Hinton对在场所有年轻的科学家说,他希望大家好好研究「如何拥有超级智能」这件事。在他看来,不那么聪明的物种控制比它自己更聪明的事物,是一场前所未有的挑战。
在智源人工智能大会上,AI教父Hinton做了《通往智能的两条路径》的演讲。他从对计算架构和原理的分析中,得出了自己结论「人造神经网络将比人脑更智能」,这比他原先想象地快很多。
30分钟的演讲中,他从目前软硬件分离的计算架构谈起,在这种规则下,训练大模型耗费大量的算力。为了能用更少的能量训练大模型,他提出了MortalComputing(非不朽计算)的概念——像一个人的智慧依赖他的身体,不可随意复制到另一个身体,软件也更依赖它所存在的硬件。
但随之而来的问题是,当具体的硬件损坏,软件也随之受损,「学到的知识也随之一起死亡」。他提出的解决思路是,把旧硬件上的知识用「蒸馏」的方式转移给新硬件,就像老师教授学生一样。
与「知识蒸馏」相对应的概念则是「权重共享」,分别对应数字计算与生物计算,它们便是Hinton所说的「通向智能的两条路径」。大语言模型和其副本之间的关系是权重共享,每一个副本都直接获得整个模型参数所拥有的知识——比如ChatGPT可以基于背后的模型,同时和成千上万人对话。而跟每个人对话的继续学习过程中,就属于「知识蒸馏」。
尽管「知识蒸馏」比「权重共享」的效率低很多,带宽也低,但是大模型可以有个副本,最终会获得比任何一个人都多倍的知识。
目前模型仅仅从文档——也就是人类加工过的知识中学习,随着技术的发展,它们将能够从视觉信息中学习,接着可能学会操纵机器人。那么它们很容易比人类更聪明,聪明到擅长骗人。而人类不擅长比与自己更聪明的事物相处。如何避免这些「超级聪明」智能带来危险?这是他留给每一位年轻科学家的课题。
以下是经极客公园编译整理的主要演讲内容:
我今天要谈的是使我相信超级智能比我想象的更接近的研究。
我有两个问题想谈,我的精力将主要集中于第一个问题,即人工神经网络是否很快就会比真实的神经网络更智能?我将详细阐述我的研究,它们使我得出一个结论,这样的事情可能很快就会发生。在讲话的最后,我将谈一谈我们是否能保持对超级智能的控制,但这不会是此次讲话的主要内容。
在传统计算中,计算机被设计成精确地遵循指令的样子。我们可以在不同的物理硬件上,运行完全相同的程序或神经网络,因为我们知道硬件会精确地遵守指令。这意味着,程序中的知识或神经网络的权重是不朽的(immortal),即它不依赖于任何特定的硬件。实现这种不朽性的成本很高。我们必须以高功率运行晶体管,所以它们的行为是数字化的。而且我们不能利用硬件的丰富的模拟和可变属性。
因此,数字计算机存在、以及它们精确遵循指令的原因,是因为传统设计中,人类会去看一个问题,会想出需要采取什么步骤来解决问题,然后我们会告诉计算机采取这些步骤。但这已经改变了。
我们现在有一种不同的方式来让计算机做事情,这就是从实例中学习,我们只需向它们展示我们希望它们做什么。因为有了这样的变化,现在我们有机会可以放弃计算机科学最基本的原则,即软件与硬件分离的原则。
在我们放弃它之前,让我们先来看看为什么它是一个如此好的原则。可分离性让我们可以在不同的硬件上运行同一个程序。我们也可以直接研究程序的属性,而不用担心电子硬件的问题。而这就是为什么计算机科学系可以独立于电子工程系自成一个学科。
如果我们真的放弃了软硬件的分离,我们就会得到我称之为非不朽计算(非不朽计算)的东西。
它显然有很大的缺点,但也有一些巨大的优势。为了能以更少的能量运行大型语言模型,尤其是以更少的能量训练它们,我开始研究非不朽计算(非不朽计算)。
从放弃不朽性中得到的最大好处是:放弃了硬件和软件的分离可以节约大量能源。因为我们可以使用非常低的功率的模拟计算,而这正是大脑正在做的事情。它确实需要进行1bit的计算,因为神经元要么启动,要么关闭。但大部分的计算是以模拟方式进行的,能够以非常低的功率完成。
我们还可以得到更便宜的硬件。因此,目前的硬件必须在2D(平面)中非常精确地制造,而我们可以让其在3D(环境)中成长,因为我们不需要确切地了解硬件的导电性,或者确切地了解它的每一块如何工作。
显然,要做到这一点,需要大量新的纳米技术,或者也许需要对生物神经元进行基因再造,因为生物神经元要做的事情,大致上是我们想要的。在我们讨论非不朽计算的所有缺点之前,我想举一个计算的例子,它使用模拟硬件来完成可以便宜得多。
如果你想把神经活动的矢量乘以一个权重矩阵,这就是神经网络的中心计算,它也是神经网络所承载的大部分的工作。我们目前所做的是以非常高功率驱动晶体管来表示数字的比特,以数字表示。然后我们进行O(n^2),将两个n位数字相乘。这可能是计算机上的一个操作,但它是n的平方比特级别的操作。
另一种方法是将神经元活动以电压和权重作为电导率来实现。然后在单位时间内,电压乘以电导就得到了一个电荷,而电荷是自己加起来的。因此很明显,你可以将电压矢量与电导矩阵相乘。这种方式更节能,而且已经存在能够以这种方式工作的芯片了。
不幸的是,人们随后所做的是试图将模拟答案转换为数字,这需要使用非常昂贵的交流转换器。如果可以,我们希望完全停留在模拟领域。但这样做会导致不同的硬件最终会计算出略有不同的东西。
因此,非不朽计算的主要问题是,当进行学习时,程序必须根据它所在的模拟硬件的具体属性进行学习,而不知道每一块硬件的具体属性到底是什么,例如,不知道将神经元的输入与神经元的输出联系起来的确切函数,不知道连接性。
这意味着我们不能使用像反向传播算法来获得梯度,因为反向传播需要前向传播的精确模型。所以问题是,如果我们不能使用反向传播算法,我们还能做什么?因为我们现在都是高度依赖反向传播的。
我可以展示一个非常简单和直接的权重扰动学习(weightperturbation),人们已经对此已经有了很多研究。对网络中的每个权重,产生一个随机的小的临时扰动向量。然后在一小批例子上测量全局目标函数的变化,你根据目标函数的改善情况,通过扰动向量的规模永久地改变权重。因此,如果目标函数变得更差,你显然要去另一个方向。
这种算法的好处是,平均而言,它的表现与反向传播一样好,因为平均而言,它也会遵循梯度而行。问题是它的方差非常大。因此,当你选择一个随机的方向来移动时,所产生的噪音会随着网络规模增加而变得非常糟糕。这意味着,这种算法对少量的连接有效,但对大的网络无效的。
我们还有一个更好的算法活动扰动学习(activityperturbation)。它仍然有类似的问题,但比权重扰动好得多。活动扰动是你考虑对每个神经元的总输入进行随机矢量扰动。你对神经元的每个输入进行随机矢量扰动,看看当你对一小批例子进行这种随机扰动时,你的目标函数会发生什么变化,你会得到由于这种扰动而产生的目标函数的差异,然后你可以计算如何改变神经元的每个传入权重以遵循梯度。这种方法噪音更小。
对于MNIST这样的简单任务,这样的算法已经足够好。但它的效果仍然不足以好到可以扩展到大型神经网络。
我们可以尝试找到一个适用于大型神经网络的学习算法,而不是寻找可以适用于小型神经网络的目标函数。我们的想法是要训练一个大型神经网络。而我们要做的是有很多小的目标函数,适用于整个网络的一小部分。因此,每个小的神经元组都有自己的局部目标函数。
总结一下,到目前为止,我们还没有找到一个真正好的可以利用模拟特性的学习算法,但是我们有一个学习算法还不错,能够解决MNIST这样的简单问题,但不是那么好。
非不朽计算第二个大问题是就是它的非不朽性。这意味着,当一个特定的硬件死亡时,它学到的所有知识都会随着它一起死亡,因为它的学习都是基于其特定的硬件细节的。所以解决这个问题的最好办法是在硬件死亡之前,你把知识从“老师”(旧硬件)那里提炼出来给”学生”(新硬件)。这就是我现在正在努力推动的研究方向。
Midjourney生成
老师会向学生展示对各种输入的正确反应,然后学生试图模仿老师的反应。这就好像是特朗普的推特。有些人对特朗普的推特非常生气,因为他们觉得特朗普说的是假话,他们以为特朗普是在试图阐释事实。不是的。特朗普所做的是选出一种情况,对这种情况作出针对性的非常情绪化的反应。他的