世界的参数倒影:为何GPT通过Next Token Prediction可以产生智能(2)

简介: 世界的参数倒影:为何GPT通过Next Token Prediction可以产生智能

拼图游戏:目前已知的一些事实碎片


若把 LLM 习得 AGI 智能比做一个拼图游戏的话,只能说目前我们手上只有一些有关它的支离破碎的拼图碎片,还未能一睹这种机器智能的全貌。本部分从几个不同的角度,收集并介绍现有相关研究的研究结论。


GPT 模型对知识的提取过程



我们先来看一下,假设 LLM 模型训练好了,在使用时输入 Prompt,GPT 模型是如何把知识提取出来的。「Dissecting Recall of Factual Associations in Auto-Regressive Language Models」这篇文章对此做了细致的研究。如图所示,假设输入的 Prompt 是:「Beat music is owned by」,GPT 可以通过 NTP 返回正确答案:Apple。这个例子里,「Beat music」 是个实体,「owned by Apple」 是这个实体对应的某个属性。

经过研究,发现 GPT 在提取这条知识的时候,经历了明显的三阶段过程:首先,单词 「music」是描述这个实体最后的、也是最关键的词汇,它的信息在顺着 Transformer block 往上走的过程中,先通过 Attention 把之前的修饰语beats 相关信息集成到「music」 对应位置。之后,随着 Transformer 层数越来越高,通过每个 Transformer Block 的 FFN 层,不断往「music」对应的 Embedding 里增加信息,所以随着信息往上层流动,「music」这个单词对应层数的 Embedding,能够触发越来越多的与「Beat music」 相关 「属性」 词汇。这是第一个步骤,整个过程总体发生在 Transformer 的低层。


第二步,GPT 模型在 by单词这个位置,也就是 NTP 要产生输出 token 的最后一个位置,通过 Attention 把单词「own」  的信息集成到最后位置。这里需要注意一下,最后一个单词对应的 Transformer 位置是比较关键的,因为在它的最上层会给出 Next Token 输出。在推理过程中,GPT 会把输入上文中的重要信息通过 Attention 逐步集成到这个位置上来。这个操作也发生在 Transformer 的低层。

第三步,在「by」 单词位置,也就是最后一个位置的 Transformer 高层,它在低层已经集成了单词「own」 的信息,这个信息在高层,通过 Attention 把「Beat music」 对应的属性「apple」 提取出来。具体提取动作是通过某个 Attention Head 来做到的,而且这篇文章证明了 Attention Head 里会编码 < 实体 - 属性 > 信息,具体例子可以参照下图,这点对我们来说应该是个新知识(过去一般认为 Attention 主要是用来进行信息比较和搬运的,它证明了 Attention 也会存储某种知识)。


通过以上三步,GPT 完成了对某条知识的提取过程。



另外一个工作「Understanding Transformer Memorization Recall Through Idioms」 探讨了 LLM 是如何提取记忆信息的,包括完全靠记忆需要精准复现的成语/谚语(Idioms),以及事实类知识。研究结论是 LLM 对记忆信息提取可以分为两个阶段:第一阶段是低层的 Transformer Block 把正确答案单词的排名逐渐提高,直到中间层排名到了第一名;第二阶段高层的 Transformer 把正确答案的置信度提高,也就是不断提高这个正确答案的分布概率得分。


除了以上两个工作,还有一些其它类似的研究知识提取的工作。如果综合下现有的研究结论,我觉得可以大致得出这么一个 GPT 知识提取的轮廓:当训练好 GPT 模型后输入 Prompt,对于 Transformer 某个位置对应的输入单词,随着 Transformer 不断往上走,GPT 通过 Attention,把这个单词上文中与自己有关的信息集成到自己的 Embedding 里,而每层的 FFN 对当前单词 Embedding 做变换增加信息,以此方式来不断触发 FFN 里存储的知识并逐层 Refine 单词对应的 Embedding(类似上面例子里单词 「music」的过程)。


Transformer 的 last token 位置也是如此,它的特殊之处在于,从底层到上层,首先会把整个输入上文中最关键的信息,通过 Attention 拷贝到自己的位置,之后通过这个关键信息来逐步过滤出上文中比较重要的信息。在这个位置的 Transformer 底层,应该有很多候选答案可供输出,正确答案排名并不靠前,随着 Transformer 往上走,正确答案排名越来越靠前,而且可以和正确答案竞争的候选答案越来越少,体现为分配给正确答案的概率分布得分越来越高,直到 last token 的最高层,GPT 可以输出正确答案(类似上面例子中单词「by」的过程)。


知识点在 Transformer 中的分布


这部分介绍知识点在 Transformer 结构中的分布情况,意思是不同类型或特定的知识点,在 Transformer 高中低不同层级的分布情况。了解这方面的知识,对于理解 GPT 的内在运行机制是非常有帮助的。


在介绍研究结论前,为了便于理解,我们先说明三个基础概念 (可参考 Toy Models of Superposition):单语义(Monosemantic)神经元、多语义(Polysemantic)神经元及 superposition。



目前发现 LLM 中存在很多单个的神经元,它们各自只对输入里某个特殊的知识点产生响应,也就是说只会被特定输入模式激活,对其它无关输入保持沉默,一个神经元编码一个知识,完美一一对应,这类 Transformer 中的神经元被称为 「单语义神经元(这和人类大脑中的神经元作用机制就比较像了)。与此相反,也有大量神经元是多语义编码的,就是说很多不同语言含义的知识点都会激活某个神经元,这类神经元被称为「多语义神经元」。上图给了例子,比如有的神经元只有当输入的 Prompt 内容是法语写的,它才有响应,这是典型的 「单语义神经元」;而有的神经元会对多个语义差异很大的 2-gram 语言片段都会有响应,这是典型的「多语义神经元」


Superposition 概念的含义是:假设要编码的特征的数量 n 远远多于网络参数 d,我们可找到办法,来用 d 维神经元编码比 d 数量大得多的 n 个特征,这种编码机制被称为 superposition,所以它是被发现存在 Transformer 结构里的一种信息压缩编码机制。



Superposition 和「多语义神经元」 关系密切,目前发现 LLM 内部是这样做的(参考 Finding Neurons in a Haystack: Case Studies with Sparse Probing):如上图所示,LLM 的 Superposition 机制是由多个「多语义神经元」 联合构成的,每个神经元会对输入中的多个不同知识点都有响应,所以仅仅通过一个 「多语义神经元」 是无法探测当前是对谁在做出响应,但是如果有多个对某个知识点都有响应的「多语义神经元」,在它们的响应之上做个线性组合,就能探测到输入中我们想识别的那个知识点(上图中蓝色部分)。也就是说,LLM 通过组合多个「多语义神经元」来对某个具体特征或知识点进行编码。所以,「多语义神经元」和知识点之间的关系是多对多的映射,一个知识点会激发很多对它进行编码的「多语义神经元」,而一个 「多语义神经元」也会对多个输入知识点产生响应。


了解了上述三个基础概念,我们介绍下目前的研究结论:在训练好的 GPT 模型中,Transformer 底层编码了大量的具体特征或知识点,比如 n-gram 特征、句法特征等,编码方式采用上述的由多个 “多语义神经元” 组成的 superposition 模式;而随着 Transformer 层数加深,具体知识点逐渐减少,抽象知识点(比如 「法语」/「质数」等)逐渐增加,且抽象知识点一般由「单语义神经元」 独立编码,且随着 Transformer 层数越高,编码的特征越抽象。换句话说,Transformer 对特征或知识点的编码,存在由低到高越来越抽象的一个知识抽象过程,这一现象在 OpenAI 最新发布的文章「Language models can explain neurons in language models」 也有提及。


另外,「Polysemanticity and Capacity in Neural Networks」这个文章指出了:在模型学习过程中,为了增加模型参数的利用效率,「单语义神经元」 会被分配给重要特征,「多语义神经元」会分配给不太重要的特征,而对更加不重要的特征,则模型完全不进行编码。而所谓的「重要性」,指的是对训练 loss 的影响来说的,也就是说:「单语义神经元」 对 NTP 训练时降低 loss 影响比较大。这说明对特征或知识点进行抽象,是 NTP 本身为了快速降低 Loss 的一种内在驱动力,而这很可能是 GPT 模型通过 Next Token Prediction 任务产生智能的关键之一。


GPT 中知识回路存在的证据


这里介绍 LLM 模型中,完成某个特定任务存在对应知识回路(Circuit)的相关工作。所谓「回路」,指的是某个任务的 Prompt 输入 Transformer 后,信息从底向上传播,直到 last token 最高层 Next Token 输出答案,在网络中存在一些完成这个任务的关键路径,信息主要沿着这条路径向上传播,在传播过程中不断进行信息传递或知识加工,以此方式来通过 NTP 完成某项任务。如果看过后面介绍内容,你会发现 LLM 知识回路的工作过程,其实和人类大脑中的某些信息处理回路是很相似的。而大量在 GPT 的 NTP 预训练过程中形成的各种知识回路,很可能是揭开 AGI 之谜的另外一把钥匙。



How does GPT-2 compute greater-than?: Interpreting mathematical abilities in a pre-trained language model」 这个工作主要探讨:为何 GPT 模型能够通过预训练获得数学能力。具体而言,用的是类似「The war lasted from the year 17YY to the year 17」的 Prompt,GPT 模型可以做到输出的 Next Token 的年份数字 XX 大于 YY,这说明它在预训练中学会了数字间的比较关系。通过探究,发现模型在预训练过程中形成了解决这个问题的知识回路,如上图图右所示:有两个关键部分,第一个是中间层的某些 Attention Head,比如图中 a5.h5 代表 Transformer 第 5 层的第 5 个 Attention Head,这些 Attention Head 主要作用是聚焦到 YY 年份并向高层传播;另外一个关键是第 8 到 11 层的 MLP 层,这些层的 MLP 完成 「大于」运算,所以最后 GPT 能够正确输出结果。而且,中间层的 Attention Head 和上层 MLP 也有相对应的传递关系,比如第 9 层 MLP 主要接收信息来源于 a9.h1,而第 8 层 MLP 的信息来源则比较多。可以看出,信息从下到上形成了一个特定的传播路径。



如果再深入探究,会发现是 MLP 中的一些关键神经元完成数学运算的,如上图图右所示,可以探测出第 10 层 MLP 中影响最大的 10 个神经元,这层只用这 10 个神经元就能大致完成 “大于” 运算,而左图则展示了 a7.h10 这个 Attention Head 主要聚焦于关键信息 “YY” 上。另外,该项研究还发现不仅仅上述 Prompt,如果变换 Prompt 形式,但是体现数字比较关系,发现被激活的也是这条回路,这说明这条回路可能专门用于对数字进行关系比较。



大部分知识回路应由 Attention 和 MLP 共同组成,但是也发现一些以 Attention 为主的知识回路。典型的例子就是「Induction Head」 回路,多项研究证明这个回路的存在。它的主要作用在于当 GPT 预测 Next Token 的时候,倾向于从上文找到类似的输出模式,并拷贝到后续 Token 输出。如上图所示句子,第二个「so」 是 last token,GPT 此时通过 NTP 将要产生后续 Token,「Induction Head」 回路倾向于从上文中找到相同的 「so」单词,并把上文中跟在「so」后面的单词 「bad」 当作 Next Token 输出。「Localizing Model Behavior with Path Patching」 这项研究探测了 Induction Head 的内在工作机制:当根据第二个单词 「so」 要预测 Next Token 的时候,「so」 本身的内容被拷贝到 Transformer 自己对应 Attention 的 < Query,Key,Value > 中的 Query,而上文内容中出现的 “bad” 单词,通过 PTH (Previous Token Head to key) 这个 Attention Head 将 “bad” 之前内容的语义集成到 “bad” 对应的 Key 里。结果在「so」做 Attention 的时候,两者就得到很高相似性,于是通过 Attention 把「bad」 拷贝到单词 so 的位置,这导致 Next Token 很容易输出 “bad”,就达成了从上文拷贝「so…bad」 的目的。



除了 Induction Head 外,还有一些功能更复杂的 Attention 回路,比如 Interpretability in the Wild: a Circuit for Indirect Object Identification in GPT-2 small这个工作发现了 Transformer 中存在以 Attention 为主,用于识别 Indirect Object Identification的知识回路。所谓「Indirect Object Identification」 ,可以参考上图给出的例子,就是说输入有两个实体,一个重复实体,一个非重复实体,如何从中找到正确答案。从上图例子可看出 GPT 是可以输出正确答案 Mary 的,其原因就是模型学会了一个主要由 Attention Head 构成的复杂识别回路。



如上图所示,「Indirect Object Identification」知识回路识别正确答案,主要由三个步骤构成:首先,Duplicate Token Heads 用于标识多次出现在句子中的 Token,而 Induction Heads 起到类似的作用;其次,S-Inhibition Heads 在输出 Next Token 的位置发生作用,用于从 Name Mover Heads 的注意力中删除或者抑制重复出现的名字;最后,Name Mover Heads 则输出剩余的名称 Token。由上可看出,LLM 模型在预训练过程中,为了更好地进行 Next Token 预测,学习到了非常复杂的 Attention 知识回路,来执行对某些输入 Token 拷贝并在 Next Token Prediction 结果中输出。


OpenAI 首席科学家 Ilya Sutskever 在访谈中曾说:「我们训练 LSTM 来预测亚马逊评论的下一个字符 (NTP) 时发现,如果你预测下一个字符足够好,LSTM 就会有一个与情绪对应的神经元。这就很好地展示了无监督学习的效果,也验证了下一个字符预测的想法。这个发现对我们的影响很大。」我理解这里说的在网络中出现了与情绪对应的神经元,大概是通过 NTP 训练任务,在模型内部形成了一个情感判断的知识回路。这个发现(可参考:Learning to Generate Reviews and Discovering Sentiment),确实是后来推动 OpenAI 把 LSTM 换成更大规模的 Transformer,并在更多数据上采用 NTP 来进行预训练的重要启发因素。


目前在探索 GPT 模型中的知识回路方面工作还比较少,我个人认为这个事情特别重要,比如我猜大概率会存在能够解释 Chain of Thought(COT)现象的复杂逻辑回路,而这条回路的形成很可能是预训练数据中引入程序代码或理工科论文数据后形成的,因为这类数据间的逻辑关系比较密切,所以 GPT 在 NTP 任务中为了快速降低 Loss,精准预测之后的 Token,可能会逼迫模型在内部产生大量抽象知识点概念,并在此基础上形成复杂的逻辑回路。我感觉这方面工作很有价值,是值得进一步加强的。


不同规模 LLM 模型在学习知识点方面的差异


本节归纳不同大小规模 LLM 模型,在学习知识点方面差异的相关研究结论。


在文献「Finding Neurons in a Haystack: Case Studies with Sparse Probing」中提到了一个有趣的现象:对于同一个单语义神经元 编码的抽象特征「是否法语」(用来判断输入内容是否法语),如果我们把它屏蔽掉,可以看下对 GPT 的 Next Token Prediction 任务 Loss 的影响,如果屏蔽掉后 Loss 增加得越多,说明这个特征对模型来说越重要。有趣的是,屏蔽掉后,小模型 Loss 增加很多,但是对于大模型,则影响甚小。这说明这个特征对小模型很重要,但对大模型就没有那么重要。


这个现象很奇怪,论文给了解释:随着模型规模增大,会出现特征分裂(Split)现象。就是说小模型表征某个知识点,只有一个粗粒度的神经元独立响应,但是大模型会对这个知识点进行细化,根据不同的 Context 输入,分裂出表征不同上文下这个知识点对应的多个神经元,对应神经元只有在特定上文出现才会被激活。换句话说,同样是表征某个知识点,相对小模型,大模型在表征知识点方面会做得更细致。


举个例子,比如小模型只有一个神经元对输入中的 「return」 作出响应,但是大模型可能会分化出对不同编程语言的「return」作出响应。例如有一个对 python 语言的「return」响应的神经元,也有一个对 C++ 语言的「return」作出响应的神经元,诸如此类。所以,当小模型屏蔽掉某个特征,影响就很大,因为输入中如果出现这个知识点完全无法捕获,则对 loss 影响很大;但是对于大模型,屏蔽掉这个特征影响就不大,因为它还分裂出了对不同 Context 响应的神经元,这个神经元尽管没用了,但是有其它神经元来表征各种不同的情况。这个研究结论我认为是很重要的,它表明了大小模型在知识表征能力上的重大差异。


另外,还有研究结论表明:随着模型规模越来越大,会探测到更多比例的 “单语义神经元”。我觉得这说明了一个可能性,就是越大的 LLM 模型,会对更多的抽象知识进行独立神经元编码。


另外一个文献「The Quantization Model of Neural Scaling」,设想按照对 NTP 的 Loss 影响程度,我们可以对知识单元(文中称为 “量子单元”)由重要到不重要进行排序,形成 Q 队列。LLM 模型会优先学习 Q 队列中排在前面的量子单元,而对于大模型来说,则可以比小模型多学习 Q 队列中重要性没那么高的排在后面的量子单元。核心思想我归纳下,就是大模型可以比小模型学到更多不那么重要的特征。


以上几点,是从目前文献里能得到的,关于模型规模在表征能力方面差异的结论。


相关文章
|
3月前
|
人工智能 自然语言处理
公理训练让LLM学会因果推理:6700万参数模型比肩万亿参数级GPT-4
【8月更文挑战第3天】新论文提出“公理训练”法,使仅有6700万参数的语言模型掌握因果推理,性能媲美万亿级GPT-4。研究通过大量合成数据示例教授模型因果公理,实现有效推理并泛化至复杂图结构。尽管面临合成数据需求大及复杂关系处理限制,此法仍为语言模型的因果理解开辟新途径。[链接: https://arxiv.org/pdf/2407.07612]
72 1
|
2月前
|
数据可视化 Swift
小钢炮进化,MiniCPM 3.0 开源!4B参数超GPT3.5性能,无限长文本,超强RAG三件套!模型推理、微调实战来啦!
旗舰端侧模型面壁「小钢炮」系列进化为全新 MiniCPM 3.0 基座模型,再次以小博大,以 4B 参数,带来超越 GPT-3.5 的性能。并且,量化后仅 2GB 内存,端侧友好。
小钢炮进化,MiniCPM 3.0 开源!4B参数超GPT3.5性能,无限长文本,超强RAG三件套!模型推理、微调实战来啦!
|
6月前
|
自然语言处理
Meta首发变色龙挑战GPT-4o,34B参数引领多模态革命!10万亿token训练刷新SOTA
【5月更文挑战第27天】Meta推出34B参数的多模态模型Chameleon,通过早期融合技术处理图像和文本,实现全面的多模态建模。在10万亿token的训练数据下,Chameleon在图像字幕生成和文本推理任务中刷新SOTA,展现出在混合模态生成和推理的潜力。然而,模型可能无法完全捕捉图像语义信息,且在某些特定任务上有优化空间。[论文链接](https://arxiv.org/pdf/2405.09818)
98 1
|
6月前
|
人工智能 测试技术 iOS开发
微软Phi-3,3.8亿参数能与Mixtral 8x7B和GPT-3.5相媲美,量化后还可直接在IPhone中运行
Phi-3系列是微软推出的一系列高效语言模型,旨在在移动设备上实现高性能。该系列包括 Phi-3-mini(38亿参数)、Phi-3-small 和 Phi-3-medium,它们在保持紧凑的同时,性能媲美GPT-3.5和Mixtral。模型通过精心筛选的数据集和优化训练策略,如数据最优化和阶段训练,实现高效能。 Phi-3-mini可在iPhone 14上运行,占用约1.8GB内存。这些模型在多个基准测试中展现出色性能,推动了AI在移动设备上的应用,增强了用户隐私和体验。虽然目前仅发布技术报告,但源代码和权重即将开放下载。
148 1
|
6月前
|
SQL 人工智能 关系型数据库
【开源项目推荐】-支持GPT的智能数据库客户端与报表工具——Chat2DB
【开源项目推荐】-支持GPT的智能数据库客户端与报表工具——Chat2DB
532 2
|
机器学习/深度学习 数据采集 人工智能
150亿参数、一次通过率超60%,华为代码能力超GPT3.5的大模型来了
150亿参数、一次通过率超60%,华为代码能力超GPT3.5的大模型来了
185 0
|
人工智能 安全 自动驾驶
GPT-4是8x2200亿参数的混合模型?这个小道消息今天传疯了
GPT-4是8x2200亿参数的混合模型?这个小道消息今天传疯了
121 0
|
机器学习/深度学习 人工智能 自然语言处理
世界的参数倒影:为何GPT通过Next Token Prediction可以产生智能(1)
世界的参数倒影:为何GPT通过Next Token Prediction可以产生智能
285 0
|
4月前
|
存储 SQL 数据库
Python 金融编程第二版(GPT 重译)(四)(4)
Python 金融编程第二版(GPT 重译)(四)
49 3
|
4月前
|
存储 NoSQL 索引
Python 金融编程第二版(GPT 重译)(一)(4)
Python 金融编程第二版(GPT 重译)(一)
60 2
下一篇
无影云桌面