Cohere团队的最新研究揭示,LLM的推理能力并非源于对预训练数据的简单检索(即先前普遍认为的“近似检索”),而是源于对程序性知识的学习和应用,类似于人类从示例中学习通用解题方法。 这意味着LLM像学习通用程序一样,从数据中提取推理模式,而不是死记硬背答案。这一发现推翻了以往的“近似检索”假设,并指明了未来LLM训练的新方向:专注于高质量的程序性知识,而非追求数据规模的无限扩张。 更令人惊讶的是,不同规模的模型(例如7B和35B)似乎从相同数据中学到了不同的信息。
LLM推理机制的探索
大型语言模型(LLM)的推理能力一直是人工智能研究的热点和难点。理解LLM如何进行推理,不仅有助于我们更好地利用LLM的强大能力,也对未来AI的设计和发展至关重要。以往的假设认为,LLM主要通过近似检索的方式进行推理,即从庞大的预训练数据中检索与问题相关的知识片段,并将它们组合成答案。换句话说,社区普遍存在一种假设:当LLM进行推理时,它们执行某种形式的近似检索,从预训练形成的参数化知识中“检索”中间推理步骤的答案,而不是进行“真正的”推理。
然而,Cohere团队的最新研究挑战了这一观点。他们发现,程序性知识,而非简单的检索,才是LLM推理能力的关键。 这项研究为我们理解LLM的推理机制提供了新的视角,也为未来LLM的训练和优化指明了新的方向。
问题:LLM如何进行推理?
LLM究竟是如何进行推理的?是像搜索引擎一样检索信息,还是像人类一样运用逻辑和推理?这个问题一直困扰着研究者。 Cohere团队的研究旨在探究LLM的推理机制,并明确LLM是如何从预训练数据中学习推理的。 他们的研究重点关注数学推理任务,以此来探究LLM是否真正进行推理,还是仅仅检索记忆的答案。研究的核心问题是:LLM如何从预训练数据中学习推理?
背景:EK-FAC影响函数的应用
为了探究LLM的推理机制,Cohere团队使用了一种名为EK-FAC影响函数的方法。这种方法可以估计预训练数据中的每个文档对模型输出的影响程度,从而揭示哪些知识对模型的推理过程至关重要。EK-FAC影响函数就像一个显微镜,可以帮助我们放大观察预训练数据对模型推理的影响,并找出对模型推理影响最大的关键信息,就像在代码调试中找到关键代码行一样。
实验设置:数据与模型
本研究使用了Cohere的Command R 7B和35B两种不同规模的模型,并选取了**500万个文档(25亿token)**作为预训练数据的样本,确保这些文档与预训练分布相同。研究人员设计了三类问题:事实问题、重点研究的推理问题(包括两步算术[仅限7B模型]、计算两点间斜率[7B和35B模型]和解线性方程[仅限35B模型]) 和控制问题。控制问题用于排除格式等无关因素对实验结果的影响。 之所以选择数学推理任务,是因为这类任务的推理步骤清晰可控,便于分析LLM的推理过程。
推理问题示例(图1):
两步运算(7B模型)示例(图2):
计算斜率(7B和35B模型)示例:
解线性方程(35B模型)示例:
事实问题示例(图6):
研究结果:程序性知识驱动LLM推理
Cohere团队的核心发现是:LLM的推理方式更像是程序性泛化,类似于人类学习通用解题方法,而不是简单地检索预训练数据中的答案。 LLM并非简单地记忆和匹配答案,而是学习推理过程。
定量结果:程序性知识的证据
泛化能力分析:相同任务,不同数据
研究人员通过计算不同问题之间文档影响得分的Pearson相关系数,发现相同推理任务的不同问题之间存在显著的正相关(图7),这表明模型学习到了可泛化的程序性知识。即使问题中的具体数值不同,模型也能应用相同的推理程序解决问题。
7B vs 35B:模型规模的影响
35B模型在斜率计算任务上表现出更强的泛化能力,这表明更大的模型能够更好地学习和应用程序性知识。 然而,令人惊讶的是,7B和35B模型从相同数据中学到的信息几乎没有相关性。
依赖性分析:弱依赖性,强泛化
与事实问题相比,推理问题对单个文档的依赖程度更低,影响分布更分散(图8),这再次证明了程序性知识的重要性。 模型并非依赖于检索单个文档的信息,而是从多个文档中学习并综合应用程序性知识,从而实现程序性泛化。
7B vs 35B:模型规模的影响
35B模型对单个文档的依赖程度更低,这再次印证了更大模型的泛化能力更强。这暗示着模型规模的提升有助于LLM更好地学习和利用程序性知识,并减少对单个文档的依赖。 35B模型在事实问题上的影响力数值更大且波动更大,表明其从更少但更相关的文档中学习。 (图9)
定性结果:程序性知识的深度解读
答案依赖性分析:并非简单的答案匹配
研究人员发现,事实问题的答案在高影响力文档中出现的频率较高,而推理问题的答案则很少出现(图10)。这再次证明LLM的推理并非简单的答案匹配,而是基于程序性知识的推理过程。
7B vs 35B:模型规模的影响
35B模型对答案的依赖程度更低,这与其更强的程序性泛化能力相符。
影响因素分析:代码和公式是关键
对高影响力文档的分析表明,这些文档通常包含与推理过程相关的程序性知识,例如代码、数学公式等。 这表明LLM能够从代码和公式中学习推理步骤和方法,印证了程序性知识的重要性。
7B vs 35B:模型规模的影响
35B模型更倾向于利用程序性知识,这再次体现了更大模型的优势。
数据源分析:程序性数据源的影响更大
研究发现,代码、StackExchange、ArXiv 和 Markdown 等程序性数据源对推理问题的解决有显著的正面影响,而Wikipedia 和 Trivia 等数据源则对事实问题的回答更有影响 (图11 & 12)。这表明不同类型的数据对不同类型的任务有不同的影响,为构建更有效的预训练数据集提供了重要指导。
7B vs 35B:模型规模的影响
35B模型能够更好地利用不同数据源的知识,这体现了更大模型的学习能力更强。
结论:程序性知识的未来
Cohere团队的研究揭示了程序性知识在LLM推理过程中的关键作用,推翻了以往认为LLM主要依赖检索进行推理的观点,并为未来LLM的训练和优化提供了新的思路:专注于高质量的程序性知识,例如代码、公式等。 未来的研究可以进一步探究程序性知识的学习机制,以及如何将程序性知识与其他类型的知识结合起来,以构建更强大的LLM推理系统。
相关链接
• 论文:https://arxiv.org/pdf/2411.12580 • Demo: https://lauraruis.github.io/Demo/Scripts/linked.html