一、前言--ChatGPT真的产生心智了吗?
为什么光凭“续写”就可以产生智能?以下是摘自知乎的一段回答:
“为什么这么一个简单的接话茬能力让ChatGPT看起来能够解决各种各样的任务呢?因为我们人类大部分的任务都是以语言为载体的。当我们前面说了一些话,它把接下来的话接上,任务就完成了。ChatGPT作为一个大语言模型,目的就是“把话接上”,而把话接上这件事情可以在不知不觉中帮我们完成各种任务。”,这也解释了为什么ChatGPT有时候瞎胡诌,他并没有撒谎,他不知道对错,他只是想把对话顺利进行下去。
如果真的像上述所说,那GPT似乎没有我们想象的神奇,看起来只是一个基于大数据和统计学的语言模型,通过它学习的海量文本预测下一个概率最高的词。就像是有一个容量巨大的“数据库”,所有的回答都是从这个数据库里拿到的。
但奇怪的是,ChatGPT又可以回答他没有学习过的问题,最具代表性的是训练集中不可能存在的六位数加法,这显然无法通过统计学的方式来预测下一个最高概率的数字是多少。
不仅如此,GPT还学习到了在对话中临时学习的能力。
所以研究AI的第一步,是搞清楚上图中的一个圆圈究竟能够干什么。
【神经元--圆圈和线】
这个网站可以模拟更多的神经元分裂问题。可以看到一个神经元能处理的情况还是太有限了,能分开明显是两块的数据,而内圈外圈的数据就分不开。但如果加入激活函数,再增加新的神经元,每一个新增的神经元都可以在边界上新增一两条折线,更多的折线就可以围得越来越像一个圆,最终完成这个分类。
这就是为什么有这么多业界学者意识到了深度学习的本质,其实是统计学,沿着圆圈和线的道路,他们终究会到达终点,成为人人都可以使用的工具。而如果拆开GPT系列模型,暴露出来的也仍然只是这些圆圈和线。但分类和统计真的能模仿人的思维吗?在论述之前,先了解一下成语接龙的底层原理。
【成语接龙】
在2018年第一代GPT的原始论文[5]中,我们可以看到GPT系列的模型结构。回想上文中提到的注意力机制,这一层被叫做注意力编码层,它的目标就是模仿人的注意力,抽取出话语之间的意义,把12个这样的编码层叠在一起,文字从下面进去,出来的就是GPT预测的下一个词。
输入howareyou后,这三个单词会被转换为3个1024维度的向量,接着每个向量都会加上一个位置信息,表示how是第一个词,are是第二个词,以此类推之后它们会进入第一个注意力编码层,计算后变成三个不一样的1024长的向量,再来到第二层、第三层,一直经过全部的24个注意力编码层的计算处理,仍然得到三个1024长的向量,对下一个词的续写结果就藏在最后一个向量里面。关键的计算就发生在这些注意力编码层,这一层里又可以分成两个结构,先算多头注意力,再算全连接层。注意力层的任务是提取话语间的意义,而全链接层需要对这些意义做出响应,输出存储好的知识。
在全连接层里,就是4096个我们熟悉的神经元,它们都还是在做分类的工作。这里的计算是把被注意力层转换后的how向量和这里的每一个神经元都连接在一起,1024个格子里的每一个数字都分别和第一个神经元的连线的权重相乘再相加,这个神经元会输出一个相似度分值,与此同时,每一个神经元都在做类似的操作。只有少数神经元的输出大于零,也就意味着神经元对这个敏感,再连接1024个格子号所对应的向量,就又得到了一个新的向量。之后are和you做类似的计算,就得到了三个和初始长度一样的1024长的格子串,这就是一层注意力编码层内发生的事情。之后的每一层都按照相同的流程在上一层的基础上做进一步的计算,即便每一层都只带来了一点点理解,24层算完以后也是很多理解了,最终还是得到三个向量,每个1024长。而模型要输出的下一个词就基于这最后一个向量,也就是you变换来的向量,把它从1024恢复成0-50256范围的序号,我们就能看到这个序号向量在词表里最接近的值。到这一步就可以说模型算出了howareyou之后的下一个词,最有可能是doing。
我们希望模型继续续写,就把这个doing续在howareyou后面,转换成四个向量,再输入进模型,重复刚才的流程,再得到下一个词。这样一个接一个,一段话越来越长,直到结束,变成我们看到的一段话,这就是文字接龙的秘密。而ChatGPT也只是把这个续写模型改成了对话界面而已,你提的每一个问题都会像这样成为续写的起点,你们共同完成了一场文字接龙。
【“大”语言模型】
刚刚提到的每一层的计算流程长,其实还好,GPT真正吓人的地方是参数量大。GPT1的基本尺寸是768,每一层有超过700万个参数,12层就是1.15亿个参数,在他发布的2018年已经非常大了。我们刚刚拆开的GPTmedium基本尺寸是10241,共有24层,每一层有1200万参数,乘起来就是3.5亿参数。而到了ChatGPT用的GPT3的版本,它的参数量是1750亿,层数增加到了96层。GPT4并没有公布它的大小,有媒体猜测它是GPT3的六倍,也就是一万亿参数。这意味着,即便把一张3090显卡的显存变大几百倍,让他能装的下级GPT4,回答一个简单问题可能仍然需要计算40分钟。
拆开这一切,就会发现没有什么惊人的秘密,只有大,文明奇观的那种大,无话可说的那种大,这就是GPT系列的真相,一个“大”语言模型。但是我们还是无法回答为什么这样的模型能够产生智能,以及现在还出现了一个新的问题,为什么参数量非得这么大?
让我们先总结一下目前的已知信息,第一,神经网络只会做一件事情,数据分类,第二,GPT模型里注意力层负责提取话语中的意义,再通过全链接层的神经元输出存储好的知识,第三,GPT说的每一个词都是把对话中的所有词在模型中跑一遍,选择输出概率最高的词。所以,GPT拥有的知识是从哪来的?我们可以在OpenAI的论文中看到ChatGPT的预训练数据集,他们是来自网站、图书、开源代码和维基百科的大约700GB的纯文本,一共是4991个token,相当于86万本西游记。而它的训练过程就是通过自动调整模型里的每一个参数,完成了这些海量文字的续写。
在这个过程中,知识就被存储在了这一个一个的神经元参数里,之后它的上千亿个参数和存储的知识就不再更新了。所以我们使用到的ChatGPT其实是完全静止的,就像一具精致的尸体,它之所以看起来能记住我们刚刚说的话,是因为每输出一个新的词,都要把前面的所有词拿出来再算一遍,所以即便是写在最开头的东西,也能够影响几百个单词之后的续写结果。但这也导致了ChatGPT每轮对话的总词汇量是有上限的,所以GPT不得不限制对话程度。就像是一条只有七秒记忆的天才金鱼。
现在回到前言中提到的问题,为什么ChatGPT可以回答他没有学习过的互联网不存在的问题,例如一个训练数据里不可能存在的六位数加法,这显然无法通过统计学的方式来预测下一个最高概率的数字是多少,这些统计之外的新能力是如何出现的?
A:“你这是什么意思?”
B:“没什么意思,意思意思。”
A:“你这人真有意思。”
B:“其实也没有别的意思。”
A:“那我就不好意思了。”
B:“是我不好意思。”
而GPT似乎理解了这些意思,它是如何做到的?
【Emergence--涌现】
1972年,理论物理学家PhilipAnderson在Science发表了一篇名为《MoreisDifferent》[7]的论文,奠定了复杂科学的基础,安德森认为:“大量基本粒子的复杂聚集体的行为并不能依据少数粒子的性质作简单外推就能得到理解。取而代之的是在每一复杂性的发展层次之中呈现了全新的性质,从而我认为要理解这些新行为所需要作的研究,就其基础性而言,与其它相比也毫不逊色”。
能理解这就是OpenAI为什么非得把模型搞得这么大的原因,只有足够大才足够抽象,而大到了一定程度,模型甚至会开始出现从未出现过的全新能力。
在这篇名为《大语言模型的涌现能力》的论文中[9],研究人员对于这些大小不同的语言模型完成了八项新能力的测试。可以看到,他们在变大之前一直都不太行,而一旦大到某个临界点,它突然就行了,开始变成一条上窜的直线,就像是在一瞬间顿悟了一样。
最近读了《失控》这本书,里面也提到了一个概念叫涌现,可以理解为蜂群智慧。一只蜜蜂是很笨的,但是组成一个群体就可以完成很多超越个体智慧的决策。当然我不觉得AI的单个神经元是愚笨的,而是会不会这种“意识”,也会因为大量功能迭代,学习,突然涌现出来,就像人类的进化,不知怎么的就有了意识。就像这个世界的一切都是由原子构成,但如果只是计算原子之间的相互作用力,我们永远也无法理解化学,也无法理解生命。所以,如果仅仅从还原论的角度把AI看作只做二元分裂的圆圈和线,我们就永远无法理解大语言模型今天涌现出的抽象逻辑和推理能力,为此,我们需要在一个新的层级重新理解这件事。
三、中文房间
1980年,美国哲学教授JohnSearle在这篇名为《心智大脑和程序》[10]的论文中提出了一个著名的思想实验,中文房间。把一个只懂英文的人关在一个封闭的房间里,只能通过传递纸条的方式和外界对话。房间里有一本英文写的中文对话手册,每一句中文都能找到对应的回复。这样房间内的人就可以通过手册顺畅的和外界进行中文对话,看起来就像是会中文一样,但实际上他既不理解外面提出的问题,也不理解他所返回的答案。
他试图通过中文房间证明,不管一个程序有多聪明或者多像人,他都不可能让计算机拥有思想、理解和意识。真的是这样吗?在这个名为互联网哲学百科全书的网站中,可以看到围绕中文房间的各种争论,他们都没能互相说服。
想象有一个这样的复读机,空间只有100MB,只能放十首歌。要听新的歌,就得删掉旧的歌。但现在我们发现了一个神奇复读机。现在只需要唱第一句,这个复读机就可以通过续写波形的方式把任何歌曲播放出来。我们应该怎么理解这个复读机?我们只能认为他学会了唱歌。
四、Compression--压缩即智慧
回想GPT的学习过程,它所做的,就是通过它的1750亿个参数,实现了它所学习的这4990亿个token的压缩。到这一步,逐渐意识到,是压缩产生了智能。
我们可以把GPT当做一种压缩工具,我用它压缩这句话,你收到后再用GPT解压,我们得先知道这句话的信息量有多大。在GBK这样的编码里,一个汉字需要两个字节,也就是16个0/1来表述,这可以表示2的16次方,也就是65536种可能。这句话一共5个字符,就需要一共80个0和1,也就是80比特。但实际上这句话的信息量是可以小于80比特的。它的真实信息量其实可以用一个公式计算。
这是1948年香农给出的信息熵的定义,它告诉我们信息的本质是一种概率密度。我们可以把这里的P简单理解为每个字出现的概率,它们出现的概率越低,整句话的信息量就越大。如果这句话里的每个字都是毫无规律的随机出现,那么P的概率就是1/65536,计算后的信息量就是原始的80比特。常见的传统压缩方法是找到重复的字,但几乎不重复的句子就很难压缩。更重要的是,正常的语言是有规律的,“压”后面跟着“缩”的概率远大于1/65536,这就给了信息进一步压缩的空间。而语言模型所做的就是在压缩的过程中找到语言的规律,提高每个字出现的概率。比如我们只发送“压缩”,让语言模型开始续写,预测的概率表里就会出现接下来的词,我们只需要选择“即”和“智慧”所在的位置,例如(402,350)。那这两这个数字就实现了信息的压缩,接收方基于这些信息,从相同语言模型的概率去处理,选出数字对应的选项,就完成了解压。2个最大不超过5000的数字,每个数字只要13位0/1就能表示,加上前2个字,一共也只需要发送52位0/1,信息压缩到原来的52/80大约65%。
相反,如果语言模型的预测效果很差,后续文字的词表还是会很长,无法实现很好的压缩效果。所以可以发现,压缩效果越好意味着预测效果越好,也就反映了模型对于被压缩信息的理解,而这种理解本身就是一种智能。为了把九九乘法表压缩的足够小,他需要理解数学,而如果把行星坐标压缩的足够小,他可能就理解了万有引力。今天,大语言模型已经成为了无损压缩的最佳方案,可以实现14倍的压缩率。压缩这一视角最大的意义在于,相比于神秘莫测的涌现,它给了我们一个清晰明确、可以量化机器智能的方案。即便面对中文房间这样的思想实验,我们也有办法研究这个房间的智能程度。
但是,通过压缩产生的智慧和人的心智真的是同一种东西吗?
五、写在最后
首先进化出来的是爬虫类脑,这部分和青蛙的脑子有点像,它控制着我们的心跳、血压、体温这些让我们不会死的东西。然后是古生物脑,它支配着我们的动物本能,饥饿、恐惧和愤怒的情绪,繁衍后代的欲望都来自边缘系统的控制。而最外侧这两毫米左右的薄薄的一层,是最近几百万年才进化出来的新结构、新皮质,我们人类引以为傲的那些部分,语言、文字、视觉、听力、运动和思考都发生在这里,但我们对新皮质还是知之甚少。目前已知的是,这里有大概200亿个神经元,每一平方厘米的新皮质中都大约有一千万个神经元和500亿个神经元之间的连接。只需要从人类大脑外侧取下一小片三平方厘米的新皮质,就已经和ChatGPT大的吓人的参数量类似了。而我们的大脑之所以需要这么多神经元,是因为GPT仅仅需要预测下一个词,而我们的神经元需要时刻预测这个世界下一秒会发生什么。
最近几十年的神经科学研究发现除了能激活神经元的突触信号,还存在大量负责预测的树突脉冲信号。一个处于预测状态的神经元如果得到足够强的突出信号,就可以比没有预测状态的神经元更早的被激活,进而抑制其他的神经元。这意味着有一个事无巨细的世界模型就存储在我们新皮质的200亿个神经元里,而我们的大脑永远不会停止预测。所以,当我们看到一个东西,其实看到的是大脑提前构建的模型,如果它符合我们的预测,无事发生。而一旦预测错误,大量的其他神经元就会被激活,让我们注意到这个错误,并及时更新模型。所以每一次错误都有它的价值。我们也正是在无数次的预测错误和更新认知中真正认识了世界。
机器可以是一个精妙准确的复读机,而人类是一个会出错的复读机。缺陷和错误定义了我们是谁。每一次不合规矩,每一次难以理解,每一次沉默、停顿和凝视,都比不假思索的回答更有价值。审核编辑:刘清
原文标题:ChatGPT是如何产生心智的?
长沙市望城经济技术开发区航空路6号手机智能终端产业园2号厂房3层(0731-88081133)