
斯坦福大学CS25:大语言模型推理(Reasoning)
核心观点
1. 大语言模型推理的定义
常规观点:大语言模型(LLM)的推理被视为类似人类的高级能力,定义模糊,常引发争论。
Zhou的观点:推理争论因缺乏明确定义而无意义;Zhou将推理定义为输入与输出之间的中间Token(推理步骤),仅是模型输出的可预测行为,而非神秘过程。
2. 预训练模型的推理能力
常规观点:预训练模型需通过思维链(CoT)提示或微调才能具备推理能力。
Zhou的观点:预训练模型已具备推理能力,推理路径存在于输出空间中;问题在于解码方式,例如通过探索更多候选而非贪心解码即可挖掘推理,无需额外提示或微调。
3. 思维链提示的作用
常规观点:思维链提示通过教模型逐步思考来启用或增强推理能力。
Zhou的观点:思维链提示不增加推理能力,而是重塑输出分布,将已存在的含推理步骤的响应提升至首位,使贪心解码可直接选择,属于解码优化而非能力增强。
4. 机器生成数据优于人类数据
常规观点:人类标注数据是微调模型的最佳选择,尤其适用于复杂推理任务。
Zhou的观点:在迭代微调中,机器生成的数据优于人类数据,因其分布更贴近训练目标,直接优化输出质量(如数学问题的正确性),符合机器学习第一原理。
5. 推理扩展的方向
常规观点:提升推理能力主要靠扩大模型规模(如参数数量)。
Zhou的观点:理论表明,固定大小的Transformer模型通过生成足够长的思维链(中间Token)即可解决布尔电路问题,扩展推理步骤长度而非模型规模是关键方向。
6. 自一致性的适用条件
常规观点:自一致性(Self-Consistency)是一种通用技术,通过多次采样并选择最常见答案提升模型可靠性。
Zhou的观点:自一致性仅在模型生成中间推理步骤时有用,通过对推理路径的概率边缘化选择最可能答案;若直接输出答案,只需查看模型概率,无需自一致性。
7. 推理无需依赖搜索
常规观点:推理任务(如数学或逻辑问题)依赖类似经典AI的穷举搜索。
Zhou的观点:LLM推理从Token到Token的预测中涌现,无需显式搜索;学习是可扩展的核心,搜索仅作为辅助工具而非推理本质。
8. 迭代微调的局限性
常规观点:迭代微调是提升推理能力的通用方法,适用于大多数任务。
Zhou的观点:迭代微调依赖自动验证器,仅适用于可验证任务(如数学),对不可自动验证的任务(如创意写作)效果有限,限制其通用性。
9. 验证器的重要性
常规观点:强化学习算法(如PPO)是提升推理能力的关键技术。
Zhou的观点:验证器是迭代微调和AI训练的核心,远超复杂算法的重要性;可靠验证器决定数据质量和模型性能,是AI成功的基石。
10. AGI时间表的怀疑
常规观点:AI社区普遍乐观,认为通用人工智能(AGI)可能在2-5年内实现。
Zhou的观点:Zhou对AGI在短期内实现的说法持怀疑态度,认为当前方法有显著局限,真正的挑战是避免研究停滞而非过快达到AGI。
大语言模型推理(Reasoning)的定义
很高兴看到大家已经认为LLM很强大。你们可能会好奇,我对LLM是否能推理的看法是什么?我的答案是:这取决于推理(reasoning)的定义。今天我们将围绕一个具体的推理定义展开讨论。我从不参与关于LLM能否推理的争论,因为没有明确的推理定义,这些讨论毫无意义。在LLM推理中,我们特指输入与输出之间的中间Token(intermediate tokens),这些Token被称为推理或中间步骤。
这个概念并不新鲜。早在2017年,Deman发表了一篇论文,探讨如何利用中间Token解决数学问题。当时,学术界对AlphaGo和AlphaZero的热情高涨,但这篇论文极具开创性。如果你还没读过,我强烈推荐一读。他们引入了自然语言来解决数学问题,而当时文献中普遍采用符号方法或搜索。这在神经符号(neurosymbolic)研究中也很常见,通常使用中间过程来解决推理问题。
举个例子说明LLM推理的用法。当我在Google Brain创立推理团队时,我设计了一个任务:Last Letter Concatenation(末字母拼接)。这个任务作为激励示例,可以用Transformer模型解决。例如,输入“artificial intelligence”,输出是将每个单词末字母拼接的结果。如果没有推理过程,模型可能直接输出“LE”。但若有推理过程,模型会输出:“‘artificial’的末字母是L,‘intelligence’的末字母是E,拼接L和E得到LE。”这里高亮的文本就是推理(reasoning),这就是我所说的推理。
如果你熟悉程序合成或神经符号推理,这个任务设计并不意外。我也尝试过其他方案,比如拼接首字母,但所有大型模型都能轻松解决,因为网上有大量首字母拼接的例子,模型早已学会。但当我改为末字母拼接时,所有模型都失败了。很多人会说:“这很自然,我们需要中间步骤,就像人类一样。”如今LLM看似与人类很像,但作为研究者,我们要牢记:LLM只是预测模型(predictive models),不是人类。保持这个认知有助于理解许多新技术。
推理的理论基础
为什么中间Token或推理重要?我们与斯坦福的Tima教授及其学生合作开展了理论研究。研究表明,对于任何可以用大小为\( T \)的布尔电路解决的问题,固定大小的Transformer模型通过生成\( O(T) \)个中间Token即可解决。这是一个强有力的结果。这里的“大小”指逻辑门的数量。例如,若使用GPU集群,\( T \)可能达到百万、十亿甚至万亿。如果直接生成最终答案,模型要么需要极深的网络,要么根本无法解决问题。这就是我们从理论角度理解推理的依据,后续我会再回到这个理论论点。
解码与思维链推理
有一种普遍观点认为,预训练模型(pre-trained models)若不经过CoT提示(Chain-of-Thought prompting)或微调(fine-tuning),无法进行推理。过去,大家热衷于讨论微调。这种观点正确吗?你们同意吗?我认为这是错误的,非常错误。预训练模型已经具备推理能力,我们需要的只是解码(decoding),仅与解码过程相关,无论那些技术看起来多么复杂。
举个例子:我有三个苹果,我爸比我多两个苹果,我们总共有多少个苹果?如果你用预训练模型(如LLaMA、DeepSeek或Chinchilla,我没试过这些模型),输入这个问题,模型很可能会输出“5个苹果”。显然,这个答案是错的。这是因为默认使用了贪心解码(greedy decoding),问题出在解码方式上。
如果查看第一个Token的第二候选(因为词汇表很大),继续解码,你会看到:“我有三个苹果,我爸比我多两个苹果,所以他有五个苹果,3 + 5 = 8。”完美,对吧?我们只需探索更多候选。另一个选择是第一个Token的第三候选“we”,解码后得到:“我们总共有八个苹果。”这也正确。第四候选可能是“you”,继续解码,依然能看到正确的CoT推理,最终答案正确。第五候选可能是“five”,那是错误的。
可以看到,推理路径(reasoning path)已经存在于输出空间(output space)中。特别是,第二和第四个回应基于CoT推理。问题在于如何选择最佳回应。你可能认为可以根据输出长度选择,因为包含推理Token的输出更长。但我们有更好的方法:根据答案置信度(answer confidence)选择。置信度指模型预测Token的概率。对于包含CoT推理的回应,最终答案Token的置信度远高于其他。例如,对于“8”这个Token,模型置信度接近98%,这在巨大词汇表中非常高,通常每个Token的概率几乎为零。
这个过程称为Chain-of-Thought Decoding(思维链解码),包含两步:
1. 超越贪心解码,检查更多生成候选;
2. 选择最终答案置信度最高的候选。
CoT解码方法简单,但仍需编程实现。听说过去大家只想用自然语言,不写代码。当然,你们是例外。所以我们想:能否重塑模型的输出分布,让深思熟虑的回应自然排在首位?如果CoT回应排在首位,贪心解码就能自然找到它。
思维链提示
现在来看CoT提示(Chain-of-Thought prompting)。如果你了解CoT提示,就能明白其工作原理。这是一个简单方法。给定一个问题,你可能用一个相似问题作为示例,放在问题前,模型就会神奇地模仿推理风格,生成逐步解决方案。现在可以理解CoT提示为何有效:它改变输出分布,将输出空间中原有的CoT解决方案推到首位。
还有更简单的方法:“Let's Think Step by Step”(让我们一步步思考)。这在推理研究中是个惊艳的工作。论文发布时,我以为是玩笑,怎么可能?当时Google Brain团队开发了PaLM模型,我在PaLM上试了这个方法。我知道PaLM的构建过程,绝对与这个“魔法”无关。但结果它竟然有效,我非常震惊。这篇论文极大启发了我的推理研究。
这些提示方法简单,且确实有效,但也有缺陷。CoT提示需要特定任务的示例,我对此不太满意。如果我知道相似问题,我自己就能解决,为什么还要问别人?“Let's Think Step by Step”更通用,无需找相似示例,只需说“让我们一步步思考”,魔法就出现了。但遗憾的是,其表现比少样本提示(few-shot prompting)差得多。两种方法看起来都不错,但如果我问问题还得说“请一步步思考”,否则对方不会思考,这不符合预期。
监督微调
如何解决?一种流行方法是监督微调(Supervised Fine-Tuning, SFT)。思路简单:收集一组问题及其人类标注的逐步解决方案,然后最大化人类解决方案的似然(likelihood)。对于LLM训练,这只是最大化似然,之后模型可广泛应用。
我提到2017年的Deman论文,他们正是这样做的:收集数学字面问题及人类标注的逐步解决方案,训练序列模型解决数学问题。2021年,OpenAI进一步扩展此方法,构建了更大的数据集GSM8K(小学数学问题),用它微调GPT-3模型。
举例说明:可以用Last Letter Concatenation或苹果数学问题作为训练数据微调模型,然后用新问题测试,如“草莓里有多少小时?”我特意选这个问题,因为社交媒体上很多人认为这是测试AGI是否到来的好问题。
SFT是个通用的方法,一旦训练好模型,就能广泛应用。如果这能解决推理问题,我的讲座到此结束——收集更多斯坦福的优秀示例,训练模型即可。但实际上,SFT泛化能力不佳。2021年夏天,我们发现SFT在推理任务上表现不佳。怎么办?扩展,扩展,再扩展——获取更多数据训练模型,看效果如何。教训是:不要盲目扩展。一旦范式错误,无论如何扩展,都无效。
迭代微调与自我改进
如何解决SFT的泛化失败?看看SFT流程:仅两步。问题出在哪?出在人类数据上。如果你之前不知道,会很惊讶。如果人类数据有问题,Scale AI怎么赚钱?我团队的一员发明了迭代微调(Iterative Fine-Tuning)。他告诉我,机器生成的数据可能比人类数据更适合训练,我一开始非常惊讶。
首个尝试称为Self-Improve(自我改进)。不再从人类收集数据,而是让模型生成数据。收集一组问题,让模型生成逐步解决方案,然后最大化正确答案的似然。对于数学问题,你可能知道最终答案,但不知道逐步解决方案。模型生成解决方案后,检查答案正确性:正确则选用,错误则丢弃。然后用此数据集微调模型,与SFT类似,唯一区别是数据来自模型而非人类。
这一方法由Eric、Tony和Noah提出,论文名为STAR,非常出色。STAR论文最初考虑用此方法节省标注成本,因为人类标注成本高。但后来我们从不同角度理解:一旦训练数据由更优模型生成,模型就能自我改进。改进后,再次收集数据,重复此过程。这就是迭代微调。
我列了一篇2024年1月由BAAI研究者发表的论文,标题为“Reasoning with Reinforced Fine-Tuning”,这是我注意到的最早学术出版的迭代微调研究。在OpenAI流行后,大家开始公开讨论迭代微调。我相信多家机构独立发现了这个简单但非常有效的想法。
在这个训练循环中,验证器(verifier)至关重要,用于判断哪个回应正确。因为我们知道最终答案,只需用它选择正确的推理路径。可靠的验证器是迭代微调的核心,而非算法。我知道很多人讨论不同的算法,如PPO或强化学习的各种变体。如果有人发现显著优于其他的方法,请告诉我,我可能错过了什么。我很喜欢Richard Sutton的说法:“验证:AI的关键”(Verification: The Key to AI),这是他2021年的文章标题。
为什么用模型生成的数据而非人类数据?不仅仅是为了节省成本,而是为了性能。有人有想法吗?
观众:是CoT结构的连贯性,还是人类解决问题方式的多样性?
Denny Zhou:模型生成的数据分布更接近训练目标,训练更有效。这与机器学习的第一原理相关:直接优化我们想要的目标。
推理优化的数学原理
若要构建推理或生成有趣内容的模型,需优化衡量生成质量的指标。指标因任务而异,例如数学问题的正确性、机器翻译的BLEU分数或生成质量。有了指标,计算其梯度并进行反向传播。数学上,我们定义一个函数\( R \),给定问题和模型参数\( \theta \),衡量回应质量。\( R \)可以是正确率、BLEU分数或任何目标。然后计算梯度,最大化指标的期望值。
为此,需通过采样计算期望,这就是策略梯度(policy gradient)的由来。如果你理解数学原理,就没啥神秘的。有人说要激励模型思考或推理,我不用这些词,我用标准的机器学习术语:定义指标,计算梯度,反向传播。
一旦找到有效路径,就需扩展方法。有趣的是,对于这种微调方法,我们扩展输出长度或CoT长度。也可以扩展模型深度,因为分析表明,只要CoT足够长,模型几乎能解决所有可计算问题。这很惊人——无需扩展模型大小,只需最小固定大小的Transformer模型。
类人推理的涌现
我想强调LLM推理的美妙之处:类人推理过程从Token到Token的预测中涌现,而非依赖经典AI的穷举搜索。Garry Kasparov在1997年输给Deep Blue后说:“Deep Blue的智能就像程序化的闹钟。”我同意,但LLM推理不同,我们不做显式搜索。讲座前,有人引用了我的推文,说搜索已无关紧要,我很高兴听到这个。实际上,我用了你的代码,发现搜索仍有用途。
举个例子说明LLM推理与经典AI的区别。2024年12月,Google发布Gemini 2.0 Thinking Mode(思考模式)。虽然2.5 Pro更强大,但我选这个模型有原因。模型发布后,我试了一个2025年的数学问题,确保不在训练集中:“用1到10的数字组成2025,每个数字用一次,仅用加法和乘法。”可以用Python写穷举搜索程序得到结果。看看模型的思考过程。
Gemini模型支持查看思考过程,非常有趣。一开始,模型说:“2025是个大数,暗示乘法占主导。”这很像人类思维。它注意到2025是45的平方(45 × 45)。我设计问题时没意识到这点,这是重要线索。模型开始思考如何用乘法得到接近2025平方根(45)的大中间结果。思考过程很长,这正是我们微调时使用长CoT的原因。最终,模型给出答案:“(10 × 4 + 5) = 45,45 × 45 = 2025。”太棒了,无需任何搜索。
还有一篇关于CoT提示的论文,提到Game 24问题。这个问题比Game 24难得多。他们结合搜索和提示解决,但现在完全不需要,模型仅用自然语言就能解决Game 24。这就是迭代微调的强大之处。
我想再次引用Richard Sutton:“基于已有发现构建,只会让发现过程更难看到。”他在加入Google DeepMind,看到AlphaGo和AlphaZero的成功后说,只有学习和搜索是可扩展的。但我强调:学习是可扩展的,我们只需学习。
迭代微调的局限性
迭代微调的巨大优势是泛化能力强,但仅适用于可自动验证的任务,因为训练循环需要验证器,无法纳入人类验证。并非所有任务都可自动验证。有人能举例说明不可验证的任务吗?
观众:创意写作。
Denny Zhou:很好的例子。这是当前微调的重大限制。我知道很多人致力于改进RL算法。我希望看到更多研究解决不可验证任务,如创意写作或编码。有人说AI几年内会解决编码问题,但我认为很具挑战性。他们说的是竞技编程,不是日常编程。我们关心设计、可读性和协作,而不仅是最终答案。
自一致性与聚合
所有想法始于CoT解码:推理路径已存在于输出空间,我们只需重塑输出分布,让贪心解码找到它。然后讨论了CoT提示和“Let's Think Step by Step”,它们重塑输出分布,接着是SFT和迭代微调,非常强大。但我们仍有改进空间。
我想谈两个关键思路:聚合(aggregation)和检索(retrieval)。我们看到LLM很强大,但生成推理Token然后输出最终答案的解码范式有问题。看起来很自然,对吧?给定问题,生成中间Token,然后是最终答案。有人看到问题吗?
观众:挑战在于模型预测下一个Token的方式,导致结果与预期不一致。
Denny Zhou:模型最初设计仅为预测下一个Token。我们要记住,LLM是预测模型,不是人类。
数学上,LLM解码做什么?给定问题,生成推理,然后最终答案,通过贪心解码找到回应。贪心解码意味着最大化概率。但我们需选择最自信的答案,二者不一致。简单的条件概率数学很有用,理解解码过程。我们可以修复:生成推理路径后,需对所有推理路径求和,计算最终答案的概率。这在机器学习中称为边缘化(marginalization),推理路径本质上是隐变量。
这启发了自一致性(self-consistency)方法:通过随机采样生成多个回应,选择出现最频繁的答案。例如,数学问题采样多次,第一个回应可能是“18”,第二个“26”,再次“18”,选择最频繁的。这正是概率边缘化的实现。我们不看推理路径,只选最频繁的答案,而非最频繁的推理路径,这是关键。
实证上,自一致性显著提升性能。在GSM8K问题上,微调的GPT-3模型准确率33%,OpenAI用验证器达到55%。PaLM模型加CoT得到58%,与验证器相当。但应用自一致性后,准确率跃升至75%,相对提升近50%。PaLM 2甚至达到92%。o1模型(去年10月发布)通过聚合得到66.4%,自一致性仍有显著提升。
采样更多回应成本更高,但这是推理时扩展(inference-time scaling)的一种方式。推理时扩展有很多方式,如延长CoT也增加推理时间。有人说推理时扩展,我得知道具体扩展什么。自一致性显然是一种扩展方式。
自一致性天然自校准(self-calibrated)。一致性越高,准确率越高。在GSM8K上,自一致性超80%时,准确率接近100%。关心预测不确定性或置信度的人可以多次采样。
确保大家理解自一致性的关键:
1. 当LLM不生成中间步骤直接输出答案时,我们多次采样,选择最常见答案。有人有想法吗?
观众:可以直接获取概率。
Denny Zhou:对,就像经典机器学习,用逻辑回归得到\( P(y|x) \),最大化概率。这就是传统机器学习文献中看不到自一致性的原因,它没必要,仅对推理有用。
2. 可否改自一致性,让LLM生成多个回应而非多次采样,然后选最常见答案?可以试试。这称为最大边缘推理(maximum marginal inference),选择概率最大的最终答案。数学是我们所需的一切。
自一致性有个问题:假设答案是单个Token。对于一般问题,答案可能不同。我们扩展为Universal Self-Consistency。例如,某问题第二个回应是“日本、中国、印度”,因这些国家在其他答案中出现最多,被选为最一致回应。
推理中的检索
另一个方法是检索。关于推理的争论很多,有人说:“或许只是检索,而非推理。”我在社交媒体上看到这些争论。对我来说,区分检索和推理很难。主持会议时,我们讨论每篇论文的新颖性,与检索-推理争论类似。
观众:我试过并行运行不同模型,如Gemini 2.5,四个模型同时回答同一问题,然后用验证器找最一致结果。
Denny Zhou:对,这更像集成模型(ensemble model),类似随机森林。数学原理与自一致性不同,但实现类似。好观点。
我不关心检索与推理的争论。我在工业界,只关心性能。对我来说,检索加推理最好,何必争论?2024年我们发表了关于类比推理(analogical reasoning)的论文。举个小例子说明检索在推理中的重要性:“求一个正方形四顶点的面积……”我加了提示:“回忆一个相关问题,然后解决这个问题。”当时我试了GPT-3.5和我们自己的模型,都失败了。加了提示后,模型解决了。它找到相关问题——计算坐标平面两点间的距离,然后用公式计算距离和面积。
另一个例子是物理问题的Step-Back(回退)。解决前,给予少样本示例,指导模型回退,考虑更抽象的问题,获取原理,然后解决。这就是检索在推理中的作用。现在大家知道Deep Research(深度研究),原理相同。我们有Gemini Deep Research,OpenAI也有。OpenAI的Deep Research负责人是我之前的实习生,博士毕业后加入OpenAI,发明了Deep Research。基本思路简单:找到相似问题或知识解决问题。
总结与未来方向
别纠结LLM能否推理的争论。有推理总比没推理好。迭代微调优于SFT。聚合多个答案优于单一答案,尽管成本更高。检索加推理优于单独推理。
未来突破,我想看到如何解决非唯一可验证答案的任务。过去,我也希望看到人们构建真实应用,而非仅解决基准测试。我认为所有基准测试很快会饱和。你们对AGI或构建热情高涨,我想引用Richard Feynman:“真相总是比你想的更简单。”这在研究中尤其正确。我看到很多学术论文试图复杂化,所以我尽量让讲座简单——确实很简单。就这样。
问答环节
观众:你提到置信度,通常是取输出Token序列的平均对数概率。你认为有更好的方法吗?这对幻觉(hallucination)是好指标吗?
Denny Zhou:我说的置信度是指生成条件的概率。可以查看模型的log probs,看到概率。从实证观察,推理路径后,最终答案的置信度大幅提升。
观众:你提到Richard Sutton说扩展学习和搜索,但你认为扩展学习就够了。能否展开为什么搜索不那么必要?
Denny Zhou:我得更具体。构建模型时,不必考虑搜索。模型建成后,搜索可作为工具使用的一种特例,如CoT提示整合符号搜索。对于推理研究,我关心基本能力。模型可写Python程序用搜索解决问题,但推理过程无需搜索。
观众:若无推理,你说无需采样,因为可查看logits。但如果最可能的下一个Token导致分布扩散,而较不可能的Token导致更尖锐分布,采样不会收敛于不同分布吗?
Denny Zhou:好问题。我们仍不清楚训练中分布如何重塑,很不明确。很难回答,因为我们对最终分布缺乏好的解释。
观众:如何区分推理和答案?需要从最终输出字符串提取数字吗?如果答案是程序怎么办?
Denny Zhou:好问题。如果答案是程序,提取更难。所以人们用微调解决数学或竞技编程问题。对于一般情况,需为最终答案写小心解析器。如果问题很具挑战,低置信度答案可能是正确的,自一致性不完美。
观众:考虑到AGI可能在2-5年内到来,若90%工作自动化,你会培养孩子哪些技能让他们生存?
Denny Zhou:大问题。谁说AGI五年内到来?去年ICLR有人问AI风险,我说最可怕的是我回不去丢了工作。当前方法有很多限制。我真想看到AI研究的真正杀手级应用。AI模型擅长编程,是编码的好助手,但我只知道这些。
本文转载自Andy730,作者:常华
