关于 AI 的深度研究:ChatGPT 正在产生心智吗?

34 阅读6分钟

www.bilibili.com/video/BV1uu…

对3个向量加上位置信息经过全部24个注意力编码层,得到新的3个1024长向量,对于下一个词的续写结果就藏在最后一个向量里面,关键的计算就发生在这些注意力编码层,这一层里又可以分为2个结构,先算多头注意力再算全连接层,注意力层的任务是提取话语间的意义,而全连接层是需要对这些意义做出响应,输出存储好的知识。以how为实例,注意力层有3个训练好的参数KQV,K和Q是关联性理解,V是有效信息理解,经过这样一通繁琐的计算,就能得到how和are的关联度,再通过这种方式计算how和you的关联度,how和how,再做处理就能得到3个分数,分数越高意味着他们的关联越重要,how are you 分别从乘于V,就是模型从它们中提取出的有效信息,之后再让3个分数和3个有效信息相乘再相加,就把how变换成了一个新的64个格子的向量,然后对are和you做同样的操作,就得到了3个新的向量,参与刚才这轮计算的KQV都是固定值,而模型里一共有16组不同的QKV,它们分别都会做一轮刚才这样的运算,得到16组不同的输出,这叫做“多头注意力”,意味着这句话16组不同的理解,把他们拼在一起就得到了和输入相同长度的1024个格子,再乘于一个权重矩阵W就进入到全连接层的计算,这一层就是4096个我们熟悉的神经元,他们都还是在做分类的工作,这里的计算是把被注意力层转换后的how向量和这里的而每一个神经元都连接在一起,1024个格子里的每个数字都分别和第一个神经元的连线的权重相乘再相加,这个神经元会输出-0.14,与此同时,每一个神经元都在做类似于的操作道道-0.15 -0.07等等,只有少数神经元的输出大于0,意味着神经元对这个词敏感,再连接1024个格子,how所对应的向量就又得到了一个新的向量,之后are和you做类似的计算就得到了3个和初始长度一样的1024长的格子串,这就是一层注意力编码层内发生的事情,之后每一层都按照相同流程在上一层的基础上做进一步的计算,即便每一层都只带来了一点点理解,24层算完以后也是很多理解了,最终还是得到3个向量,每个1024长,而模型要输出的下一个词就基于这最后一个向量也就是you变换来的向量,把它从1024恢复成0到50256范围的序号,我们就能看到这个序号向量在词表里最接近的词,我们可以把前20个用概率表表示结果就是这样,到这一步就可以说模型算出的how are you之后的下一个词最有可能是doing,如果我们希望模型继续写,就把这个词续在how are you 后面,转换成4个向量,再输入进模型,重复刚才的流程,再得到下一个词,这样一个接一个,一段话越来越长,直到模型算出来下一位是endoftext结尾符的概率最高,并且输出它,就会停下来,变成我们看到的一段话,这就是文字接龙的秘密。而chatgpt也就是把这个续写模型变成对话界面而已。这是gpt2的原理。

总结信息:第一,神经元只会做一件事情,就是数据分类;第二,GPT模型里注意力层负责提取话语中的意义,再通过全连接层的神经元输出存储好的知识;第三,GPT说的每一个词都是把对话中的所有词在模型中跑一遍选择输出概率最高的词,所以GPT拥有的知识是从哪来的。

在openAI的论文中看到chatgpt的预训练数据集,他们是来自网站图书开源代码和维基百科的大约700g纯文本,一个是4990亿个token(字符),相当于86万本西游记,它的训练过程就是自动调整模型里的每一个参数,完成这海量文字的续写, 在这个过程中,知识就是就被存储在了在一个一个神经元的参数里,之后,它的上千亿个参数和存储的知识就不再更新了,所以我们使用到的chatGPT,其实是完全静止的,就像一具精致的尸体,都要把前面的数据都拿出来再算一遍。

有分析统计的能力,《语言模型可以解释语言模型中的神经元》,简单来说就是用gpt4来解释gpt2,给gpt2输入文本时,模型里的一部分神经元会激活,如果反过来追踪,它关注的是文本里的这些词,接下来openai让gpt4观察这个过程猜测这个神经元的功能,再观察更多的文本和神经元,猜测更多的神经元,这样就可以解释gpt2里面每一个神经元的功能,但是还不知道gpt4猜得准不准,验证方法是让gpt4更具这些猜想建立一个仿真模型,模仿gpt2看到文本之后的反应,再和真的gpt2的文本对比,结果一致率越高,对这个神经元功能的猜测就越准确。openai在一个网站里记录了每个神经元的分析结果,通过layer和index找到神经元,有些神经元即便拼写完全不同,但这些模型中间层的神经元也已经可以根据词语和上下文来理解他们的意义了,但openai也发现,只有那些层数较低的神经元才是容易理解的。 回顾语言模型的结构,信息的随着注意力编码层不断往上流动的,层数越高的神经元,越有能力关注那些抽象复杂的概念和难于言说的隐喻,这篇《在甘草堆里找神经元的论文》也发现了类似的情况,他们找到一个专门用来判断语言是否为法语的神经元,如果在小模型当中屏蔽这个神经元,它对法语的理解能力马上下降,而在大模型中屏蔽它,可能几乎没什么影响,这意味着在模型变大的过程中,一个单一功能的神经元很可能会分裂出多个适应不同情况的神经元,它们不再那么直白的判断单一问题,进而变得更难理解,这就是为啥openai把模型搞这么大的原因,只有足够大才足够抽象,而大到一定程度,模型甚至会开始出现从为出现过的全新能力