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

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

冰山之下:回路竞争猜想(Circuit Competition Conjecture, CCC)


如果我们把目前已知拼图碎片所体现出的点滴证据拼合起来,我感觉隐藏在冰山之下的原理部分,就若隐若现展现在我们面前。本部分在已知研究结论基础上作出一些推论,给出「回路竞争猜想(CC 猜想)」,作为 GPT 通过 Next Token Prediction 构建智能的内在作用机制说明。我要求自己做到关键之处都能找到参考依据,如果有推论给出推论过程,以使得这个猜想建立在现有研究结论之上,但总体来说是个未经验证的猜想,所以还请谨慎参考。


回路竞争:任务回路的突围


首先,我们把已知研究结论汇总一下,形成一个整体印象。在本文里,我把某个特征或知识统一称为知识点,因为单使用传统的 “特征” 很难涵盖某些内容,具体知识点包括语言知识点(n-gram、词法、句法、语义等)、context 知识点(比如 “输入为法语” 这种)、世界知识相关知识点(实体 - 属性、常识、事件等)以及简单函数回路知识点这几种,它们是细粒度的,我们将其统称为知识点。



综合上述内容可看出,GPT 模型通过 NTP 任务从数据中学习知识,在模型内部建立起两类知识体系:层级化的知识结构以及各种任务回路(参考上图),任务回路是在层级知识体系结构上建立起来的,是用于解决某个任务的、由知识点相互激发形成的固定通路。


假设已经训练好 GPT 模型,我们可以清晰地探测到它们的存在。首先,这些知识点有不同的抽象层级。越是存储在 Transformer 底层的知识点,越具体、可复用程度越高、通用性越强、数量越多,越容易通过 superposition 及 Polysemantic 这种稠密编码方式来进行编码;而越是存储在 Transformer 高层的知识点,越抽象、复用程度低、任务专业性越强,越倾向用 「单语义神经元」 方式单独编码(上图 Transformer 中白色节点代表具体知识点,红色节点代表抽象知识点)。


其次,某些知识点之间形成了由底向上的激发关系,激发路径是由下层不那么抽象的知识点逐层激发上层越来越抽象的知识点。比如某个编码在 Transformer 第 L 层的知识点,它可由第 1 到第 L-1 层的其它被激发的知识点来激活。被激活的神经元,除了收集、综合、抽象传上来的信息,可能也通过自己的 FFN 结构添加新知识(比如进行世界知识的提取),或做数学逻辑计算(比如比较数值大小)。训练好的 GPT 模型内部包含海量这种「局部」知识点构成的「微激发结构」,这应该是形成 GPT 智能的基础单元,从而整个 GPT 结构构造出对世界知识进行层级编码的世界知识结构。而根据 NTP 目标来训练模型,其实就是在由简单到复杂、由通用到专用、由具体到抽象、由下层到上层,在训练过程中逐渐建立起越来越复杂层级知识结构的过程,包括知识点以及知识点之间的激发关系产生的微结构,之所以会产生这些,是因为它们的存在,对于 NTP 精准预测之后的 Token 有帮助,也就是对于 GPT 模型在 NTP 时降低训练 loss 有用。


我们在此基础上可以重新看待任务回路的形成。任务回路应该是 GPT 为了更精准预测某种特殊类型数据的 Next Token,从 Transformer 的输入层开始,逐层关联相关的 “激发微结构”,从而形成了一个由低向上逐层激发,并最终关联到输出位置,以决定输出 Token 概率的完整通路结构(可参考上图红线部分勾勒出的某个任务通路)。学会了这种任务回路,如果 GPT 后续再见到此类数据,则 Next Token 预测精准性增加,体现为 NTP 任务 Loss 的降低。比如如果训练数据里大量出现 13+24=37这种加减乘除的例子,大概率 GPT 会学会一个用于简单数学计算的任务回路,以此增加等号后数字的 Next Token 预测精准性。



另外,输入的最后一个 Token 位置对应的各层 Transformer Block,可能有些特殊含义和作用,它可能通过 Attention 机制,起到了对之前全体输入内容的信息汇总工作。如果输入的 Prompt 是完成某项具体任务的,那么 Last Token 对应的各层 Transformer Block,大致把任务回路信息逐层汇总到了最后位置,以便于在 Last Token 的最高层进行正确的 Next Token 预测。相当于 Last Token 从 Transformer 庞大的知识体系中根据输入 Prompt 勾勒出了一个 Prompt 子世界。


上述内容宏观上综合了目前研究的结论,呈现出目前我们对 GPT 运行机制的了解程度。后面内容开始加入我个人的一些推论。


首先的问题是:在训练 GPT 的过程中,如此多的知识点,它学习这些知识点一定有个先后顺序关系,那么,它会遵循怎样的优先顺序来学习这些知识点呢?尽管目前有些研究结论是说重要的知识点先被学到,但是这里的重要性往往指的是对降低 GPT 模型 NTP 任务的 loss 角度来说的,降低 loss 越多,则这个知识点越重要。从降低 loss 角度讲肯定是对的,但还是太抽象。


我个人认为,在训练过程中,GPT 模型会优先学习具备以下特性的知识点:高频知识点、通用知识点(被复用概率高的则通用)、具体而非抽象的知识点。应该遵循这三个原则。为什么会这样呢?因为根据 Next Token Prediction 的原则,越是高频出现的知识点,如果 GPT 本次预测错了,则会做反向传播修正模型参数,以保证下次再见到类似情况会预测对,高频知识点因为出现次数多,所以获得反向传播修正模型参数的次数多,也就更容易建立起对应的知识点,及其和其它知识点的连接通路。高频知识点如果学会了,在后面的训练数据会很容易碰到这个知识点,所以对降低 NTP 任务的 loss 贡献就大。其它两类知识点也是类似的道理,通用知识点因为通用性强,所以在后续预测中被使用的机会多,所以获得反向传播修正模型参数的次数也多,也容易被模型学会,具体而非抽象的知识点也因为在训练数据中见到的次数多,所以容易被建立起来。诸如此类。反过来,低频的、领域或任务专用的、抽象的知识点,就会越晚被 GPT 模型学会。或者说,如果想学会这类知识点,则需要让模型见到更大量的数据,以增加这些知识点在学习过程中必要的反向传播修正参数的机会。



接下来,我们开始正式讨论 “回路竞争” 猜想。在引出这个猜想前,我先做一个假设:


假设:为了提高 GPT 模型的参数利用率,NTP 任务会鼓励子回路的复用。


所谓「子回路」,指的是完成简单运算的回路,这种回路涉及到的知识点较少,知识点之间激发的结构比较简单。GPT 模型大概会优先产生很多完成简单任务或计算的子回路,而复杂回路应该是由很多子回路进一步连接形成的。为了增加模型参数的使用效率,GPT 模型应该会鼓励这些子回路在不同复杂回路中尽可能被复用,这样使用同样的参数量,就能完成更多不同类型的任务。比如上文讲过的「Induction Head」  回路,就是一个典型的子回路,由上文我们可知,在更为复杂的「Indirect Object Identification」知识回路中,「Induction Head」回路是其中一个构成部分,子回路和复杂回路的关系大概类此例。


对于两个解决不同任务的复杂回路,由于子回路复用的原因,两者之间存在一些相同子回路,我们可以把这些相同的子回路称为「重叠回路」 。很容易推断,如果两个任务越接近,则其对应的重叠回路就越多。而且重叠回路存在 Transformer 底层的情况应该比较多,因为底层回路涉及到的知识点更具体、数量更多、可复用性更强。上图是对「子回路复用与重叠回路」 给出的示意图,途中红色线(红色任务)和蓝色线(蓝色任务)代表两个不同复杂任务回路,而在底层,则有一些子回路被两者复用。


所谓 「回路竞争」 猜想,我们用上图例子来说明。假设我们输入一个 Prompt,这个 Prompt 本来是要完成红色任务的,当输入 Prompt 后,在信息从底层向上层逐层激发正确通路的时候,越是底层的知识点和子回路,复用性越强,所以容易产生 过剩激发现象,就是除了激发出我们希望的红色任务外,也会激发很多导向其它任务回路的知识点和子回路。这种情况在底层较为明显,随着信息逐步往上传递,红色回路会逐渐得到进一步的强化,非正确回路被激发的上层知识点和子回路越来越少,最终勾勒出了正确的红色任务回路的路径。这就是典型的「回路竞争」 猜想的思路。


如果从低向上激发过程中,我们希望的正确回路被激发,可以认为回路竞争胜利,则模型输出正确答案,而如果错误任务回路被激发,可以认为回路竞争失败,则模型输出错误答案。可以推断的是,越是复杂的任务,因为其牵涉到的知识点和子回路越多,相互之间的关系越复杂,所以越容易和更多其它相似任务回路产生重叠,也就越容易在回路竞争中失败。


我们可以在「回路竞争」 框架下去思考很多 LLM 模型的问题和现象,并给出解释,本文稍后内容会用这个猜想解释一些目前 LLM 模型未知的一些现象。


模型规模的差异:更大的模型,更清晰的世界



根据目前已有研究结论,如果思考大 LLM 模型和小 LLM 模型的差异,我们大致可做如下推断:小 LLM 模型建立了一个粗粒度的、模糊的世界图像,而随着模型规模越来越大,大 LLM 模型建立起能表征更多细节信息的清晰度越来越高的世界图像。


由上文所述可知,LLM 模型的表征能力主要体现在两个方面:从具体到抽象的层级知识结构,以及可以解决很多问题的任务回路。我们从这两方面分头看下大小模型的差异。


层级知识结构的差异:很多研究结论证明了随着模型规模增大,模型稀疏程度越来越高。Polysemantic 神经元对特征编码是稠密的,用于编码大量相对具体的特征,而 Monosemantic 神经元属于单神经元表征是稀疏的,这说明随着模型规模越来越大,单语义神经元数量占比增加。单语义神经元编码重要的及抽象的知识,既然单语义神经元数量增加了,说明模型学到的知识点肯定是增加了,新增知识点无非两个来源可能:第一种来源是这个知识原先小模型没有学到,现在大模型学会了,从无到有地学会了新知识。这类新知识应该可再细分为两类:一类应该是世界知识(常识和事件),小模型无法编码在数据中出现频次比较低的世界知识,大模型通过单语义神经元对此进行了编码(大模型相比小模型能学到更多数据中的低频知识,这一点有很多工作可验证,且目前看世界知识应该是单神经元编码的),这类知识代表大模型学会了更多有关世界的细节信息;一类应是模型从数据中新归纳的更抽象的知识(比如 「质数」这种),这类知识代表大模型学会了越来越复杂的抽象知识或能力。


新增知识点的另外一种来源,应该是由前文讲过的抽象特征进行特征分裂产生的。就是说原来小模型只有一个粗粒度的抽象知识点,现在模型大了,衍生出一些新的细粒度的表征这类知识的知识点,针对不同的上文 Context 可能会学到对应的一个知识点。举个例子,目前发现 LLM 中有针对连续大写字符产生响应的单语义神经元,比如输入中有「ABCD」,这个神经元就会被激活。小 LLM 模型可能只有唯一神经元对此进行响应,如果把这个神经元灭活,则 GPT 在做 NTP 预测下一个 Token 的时候 Loss 就会激增,说明缺了这个特征对于正确预测后续内容中连续大写字符都产生了错误;但是,大 LLM 模型除了这个神经元,还分裂出细粒度表征神经元,比如针对公司名字缩写「IBM」这类可能有一个神经元专门负责响应,针对医药名称缩写,比如「GS (葡萄糖注射液)」 ,有另外一个神经元负责响应。诸如此类。这种大模型的抽象特征分裂,说明了一点:即使是抽象知识,大模型相比小模型也有更细致的抽象特征表达能力。


可以看出,大模型相对小模型,从对低频世界知识的编码角度,可以认为学到了关于世界更多的细节信息,而从新增抽象知识以及抽象特征分裂角度,说明大 LLM 模型具备更难的以及更细粒度的抽象知识表达能力。


任务回路的差异:任务回路是建立在形成层级结构的知识点之间由底向上激发并联通的回路。由上面对大小模型在层级知识结构差异的分析,可以作出合理推断:大 LLM 模型大概率能够建立在路径上涉及更多细粒度抽象知识点以及路径更复杂的回路。这大概是大模型可以解决复杂问题的主要原因。


综合两者,我们可以认为小模型是对世界的粗粒度建模,而大模型是对世界的细粒度高清建模。而且 Scaling law 说明了:随着增加更多的数据、更大的模型规模,LLM 模型可以对世界进行清晰度更高的刻画。从这个角度看,说 LLM 模型参数是对世界的有损压缩,其实并没有什么大问题。



无尽的前沿:使用「回路竞争」 解释未知现象


本部分我们在「回路竞争」框架下,给出目前 LLM 模型一些现象的解释。


「回路竞争」视角下的模型涌现能力


模型涌现能力,指的是对于某些任务(大多数是 In Context Learning 或 COT 相关的任务),小模型几乎完全没有解决能力,只有当模型规模达到某个临界点,才能很好地完成这个任务。尽管目前有研究(可参考 Are Emergent Abilities of Large Language Models a Mirage?)表明:模型所谓的 「涌现能力」,是度量标准选择不合理造成的,其实并不存在涌现,只是任务选择的度量标准不够精准而已。我个人认为,这个说法应该确实能够解释一部分目前体现出「涌现能力」的任务,但感觉这可能不是故事的全部,有些任务可能很难仅仅通过这个原因来解释,所以对于大语言模型为何会出现涌现能力,还是应该做更进一步的研究。


如果在「回路竞争」框架下看这个问题,那么小模型之所以做不了某个任务,无非有两种可能:一种可能是对小模型来说,这个任务对应的激发回路没有建立起来,而大语言模型建立起来了;另一种可能是小模型这个任务对应的回路也建立起来了,但是在回路竞争中非常容易失败,导致看似做不了这个任务。


我更倾向认为是第一种可能造成我们目前看到的模型「涌现能力」。前文有述,小模型大概建立了一个粗分辨率的模糊的世界镜像,而大模型则建立起一个高分辨率清晰度更高的世界镜像。小模型应该在建立某些任务的完整激发回路存在困难,这些困难可能体现在几个方面:比如对形成回路很关键的某个或者某些,比较抽象的概念知识点,小模型因为抽象能力比较弱,没有建立起这个知识点(类似本文开头举的「质数」 概念的例子);再比如,一般能体现涌现能力的任务都比较复杂,小模型在建立复杂通路方面能力不足。诸如此类。而当模型规模变大,则在抽象概念以及复杂回路构建方面能力得到增强,当建立起完整的解决任务的激活通路时,就看似突然能够解决这个问题,体现出模型的涌现能力。不过,很可能对于这种复杂回路,在激活竞争方面能力也不足够强,所以当再辅助以 Few shot 几个任务相关例子,以此来促进任务对应的回路在通路竞争中胜出时,才能看到比较好的解决效果。


相关文章
|
10天前
|
人工智能 测试技术 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在移动设备上的应用,增强了用户隐私和体验。虽然目前仅发布技术报告,但源代码和权重即将开放下载。
35 1
|
4月前
|
SQL 人工智能 关系型数据库
【开源项目推荐】-支持GPT的智能数据库客户端与报表工具——Chat2DB
【开源项目推荐】-支持GPT的智能数据库客户端与报表工具——Chat2DB
218 1
|
9月前
|
机器学习/深度学习 数据采集 人工智能
150亿参数、一次通过率超60%,华为代码能力超GPT3.5的大模型来了
150亿参数、一次通过率超60%,华为代码能力超GPT3.5的大模型来了
135 0
|
11月前
|
人工智能 安全 自动驾驶
GPT-4是8x2200亿参数的混合模型?这个小道消息今天传疯了
GPT-4是8x2200亿参数的混合模型?这个小道消息今天传疯了
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
世界的参数倒影:为何GPT通过Next Token Prediction可以产生智能(1)
世界的参数倒影:为何GPT通过Next Token Prediction可以产生智能
190 0
|
12月前
|
机器学习/深度学习 存储 自然语言处理
世界的参数倒影:为何GPT通过Next Token Prediction可以产生智能(2)
世界的参数倒影:为何GPT通过Next Token Prediction可以产生智能
213 0
|
前端开发 JavaScript 安全
JavaScript 权威指南第七版(GPT 重译)(七)(4)
JavaScript 权威指南第七版(GPT 重译)(七)
25 0
|
前端开发 JavaScript 算法
JavaScript 权威指南第七版(GPT 重译)(七)(3)
JavaScript 权威指南第七版(GPT 重译)(七)
35 0
|
前端开发 JavaScript Unix
JavaScript 权威指南第七版(GPT 重译)(七)(2)
JavaScript 权威指南第七版(GPT 重译)(七)
43 0
|
前端开发 JavaScript 算法
JavaScript 权威指南第七版(GPT 重译)(七)(1)
JavaScript 权威指南第七版(GPT 重译)(七)
61 0