对应 Maps to:Stanford CS486 Advanced Large Language Models Research Seminar 的课程描述全文——“…hands-on experience in conducting original research at the frontier of Large Language Model advancement toward AGI capabilities. Students will design, implement, and evaluate novel approaches to enhance LLM reasoning, planning, and multi-agent collaboration.” 依据说明:CS486 在 Stanford Bulletin 里只有课程描述、先修和推荐准备,没有列出授课教师;课程网站在编写时(2026-10)不存在公开页面,没有日程、slides、阅读清单或录像。本讲依据课程描述和公开的研究文献来写:思维链的理论与实证工作、推理”还是捷径”的探针研究、规划基准(PlanBench)、多智能体系统的研究与失败分析、AGI 的定义与衡量,以及研究方法论的经典文章。§3、§4、§8 的实验是本讲义自己设计的,数字全部来自配套代码的实际输出。 配套代码 Code:
code/lecture01/(PyTorch + 标准库;4 个脚本 + 4 个共享模块;第一次运行四个脚本共约 5 分钟(训练 8 个小模型并缓存),之后每个几秒钟;可选的02 --deep再约 7 分钟) 预计阅读时间:4–5 小时(含运行代码)
0. 本讲导航 · How to read this lecture
0.1 学习目标 Learning goals
学完这一讲,你应该能够:
- 说出这门研讨课研究的三种能力——推理、规划、多智能体协作——各自的含义,以及为什么它们是今天的 LLM 和”通用智能”之间最常被讨论的缺口;能举出 2024–2026 年”参差不齐的前沿”的具体例子。
- 用 Transformer 的计算图解释:一次前向计算的串行深度是固定的;填充 token 增加的是并行计算量,思维链(chain-of-thought, CoT)增加的是串行深度。能复述 CoT 表达能力理论的结论(并说出它的局限)。
- 区分”模型表达不了”(expressivity)和”模型学不会”(learnability),并用本讲的实验各举一个例子。
- 解释为什么”分布内满分”不能证明模型学会了推理;会设计扰动探针和控制变量的实验来区分算法和捷径;知道”欠定”(underspecification)和”答案对、推理错”是什么意思。
- 概述 LLM 规划的现状(PlanBench 上 o1 的成绩、LLM-Modulo 的思路)和多智能体协作的现状(辩论、编排者–工作者、MAST 失败分类),并说出评价它们时最常见的混淆因素——计算量没有匹配。
- 说出”AGI”的几种定义和衡量方式,以及每一种的局限。
- 在动手做研究之前回答五个问题:控制变量了吗?基线的计算量匹配了吗?看了准确率之外的分布吗?跑了几个随机种子?测试集能分辨多小的差别?——并能用
research_kit.py算出置信区间、配对检验和最小可检测效应。 - 用”论文卡片”读一篇这个方向的论文,知道这门研讨课的项目长什么样。
0.2 先修与本讲范围 Prerequisites & scope
原课默认你学完了讲座式的 LLM 课程(Transformer、预训练、扩展律、后训练与对齐)。本讲只用到其中很少的东西,用到时会重新解释。
| 默认你已经会 Assumed | 本讲只给直觉,后面再展开 Previewed only |
|---|---|
| Python 基础;PyTorch 不熟也没关系,代码里有解释 | 思维链的表达能力定理与潜在推理(第 3 讲) |
| Transformer 大概是什么:注意力、MLP、层、token、自回归生成 | 测试时计算、验证器、强化学习训练推理(第 4、5 讲) |
| 知道”训练集 / 测试集”和”准确率”是什么 | 忠实性、长度泛化、“思考的幻觉”之争(第 6 讲) |
| 高中概率:二项分布、正态分布 | 规划(第 8–11 讲)、多智能体(第 12–16 讲)、AGI 的衡量(第 17 讲) |
| 不需要读过任何推理方向的论文 | 研究方法论的完整版(第 2 讲) |
0.3 本讲地图 Map
§1 我们在哪里:2024–2026 年的 LLM 能做什么、不能做什么;"参差不齐的前沿";三道缺口
§2 三种能力的定义与难点:System 1 / System 2;推理;规划;协作
§3 一次前向能想多远?串行深度、思维链的理论;实验:直接回答 vs 填充 vs 思维链;
一次前向能做几跳——表达能力 vs 可学习性;回到真实 LLM ← 代码 01、02
§4 是在推理,还是在走捷径?扰动探针、欠定、控制变量、没见过的 token、答案对推理错;
"思考的幻觉"之争 ← 代码 03
§5 规划:PlanBench、o1、LLM-Modulo、长程智能体
§6 协作:心智社会、辩论、SocraSynth / EVINCE / MACI、编排者–工作者、MAST
§7 "走向 AGI"是什么意思:定义与衡量
§8 怎样做这方面的研究:研究循环、玩具模型、五条实验纪律、读论文、项目 ← 代码 04
§9 现状与开放问题(2024–2026)
§10–15 路线图、小结、常见误区、练习、延伸阅读、下一讲预告
0.4 关于这门课 · About CS486
CS486 是一门研究型研讨课(research seminar),3 学分,研究生课程。课程描述说它”建立在讲座式 LLM 课程打下的理论基础之上”,目标是让学生亲手做原创研究——设计、实现并评测增强 LLM 推理、规划和多智能体协作能力的新方法,方向是”走向 AGI”。先修是讲座式的 Advanced LLM 课程;推荐准备列了六条:Python 与 PyTorch、Transformer 的训练经验、机器学习评测方法、读写学术论文、实验设计、Git 协作。后三条值得注意:这门课不只关心”方法”,同样关心”怎样证明方法有效”。
这份讲义怎样对应它?没有公开的日程,所以本讲义按课程描述的关键词把内容组织成 6 个部分、20 讲(SYLLABUS):研究基础(第 1–2 讲)、推理(第 3–7 讲)、规划(第 8–11 讲)、多智能体协作(第 12–16 讲)、走向 AGI(第 17–19 讲)、研究实践(第 20 讲)。每一讲讲清一个方向的直觉、关键论文、为什么这样做,以及这个方向上还没解决、适合做研究项目的问题。
课程描述的措辞(“toward AGI”,“reasoning, planning, and multi-agent collaboration”)和斯坦福 CS 系兼职教授 Edward Y. Chang 的研究议程——多 LLM 协作智能(SocraSynth、EVINCE、MACI,以及 ACM 出版的 Multi-LLM Agent Collaborative Intelligence: The Path to AGI)——很接近,但目录没有写授课教师,这只是推测。本讲义把他的工作作为多智能体部分的一条线索(§6.2、第 10、13、14 讲),和其他研究组的工作并列讨论,不当作课程内容的唯一依据。
0.5 关于数字和玩具模型 · About the numbers
本讲 §3、§4、§8 的实验在一个合成任务(多跳指针追踪)上从零训练约 10 万参数的小 Transformer。这样做有三个理由:
- 真相已知:每道题的答案、每一步推理都可以机械验证,所以我们能看清模型”在干什么”,而不只是”答对了多少”。
- 变量可控:作答方式、层数、训练题的顺序、题面长度、跳数都可以单独改变,别的保持不变——这正是做因果结论需要的。
- 跑得动:一个模型在笔记本 CPU 上训练 30 秒左右,你可以亲手重做每一个实验、改参数、验证讲义里的每一句话。
代价是外部效度(external validity):一个 10 万参数的模型在字母指针上的行为,不能直接等同于一个千亿参数的模型在数学题上的行为。讲义会在每个实验之后说明:哪些结论有真实 LLM 上的独立证据支持、哪些只是”机制上可能”。
讲义里引用的实验数字都来自编写时的一次实际运行(Apple M4 Pro,PyTorch 2.14,单线程 CPU)。同一台机器上重复运行,输出逐字相同(只有 ⏱ 开头的计时行会变);不同的 PyTorch 版本或硬件可能让训练出的模型略有不同,个别数字会变,但结论应该不变——如果变了,那本身就是一个值得写进笔记的发现(§8.3 讲种子的影响)。
1. 我们在哪里:2024–2026 年的 LLM 能做什么、不能做什么 · Where we are
1.1 从”会说”到”会想”
2022 年底的 ChatGPT 让所有人看到:一个只训练”预测下一个 token”的模型,可以流畅地写作、翻译、写代码、回答问题。但很快大家也发现,它在需要多步推理的任务上很脆弱:多位数乘法会算错,稍微改一下数学题的表述就答不对,被要求”一步一步想”时反而表现更好。
接下来的三年,研究的重心明显从”会说”移向了”会想”:
- 2022 年:思维链提示(chain-of-thought prompting,Wei et al.)和”Let’s think step by step”(Kojima et al.)表明,让模型先写出中间步骤再回答,能大幅提高数学和逻辑题的准确率;更早的 scratchpad(Nye et al. 2021)在小模型上训练出了同样的效果。
- 2024 年 9 月:OpenAI 发布 o1,第一个大规模部署的推理模型(reasoning model):用强化学习训练模型在回答前生成很长的内部思维链,并且”想得越久,答得越好”(测试时计算的扩展)。
- 2025 年 1 月:DeepSeek-R1 公开了这一路线的大部分配方:在可自动验证答案的数学和代码题上做强化学习(RLVR),长思维链、自我检查、回溯等行为在训练中自发出现。
- 2025 年 7 月:OpenAI 的实验性推理模型和 Google DeepMind 的 Gemini Deep Think 都在国际数学奥林匹克(IMO)上达到了金牌分数线(42 分里得 35 分),用自然语言写出完整证明。
- 2025–2026 年:推理能力成为所有前沿模型的标配;“智能体”(agent)——在环境里多轮调用工具、执行长任务的 LLM——成为主要的应用形态;多个智能体分工协作的系统(例如深度研究、编程智能体团队)开始大规模使用。METR 测量的”AI 能以 50% 成功率完成的任务长度”(按人类专家耗时计)从 2019 到 2025 年大约每 7 个月翻一番。
1.2 参差不齐的前沿 The jagged frontier
但能力的提升是参差不齐的:在一些看起来很难的任务上超过人类专家,在另一些看起来很简单的任务上却出人意料地失败。几个有代表性的例子:
| 观察 | 来源 |
|---|---|
| o1-preview 在 600 道 Blocksworld(积木世界)规划题上答对 97.8%;但把同样的题换成一套没有意义的名字(Mystery Blocksworld,逻辑结构完全相同),只答对 52.8%;名字随机打乱的版本只有 37.3%。之前最好的非推理模型(LLaMA 3.1 405B)分别是 62.6% 和 0.8% | Valmeekam et al. 2024(PlanBench 上评测 o1) |
| 往小学数学题里加一句”看起来相关、其实无关”的话(GSM-NoOp),各个前沿模型的准确率最多下降 65% | Mirzadeh et al. 2024(GSM-Symbolic) |
| 把两个分别学过的事实组合起来(“A 的配偶是 B""B 出生在 C”→“A 的配偶出生在哪”),模型在不写思维链时常常做不到;写出思维链就能做到 | Press et al. 2023;Yang et al. 2024;Balesni et al. 2024–2025 |
| METR 的”时间跨度”:要求 80% 成功率时,模型能完成的任务长度大约只有 50% 成功率时的五分之一 | Kwa et al. 2025 |
| 多智能体系统的执行轨迹里,大量失败来自系统设计和智能体之间的”沟通不畅”,而不是单个模型能力不够 | Cemri et al. 2025(MAST) |
这些现象有一个共同点:模型在”见过类似东西”的地方很强,在需要把已知的规则可靠地、多步地、在新情境里组合起来的地方就变脆弱。 这正是课程描述点名的三种能力。
1.3 三道缺口
用一句话概括这门课关心的三道缺口:
- 推理:能不能把很多步可靠地串起来?每一步出错的概率哪怕只有 1%,100 步之后全对的概率也只剩 。而且,一次前向计算能做的串行步数本身就有上限(§3)。
- 规划:能不能在行动之前前瞻、在约束之间权衡、在发现走不通时回溯、在环境变化时修正?自回归生成是”一次写成、不回头”的,这和规划需要的搜索天然不契合(§5)。
- 协作:多个模型(或同一模型的多个实例)能不能分工、互相检查、汇总出比单个模型更好的结果?还是只会更贵地重复同样的错误(§6)?
1.4 这门课想回答的问题
把上面的缺口变成研究问题,这门课会反复回到这些问题上:
- 推理能力从哪里来:是预训练数据、思维链、测试时计算,还是强化学习?它们之间是什么关系?(第 3–5 讲)
- 我们怎样知道模型在”推理”而不是在”匹配模式”?推理链是模型真实的计算过程吗?(第 4、6 讲)
- 模型能检查、修正自己的错误吗?什么时候”再想一想”反而会把对的改错?(第 7 讲)
- LLM 应该自己做规划,还是给外部规划器 / 求解器 / 验证器打下手?(第 8–10 讲)
- 长程任务里的误差怎样累积,怎样控制?(第 11 讲)
- 多个智能体什么时候比一个好?好在哪里——多样性、专门化、互相验证,还是只是用了更多的计算?(第 12–16 讲)
- “走向 AGI”的进展该怎样衡量?(第 17 讲)
2. 三种能力:定义,以及为什么难 · Reasoning, planning, collaboration
2.1 System 1 与 System 2:一个有用但要小心的比喻
心理学家 Daniel Kahneman 在《思考,快与慢》(2011)里把人的思维分成两种:System 1 快速、自动、凭直觉(认出一张脸、回答 2 + 2);System 2 缓慢、费力、按步骤(算 17 × 24、规划一次旅行)。Yoshua Bengio 在 NeurIPS 2019 的主旨演讲里借用了这对概念:当时的深度学习擅长 System 1 式的感知和模式识别,而 System 2 式的、可组合的、能在分布外泛化的推理,是下一步的目标。
这个比喻在 LLM 上很好用:
- 一次前向计算像 System 1:读完输入,固定的层数算一遍,直接给出下一个 token。计算量和”题目有多难”无关。
- 思维链、搜索、反复验证像 System 2:把问题拆成步骤,把中间结果写下来,花更多时间(更多 token、更多次前向)在更难的题上。
但要小心:这只是一个比喻,不是关于 LLM 内部机制的理论。“System 2”的思维链不一定是模型真实的计算过程(第 6 讲讲忠实性),“System 1”的一次前向也能做相当复杂的计算(§3.5 会看到一次前向能做的事情并不少)。我们用它来组织直觉,而用实验来下结论。
2.2 推理(reasoning)
定义:从已知的信息出发,经过多步、可检验的变换,得到新的结论。传统上分成演绎(从规则推出必然结论)、归纳(从例子总结规则)、溯因(从结果推测最可能的原因)。LLM 研究里说的”推理”,通常指数学、逻辑、代码、多跳问答这类有明确正确答案、需要多个中间步骤的任务。
为什么对 LLM 难:
- 每个 token 的计算量是固定的。无论问题多难,生成一个 token 都是同样层数的一次前向计算。如果答案需要的串行计算步数超过了这个固定深度,模型只能靠”猜”或者靠”记住类似题的答案”(§3)。
- 误差会累积。多步推理里每一步都可能出错,出错之后后面的步骤建立在错误之上。
- 训练信号是”像不像”,不是”对不对”。预训练只奖励”预测得像训练文本”,一个”看起来像推理”的文本和一个”真的正确”的推理在损失上可能差不多(这正是后来要用可验证奖励做强化学习的原因,第 5 讲)。
2.3 规划(planning)
定义:给定初始状态、目标和一组可用的动作(每个动作有前提条件和效果),找到一个动作序列,执行后能从初始状态到达目标,并满足所有约束。经典的例子是积木世界:桌上有几摞积木,每次只能拿起一块最上面的积木放到别处,问怎样把它们摆成目标的样子。
和推理的区别:推理关心”从前提能推出什么”;规划关心”做什么能达到目标”。规划需要对动作的效果建模(世界模型)、在很多可能的动作序列里搜索、在走不通时回溯。
为什么对 LLM 难:自回归生成是”一个 token 接一个 token、写下就不改”,没有内置的回溯;模型容易生成”读起来很像计划”的文本,但违反某个前提条件(比如拿起一块上面还压着别的积木的积木)。§5 会看到,即使是推理模型,在”换个名字的同一个问题”上也会明显变差。
2.4 协作(collaboration)
定义:多个智能体(可以是不同的模型,也可以是同一个模型的不同实例、不同角色)通过通信来分工、讨论、互相检查,共同完成一个任务。形式包括:投票、辩论、“编排者–工作者”式的分工、流水线式的角色扮演(产品经理 → 架构师 → 程序员 → 测试)等。
为什么可能有用:
- 多样性:如果不同智能体的错误不完全相关,汇总可以抵消错误(群体智慧)。
- 专门化:每个智能体只负责一部分,上下文更短、更聚焦。
- 验证:让一个智能体检查另一个的输出,利用”检查比生成容易”的不对称。
为什么难:同一个模型的多个实例错误高度相关,投票抵消不了;智能体之间会从众、互相附和;通信会丢失信息;而且多智能体系统通常消耗多得多的 token——它更好,可能只是因为花了更多计算(§6.4)。
2.5 三者的关系
可以把三者看成同一件事的三个尺度:推理是在一个模型的一条思路里把步骤串起来;规划是在行动空间里搜索、并对照世界的反馈修正;协作是把推理和规划分布到多个智能体上。贯穿它们的有两个共同的主题:
- 串行计算:都需要”比一次前向更多的步骤”——思维链、搜索树、多轮对话,都是在买串行计算。
- 生成–验证的不对称:很多问题检查一个答案比想出一个答案容易。投票、验证器、LLM-Modulo、辩论、互评,都在利用这种不对称;而当验证本身不可靠时(比如让模型检查自己),这些方法也会失效(第 7 讲)。
3. 一次前向能想多远?——思维链与串行计算 · How far can one forward pass think?
这一节是本讲的技术核心。我们先用一个干净的玩具任务看清现象,再看理论怎么解释,最后回到真实 LLM。
3.1 一个干净的实验台:多跳指针追踪
hop_world.py 定义了这样一种题:
题面:d>f;f>i;i>n;n>k;b>p;k>b;m>d;p>m;3?d
含义:d 指向 f;f 指向 i;…… 从 d 出发走 3 跳,到哪里?
求解:d → f → i → n,答案是 n
陈述 “x>y” 表示”x 指向 y”,所有陈述组成一个环(每个字母恰好有一条出边),顺序随机打乱。问题 “3?d” 问”从 d 出发走 3 跳到哪”。
为什么选这个任务?
- 它是天生串行的:要知道第 2 跳去哪,必须先知道第 1 跳到了哪。多跳问答(“《X》导演的母亲是谁”)、追踪程序里的变量、数学题的中间结果,都有这种结构。
- 每一步都很简单:一跳 = “找到以当前字母开头的陈述,抄下它指向的字母”。这恰好是 Transformer 注意力最擅长的”查找 + 复制”(和 induction head 是同一类操作)。所以难点只在把很多跳串起来——这让我们能干净地研究”串行深度”。
- 没有捷径:用环而不是链,是因为链有一个终点(“那个从不出现在箭头左边的字母”),模型可以不推理就猜出终点。环里每个字母都有出边,这条捷径不存在。(设计合成任务时,先想清楚”有没有不推理也能答对的办法”,是最重要的一步。)
同一道题可以要求三种作答方式(format_example):
| 方式 | 模型的输入 | 模型要输出 | 含义 |
|---|---|---|---|
| direct(直接回答) | …;3?d | n$ | 读完题直接给答案 |
| pause(填充 token) | …;3?d___ | n$ | 题后给 k 个”空位” _ 再回答——多给了计算位置,但不写中间结果 |
| cot(思维链) | …;3?d | fin|n$ | 先写出每一跳到达的字母,再在 | 后给答案 |
注意题面把起点字母放在最后一个位置:这样 direct 的”第 1 跳”和 cot 的”第 1 个推理步”是完全相同的计算(在同一个位置上、看同样的输入)。三种方式唯一的区别是”答案前面有什么”——这是一个对照实验的设计。
3.2 Transformer 的计算图:深度是固定的
先不训练任何模型,只看计算图(代码 01 演示 1 的”计算账本”)。
在一个 层的 Transformer 里,位置 第 层的表示,只能通过注意力影响位置 第 层的表示。所以从任何输入 token 到输出的最长计算路径只穿过 层——无论输入有多长。
- direct:答案在一次前向里算出来,串行深度 = 。
- pause:多了 个填充位置,并行的计算量变大了(更多位置在算),但最长路径还是穿过 层:每一层的信息只能往右、往上走一步,填充位置不能让信息”多走几层”。
- cot:每生成一个 token,这个 token 会被当成新的输入从第 0 层重新进入模型。答案在第 次前向时生成( 个推理字母、一个
|、然后是答案),最长路径穿过 层。
代码 01 演示 1(2 层模型, 的题):
| 跳数 | 作答方式 | 计算的位置数 | 串行前向次数 | 串行深度(层) |
|---|---|---|---|---|
| k = 1 | direct | 35 | 1 | 2 |
| k = 1 | pause | 36 | 1 | 2 |
| k = 1 | cot | 37 | 3 | 6 |
| k = 7 | direct | 35 | 1 | 2 |
| k = 7 | pause | 42 | 1 | 2 |
| k = 7 | cot | 43 | 9 | 18 |
一句话:pause 买的是宽度,cot 买的是深度。 对一个天生串行的任务,哪一个有用?
3.3 理论怎么说:电路复杂度与思维链
理论计算机科学用电路复杂度来刻画”多少步串行计算才能解决一个问题”。几个结论(只给直觉,第 3 讲展开):
- 固定深度的 Transformer ≈ 常数深度的阈值电路(TC⁰)。Merrill & Sabharwal(2023)证明:精度是 位的固定深度 Transformer,可以被常数深度、多项式规模的阈值电路模拟。常数深度意味着”无论输入多长,串行步数不增长”。一般认为(这是一个未证明的复杂度猜想)TC⁰ 解决不了一些天生串行的问题,例如复合一长串排列( 上的”字问题”是 NC¹ 完全的)、判断图的连通性。
- 思维链突破了这个限制。Merrill & Sabharwal(ICLR 2024)证明:允许 Transformer 生成 步中间 token 时,它的表达能力随 增长——线性步数就能识别所有正则语言,多项式步数在他们的设定下恰好对应 P(多项式时间可解的问题)。Li, Liu, Zhou & Ma(ICLR 2024)证明:常数深度的 Transformer 有 步思维链时,可以模拟任何规模为 的布尔电路。Feng et al.(NeurIPS 2023)在算术表达式、线性方程组上给出了具体的例子:不写思维链时,有界深度的 Transformer 除非规模随输入长度超多项式增长,否则解不了;写思维链时,常数规模就够了。
- 多跳查找需要多深? Sanford, Hsu & Telgarsky(ICML 2024)研究了” 跳归纳头”任务(和我们的指针追踪很像):用”指针加倍”(第 层让每个位置知道它的 跳后继), 层就够了,而且在一个关于并行计算的猜想下,这个对数深度也是必需的。
- 填充 token 不改变这个结论。Pfau, Merrill & Bowman(2024)“Let’s Think Dot by Dot”:填充 token 能帮助一些可以并行化的任务(如 3SUM 的变体),但它们只是在 TC⁰ 内部增加了宽度,帮不了天生串行的问题;而且模型要在专门设计的稠密监督下才学得会利用它们。
这些定理说的是什么、没说什么:它们是关于表达能力(是否存在一组参数能算出这个函数)的、最坏情况的、渐近的结论。它们不告诉你梯度下降能不能找到那组参数,也不告诉你在具体长度、具体模型大小下会发生什么。所以我们要做实验。
3.4 实验 1:直接回答 vs 填充 token vs 思维链
代码 01_one_pass_vs_thinking.py 训练三个模型:结构完全相同(2 层、64 维、4 个头、RoPE 位置编码、104,320 个参数),训练题完全相同(环大小 ,跳数 ,陈述随机打乱,每步 64 道新题,2000 步),只有作答方式不同。
学习曲线(演示 3,探针集:,– 共 140 道):
| 训练步数 | direct | pause | cot |
|---|---|---|---|
| 250 | 12.9% | 14.3% | 10.7% |
| 500 | 17.9% | 11.4% | 13.6% |
| 750 | 15.0% | 12.1% | 100.0% |
| 1000 | 15.0% | 13.6% | 100.0% |
| 2000 | 17.9% | 13.6% | 100.0% |
思维链模型在第 500 到 750 步之间突然从随机水平跳到 100%——这种”相变”在小 Transformer 学习查找类操作时很常见(induction head 的形成就是这样,Olsson et al. 2022)。
主结果(演示 4,,每格 300 道题,括号是 Wilson 95% 区间):
| 跳数 | direct | pause | cot |
|---|---|---|---|
| k = 1 | 14.7% [11%, 19%] | 14.7% [11%, 19%] | 100.0% [99%, 100%] |
| k = 2 | 14.0% [11%, 18%] | 17.0% [13%, 22%] | 100.0% [99%, 100%] |
| k = 3 | 12.0% [9%, 16%] | 11.3% [8%, 15%] | 100.0% [99%, 100%] |
| k = 4 | 11.0% [8%, 15%] | 12.3% [9%, 17%] | 100.0% [99%, 100%] |
| k = 5 | 11.0% [8%, 15%] | 12.7% [9%, 17%] | 100.0% [99%, 100%] |
| k = 6 | 19.0% [15%, 24%] | 17.3% [13%, 22%] | 100.0% [99%, 100%] |
| k = 7 | 15.7% [12%, 20%] | 14.7% [11%, 19%] | 100.0% [99%, 100%] |
| 平均(k = 1–7) | 13.9% | 14.3% | 100.0% |
三个观察:
- 思维链在所有跳数上都是 100%,推理链本身逐字正确的比例也是 100%(2100 道题)。2 层模型做 7 跳完全没问题——因为每一跳只需要一次查找,而思维链给了它 9 次串行前向。
- 填充 token 没有任何帮助:pause 和 direct 一样停在随机水平。多出来的 个计算位置是并行的,补不上串行深度。这和 §3.3 的理论预测一致。
- 最出人意料的是:direct 连 都没学会——可 和思维链的第一步是完全相同的计算!这说明 direct 的失败不全是”表达不了”。§3.5 专门研究这一点。
它们到底在答什么?(演示 5,错误分析)。随机猜一个环上的字母是 1/8 = 12.5%,可 direct 和 pause 的平均准确率是 13.9% 和 14.3%——几乎正好是 1/7。把答案分类后原因很清楚:
| 模型 | 正确 | 只走了 1 跳 | 停在起点 | 题里的其他字母 |
|---|---|---|---|---|
| direct | 13.8% | 14.3% | 0.0% | 71.9% |
| pause | 14.2% | 13.2% | 2.3% | 70.3% |
direct 模型从不回答起点字母,也从不回答题里没有的字母;其余 7 个字母上大致均匀地猜。它学到的是两条表面规律:“答案是题里的某个字母”,以及” 时答案不会是起点”——而不是任何一跳的查找。“准确率略高于随机”可以来自对输出分布的学习,而不是部分的推理能力;只看准确率会误读,要看答案的分布。
3.5 实验 2:一次前向能做几跳?表达能力 vs 可学习性
代码 02_hops_per_forward_pass.py 把”表达不了”和”学不会”拆开。
演示 1:只用一种跳数训练。
| 模型(2 层,2000 步) | 测试 k = 1 | 测试 k = 2 | 测试 k = 3 |
|---|---|---|---|
| 只训练 k = 1 | 100.0% | 0.0%(答案 100% 是”第 1 跳”) | 0.0%(答案 100% 是”第 1 跳”) |
| 只训练 k = 2 | 17.7% | 13.7% | 14.0% |
只用 训练的模型 1000 步内就学会了 1 跳——2 层 Transformer 一次前向能做 1 跳。它遇到 、3 的题时,答案 100% 是”第 1 跳的位置”:它学会的是”走一步”,完全忽略了题面里的跳数。只用 训练的模型 2000 步后仍在随机水平。
为什么 2 层够 1 跳、不够 2 跳?最直接的机制是:第 1 层让每条陈述右边的字母”知道”自己左边是谁(往前看 2 个位置,RoPE 让这种相对位置操作很容易);第 2 层在最后一个位置按起点字母去查”哪个位置的左边是起点”,把那个位置的字母搬过来。这用掉了两层;第二跳需要以第一跳的结果为查询再查一次,就没有层可用了。(指针加倍可以把 跳压缩到 层,但 2 层连 2 跳也不够。)
演示 2:同一个”1 跳查找”在三种训练条件下。
| 训练条件 | 1 跳查找的准确率 |
|---|---|
| 单独训练(只有 k = 1 的题) | 100.0% |
| 混在多跳题里训练直接回答(k = 1 … n-1) | 12.7% |
| 作为思维链的第 1 步 | 100.0% |
| 作为思维链的每一步(逐个字母) | 100.0% |
2 层模型表达得了 1 跳(第一行),但在混合训练里学不会(第二行)。为什么?混合训练分布里 的题约占 78%,对 2 层模型来说它们是不可能学会的噪声:模型最好的策略是”在候选字母里均匀地猜”,这些题的梯度把模型推向这个策略,淹没了 22% 的 题提供的信号。思维链则相反:它把每道 跳的题拆成 个 1 跳,每个推理 token 都是一个可学的小任务——这是稠密的中间监督(dense intermediate supervision)。
这给出了思维链的第二个好处,和表达能力无关:可学习性。理论上也有对应的结果:把任务分解成子任务的监督能让原本需要指数级样本的问题变得可学(Wies, Levine & Shashua 2023 “Sub-Task Decomposition Enables Learning in Sequence to Sequence Tasks”);有思维链监督时,Transformer 能高效地学会奇偶校验这种没有中间监督时很难学的函数(Kim & Suzuki 2024)。
演示 3(--deep):更深的模型能在一次前向里做更多跳吗? 把训练延长到 10000 步(学习率 1e-3),只用 的题,比较 2 层和 4 层:
| 训练步数 | 2 层 | 4 层 |
|---|---|---|
| 2000 | 10.7% | 14.3% |
| 4000 | 22.1% | 20.7% |
| 6000 | 30.0% | 41.4% |
| 8000 | 30.0% | 49.3% |
| 10000 | 32.1% | 52.9% |
(探针准确率;训练结束后在 300 道题上:2 层 35.3%、4 层 52.7%。)
两个发现:
- 4 层模型在学 2 跳,但学得很慢:10000 步时 52.7%,曲线还在上升。(在编写前的一次原型实验里——不同的种子和学习率调度——4 层模型在约 9500 步时达到了 100%。学会的时间点在不同种子之间差别很大,这是相变式学习的典型特征。)对比思维链:2 层、750 步就学会了 1–7 跳。4 层模型学会的也只是”恰好 2 跳”: 和 的题上它的准确率都是 0%。
- 2 层模型的 35% 不是”学会了一部分 2 跳”。看它的答案落在”从起点走 跳”的哪个位置(, 是起点, 是起点的前驱):
| 模型 | j=0 | j=1 | j=2(正确) | j=3 | j=4 | j=5 | j=6 | j=7 |
|---|---|---|---|---|---|---|---|---|
| 2 层,2000 步 | 0% | 15% | 16% | 12% | 17% | 13% | 14% | 14% |
| 2 层,10000 步 | 0% | 0% | 36% | 11% | 14% | 14% | 24% | 0% |
| 4 层,10000 步 | 0% | 1% | 55% | 9% | 9% | 10% | 16% | 0% |
长训练的 2 层模型从不回答起点、起点的后继、起点的前驱——这三个字母恰好是一次查找就能确定的。它学会了用 1 跳的信息做排除法,然后在剩下的 5 个字母里带偏好地猜。高于随机的准确率可以来自排除法,不一定来自目标机制——这是研究中极易误读的一类结果。
3.6 回到真实 LLM
小模型上的现象在真实 LLM 上有对应的证据,也有重要的不同。
思维链提示与推理模型。Wei et al.(2022)的思维链提示、Kojima et al.(2022)的”Let’s think step by step”,在大模型上大幅提高了多步推理题的准确率。从 §3.2 的角度看,它们都是在用 token 换串行深度。推理模型(o1、R1 等)更进一步:用强化学习训练模型生成长思维链,而不只是靠提示”诱导”它(第 5 讲)。
潜在多跳推理(latent multi-hop reasoning):不写思维链时,LLM 能把两个分别学过的事实组合起来吗?
- Press et al.(2023)定义了”组合性差距”(compositionality gap):模型能分别答对两个子问题,却答不对组合问题;这个差距没有随模型变大而缩小。让模型先问自己子问题(self-ask)能缩小它——又一次”把中间步骤写下来”。
- Yang et al.(ACL 2024)在模型内部找第一跳和第二跳的证据:第一跳常常能找到,第二跳的证据弱得多。
- Balesni, Korbak & Evans 的系列工作(v1 名为 The Two-Hop Curse,2024;2025 年 11 月的 v4 改名为 Lessons from Studying Two-Hop Latent Reasoning)用合成事实微调模型,排除”见过组合答案”的可能:两个事实都是新学的合成事实时,模型不写思维链就无法组合它们;写思维链就能。但修订版也报告:当其中一个事实是预训练里学过的”自然”事实时,模型能做潜在的两跳推理;作者的结论是”LLM 显然有潜在两跳推理的能力,但它怎样随规模变化还不清楚”,并专门警告研究者避免虚假的成功和虚假的失败。这个修订过程本身就是一个研究方法的案例(§9)。
和我们的实验对照:小模型上”2 层不够 2 跳""深一些能慢慢学会""思维链轻松解决”,都和这些发现方向一致。但真实 LLM 有几十到上百层,一次前向能做的事情远多于 2 层模型;它们的”跳”也不是干净的指针查找,而是从参数里检索知识。所以我们的实验说明的是机制(串行深度是一种有限的资源,思维链能补充它),不是”真实模型能做几跳”这种量级。
填充 token 在真实模型上:Goyal et al.(ICLR 2024)在预训练和微调时都加入”暂停 token”,1B 模型在 SQuAD 上提高了 18%(精确匹配),在 CommonSenseQA 上提高了 8%,在 GSM8k 上只提高了 1%;只在微调时加入则效果有限。这和我们的结果不矛盾:额外的并行计算能帮助”需要汇总更多信息”的任务,但帮不了”需要更多串行步骤”的任务(GSM8k 的 1%)。
3.7 研究问题
- 潜在推理能走多远? 不写出 token、在隐藏状态里”思考”(例如 Coconut 把最后一层的隐藏状态直接作为下一步的输入,Hao et al. 2024;循环 / 权重共享的 Transformer),能否既保留串行深度的好处、又避免冗长的思维链?代价是可解释性(第 3、19 讲)。
- 可学习性的边界在哪里? 什么样的中间监督最有效?没有中间监督时(只有最终答案的奖励),强化学习能不能”发现”思维链?(第 5 讲会在本讲的任务上做这个实验。)
- 深度和长度怎样分配? 给定计算预算,更深的模型、更长的思维链、更多的并行采样,各自什么时候最划算?(第 4 讲)
4. 是在推理,还是在走捷径? · Reasoning or shortcut?
4.1 分布内满分什么也不能证明
一个模型在测试集上 100% 正确,只说明它学到了一个在这个分布上有效的规则。这个规则可能是我们想要的算法,也可能是一个捷径(shortcut):一条在训练和测试分布上碰巧总是成立、但不是任务本质的规律。
经典的例子:图像分类器靠背景识别物体(草地上的就是牛)、靠水印识别类别;问答模型靠问题里的关键词重叠找答案而不读懂文章。Geirhos et al.(2020)把这类现象统称为捷径学习(shortcut learning)。D’Amour et al.(2020)从另一个角度描述同一件事:训练数据往往允许很多种在训练分布上同样好的解(欠定,underspecification),哪一种被学到取决于架构、初始化、优化的偶然性——它们在分布内无法区分,在分布外的行为却可以完全不同。
区分”算法”和”捷径”的基本工具是扰动探针(perturbation probe):保持任务的本质不变,只改变”按理不该影响答案”的表面特征,看准确率会不会掉。
4.2 真实 LLM 上的证据
- GSM-Symbolic(Mirzadeh et al. 2024,ICLR 2025):把 GSM8K 的题做成模板,换人名、换数字,生成大量”同一道题”的变体。模型在不同变体上的准确率波动明显,只改数字也会下降;GSM-NoOp 往题里加一句看起来相关、其实不影响答案的话,所有前沿模型的准确率都明显下降,最多达 65%。
- 反事实任务(Wu et al., NAACL 2024 “Reasoning or Reciting?”):同一种推理在”默认设定”和”反事实设定”下做,例如十进制加法 vs 九进制加法、正常的国际象棋规则 vs 交换了马和象初始位置的规则。模型在反事实设定下大幅变差——说明部分能力依赖于”默认设定在训练数据里常见”。
- 自回归的余烬(McCoy et al. 2023 “Embers of Autoregression”):模型的表现对”输出文本本身在训练数据里的概率”很敏感。例如移位密码,GPT-4 在最常见的 ROT-13 上远好于其他移位量——尽管算法完全相同。
- 信念与命运(Dziri et al., NeurIPS 2023 “Faith and Fate”):在多位数乘法、逻辑网格谜题等组合任务上,模型常常把多步组合推理”简化”成对见过的子计算图的匹配;题目一变大,误差迅速累积。
- 反转诅咒(Berglund et al. 2023):训练时只见过”A 是 B”的模型,答不出”B 是谁”。
这些研究大多做在 2023–2024 年的模型上。推理模型出现以后,部分扰动下的掉点变小了,但在新的、更难的扰动基准上,类似的现象一再出现——这是一个随模型代际不断移动的目标。研究上的教训是不变的:要宣称”会推理”,必须在设计好的分布外条件下检验。
4.3 实验 3:顺序探针与欠定
代码 03_reasoning_or_shortcut.py 训练了第二个思维链模型 cot_sorted_L2:一切和 cot_L2 相同,只是训练题里的陈述按行走顺序排列(a>c;c>f;f>b;…)。在这种题上,“按位置往后读”就能拿满分,不需要按名字查找。
分布内两个模型都是 100%(演示 1)——只看这一列,你会以为它们学到了同样的东西。
顺序探针(演示 2,,,每种顺序 600 道):
| 模型 | 打乱 | 按顺序 | 倒序 |
|---|---|---|---|
cot_L2(打乱顺序训练) | 100.0% | 100.0% | 100.0% |
cot_sorted_L2(按顺序训练) | 12.7% | 100.0% | 28.3% |
按顺序训练的模型一遇到打乱的题就崩溃了。
它到底学了什么?(演示 3)我最初的猜测是”绝对位置捷径”:写第 条陈述的右边。但诊断显示它不是这个——这正是要做诊断的原因。在打乱的题上,对推理链的每一步,检查它符合哪条候选规则(每一步用模型自己上一步写的字母作为”当前字母”):
| 模型 | 按名字查找(正确) | 第 i 条陈述的右边 | 邻居规则 A | 邻居规则 B | A 或 B |
|---|---|---|---|---|---|
cot_L2 | 100.0% | 12.8% | 12.4% | 12.2% | 22.8% |
cot_sorted_L2 | 17.0% | 16.9% | 57.0% | 54.2% | 97.5% |
- 邻居规则 A:找到以当前字母开头的陈述,写下一条陈述的左边。
- 邻居规则 B:找到以当前字母结尾的陈述,写下一条陈述的右边。
在按顺序排列的题里(a>c;c>f;f>b),这两条规则和”按名字查找”给出完全相同的答案:c 开头的陈述是 c>f,它的下一条以 f 开头;c 结尾的陈述是 a>c,它的下一条右边是 f。训练数据无法区分它们——这就是欠定。模型挑了”找到当前字母、看相邻那一条”这种相对位置规则,它对 RoPE 注意力来说很容易实现(“往右看 4 个位置”);97.5% 的推理步符合其中之一。一个例子:
题面 f>k;i>m;k>i;l>c;c>f;h>l;n>h;m>n;7?k
正确推理链 imnhlcf
cot_L2 imnhlcf|f
cot_sorted_L2 lhnmich|h ← 第 1 步:k 开头的是 k>i,下一条 l>c 的左边是 l(规则 A)
第 2 步:l 结尾的是 h>l,下一条 n>h 的右边是 h(规则 B)……
两个教训:
- 训练数据里一个偶然成立的规律,会被模型当成解法。 真实数据里这种规律到处都是:题目的长度和答案的相关、某类题的答案常出现在某个位置、模板化的措辞……
- 你对捷径的第一个猜测可能是错的。 如果我只测了”绝对位置”规则(16.9%,接近随机),就会得出”模型没学到捷径,只是在乱猜”的错误结论。诊断要列出多个候选假设逐一检验。
4.4 实验 4:干扰还是长度?没见过的 token;答案对、推理错
干扰陈述 vs 题面长度(演示 4,cot_L2,)。往题里加一个与答案无关的”干扰环”——这是 GSM-NoOp 的玩具版。但加干扰同时也让题面变长了,而训练时题面最多 8 条陈述。哪个才是原因?用控制变量的设计:
| 环大小 n | 干扰陈述 | 陈述总数 | 准确率 |
|---|---|---|---|
| 4 | 0 | 4 | 100.0% |
| 8 | 0 | 8 | 100.0% |
| 4 | 4 | 8 | 100.0% |
| 12 | 0 | 12 | 88.7% |
| 8 | 4 | 12 | 87.0% |
| 4 | 8 | 12 | 88.0% |
总长度是 8 条时,有一半是干扰也没有影响(100%);总长度是 12 条时,无论干扰占 0、4 还是 8 条,都掉到 87–89%。真正的原因是题面比训练时长(长度泛化),不是”被无关信息干扰”。 如果只做” 加 4 条干扰”这一个实验,会得出一个听起来很合理、但错误的结论。
(练习 4 会看到:把训练题的环大小扩大到 4–12, 和 就都是 100% 了,但 又掉下来——长度泛化的边界跟着训练分布走。)
没见过的 token(演示 5)。训练时 ,所以数字 8、9 从没在训练题里出现过。
| 题目 | 说明 | 答案准确率 | 推理链全对 | 写出的部分都对 | 推理链长度 |
|---|---|---|---|---|---|
| n = 5, k = 6 | 绕环,数字见过 | 100.0% | 100.0% | 100.0% | 6 |
| n = 4, k = 7 | 绕环,数字见过 | 100.0% | 100.0% | 100.0% | 7 |
| n = 8, k = 8 | 数字没见过 | 0.0% | 0.0% | 100.0% | 4(100%) |
| n = 8, k = 9 | 数字没见过 | 0.0% | 0.0% | 100.0% | 4(100%) |
| n = 5, k = 9 | 数字没见过 | 100.0% | 0.0% | 100.0% | 4(100%) |
我原本设计这个演示是想测”推理链能不能比训练时更长”。结果:绕环本身没问题;遇到没见过的数字 8、9,模型总是写 4 步,每一步都对,只是步数错了。失败的原因是”读不懂没见过的 token”,不是”不会走更多步”——这个实验被一个混淆因素污染了(训练分布里 的取值),它测不了我想测的东西。如实记录下来,比假装它测到了要好。
最后一行更有意思:、 时答案准确率 100%,推理链全对 0%。模型照样只走了 4 步,可是 ,答案碰巧对了。只看最终答案的评测会把它算作”完全解决”。这是”答案对、推理错”的一个干净例子;真实的数学推理里,“过程错误但答案正确”的比例并不低,这也是过程监督(第 4 讲的过程奖励模型)和忠实性研究(第 6 讲)的动机之一。
4.5 “思考的幻觉”之争:实验设计怎样决定结论
2025 年 6 月,Apple 的 Shojaee et al. 发表了 The Illusion of Thinking:用汉诺塔、跳棋、过河、积木世界这类复杂度可以精确控制的谜题评测推理模型,发现三个区间——低复杂度时普通模型和推理模型差不多甚至更好,中等复杂度时推理模型占优,高复杂度时两者都”崩溃”到接近 0;而且在接近崩溃点时,推理模型用的思考 token 反而减少了。
几天之后,一篇评论(Lawsen 2025,Comment on The Illusion of Thinking)指出了几个实验设计问题:汉诺塔的”崩溃”和模型的输出 token 上限重合——要写出的步数随盘数指数增长,模型在输出里明确说了”太长了,写不下”;过河问题在某些参数下本身无解,模型因为没解出无解的题被扣分;如果改成让模型写一个生成解法的程序而不是逐步列出所有移动,准确率就恢复了。
谁对谁错不是这里的重点(双方的一些论点都有后续讨论)。重点是:同样的现象,换一种实验设计就得出相反的结论。这和 §4.4 的两个实验是同一类教训:
- “准确率掉了”之前,先问:失败是来自能力,还是来自输出格式、长度上限、没见过的 token、题目本身无解?
- 看输出本身,而不只看对错(我们的”写出的部分都对""推理链长度”两列)。
4.6 研究问题
- 怎样系统地生成扰动探针,而不是靠研究者想到什么测什么?(例如自动搜索”让模型失败的最小改动”。)
- 能不能在训练时就避免欠定——用数据增强、多样化的分布、或者对内部机制的约束,让模型更倾向于学到能泛化的规则?
- 怎样评测过程而不只是答案?过程评测本身的成本和可靠性怎样?(第 4、6 讲)
5. 规划:会说计划 ≠ 会规划 · Planning
5.1 什么是规划问题
经典规划(classical planning)用一种叫 STRIPS / PDDL 的形式语言描述问题:状态是一组为真的命题(“积木 A 在积木 B 上""手是空的”),每个动作有前提条件(拿起 A 要求”A 上面没有东西”且”手是空的”)和效果(拿起之后”手里拿着 A”)。规划器在状态空间里搜索一条从初始状态到目标的路径。这类算法已经有 50 多年的历史(1971 年的 STRIPS),像 Fast Downward 这样的规划器能在瞬间解出几百步的积木问题,而且保证正确。
那为什么还要研究 LLM 规划?因为真实世界的规划问题很少有现成的形式化描述:旅行安排、日程协调、软件工程任务、科学实验设计,都是用自然语言描述的、充满隐含常识约束的。LLM 能理解自然语言和常识,规划器能保证正确——怎样把两者结合起来,是这一部分(第 8–11 讲)的核心问题。
5.2 PlanBench:LLM 和推理模型的成绩单
Valmeekam et al. 的 PlanBench(NeurIPS 2023 Datasets & Benchmarks)系统地评测了 LLM 的规划能力。最有诊断意义的是 Mystery Blocksworld:把积木世界里的所有名字(动作名、谓词名)换成没有意义的词,问题的逻辑结构完全不变。一个真正”会规划”的系统不应该受影响;一个靠”见过积木题的文本”来生成计划的系统会受很大影响。
2024 年 9 月,同一组作者用 PlanBench 评测了 o1(LLMs Still Can’t Plan; Can LRMs?,零样本,每组 600 题):
| 模型 | Blocksworld | Mystery Blocksworld | 随机名字的 Mystery |
|---|---|---|---|
| LLaMA 3.1 405B(之前最好的 LLM) | 62.6% | 0.8% | — |
| o1-mini | 56.6% | 19.1% | — |
| o1-preview | 97.8% | 52.8% | 37.3% |
推理模型是一个巨大的进步——Mystery Blocksworld 从几乎 0 到一半以上。但它离”可靠”还很远:在更大的积木问题(6–20 块、20–40 步的计划,110 题)上,o1-preview 只有约 24%;面对无解的问题,它只在 27% 的情况下正确地指出”无解”。名字一换就大幅掉点,说明能力仍然部分依赖于训练数据里的表面形式——这和 §4 是同一个现象。
5.3 LLM-Modulo:让 LLM 提议、让验证器把关
Kambhampati et al.(ICML 2024 立场论文 LLMs Can’t Plan, But Can Help Planning in LLM-Modulo Frameworks)提出了一个务实的框架:既然 LLM 生成的计划不可靠、而检查一个计划是否满足约束很容易(有现成的、可靠的验证器),那就让 LLM 负责提议(generate),让外部的批评者 / 验证器负责检查(test),把发现的错误反馈给 LLM 再提议,循环直到通过验证。LLM 在这里是”想法的来源”和”近似的知识来源”(也可以帮忙把自然语言翻译成形式规格),正确性由验证器保证。
一个案例:在 TravelPlanner(满足预算、日期、餐厅、交通等多种约束的旅行规划基准)上,LLM-Modulo 让 GPT-4-Turbo 的成功率提高到约 4.6 倍,让 GPT-3.5-Turbo 从 0% 提高到 5%(Gundawar et al. 2024)。这个思路——生成–验证分离——会在第 8、10 讲(以及 MACI 的”把规划和验证分开”)反复出现。
5.4 从规划到长程智能体
今天的 LLM 智能体在真实环境里做的事(修复一个代码仓库里的 bug、在网页上完成一系列操作)本质上是在线规划:每一步都要根据环境的反馈决定下一步。METR 的”时间跨度”研究(Kwa et al. 2025)把这种能力量化为”模型能以 50% 成功率完成的任务,人类专家需要多长时间”:从 2019 到 2025 年大约每 7 个月翻一番,2025 年初的前沿模型(如 Claude 3.7 Sonnet)约为 50 分钟。但同一研究也显示,要求 80% 成功率时,这个长度大约缩短为五分之一——长程任务的可靠性是规划能力的瓶颈(第 11 讲)。
5.5 研究问题
- LLM 在规划里最合适的角色是什么:提议者、翻译者(自然语言 → 形式规格)、启发式函数、还是世界模型?
- 推理模型的规划能力在多大程度上来自”在训练中见过规划题”?怎样设计不能靠记忆的规划基准?
- 在没有现成验证器的开放领域(例如科研计划),生成–验证循环怎样工作?
6. 协作:一个模型不够吗? · Collaboration
6.1 心智社会与群体智慧
Marvin Minsky 在 The Society of Mind(1986)里提出:智能不是来自一个单一的、聪明的机制,而是来自许多简单的”智能体”的互动。这个想法在 LLM 时代有了一个非常具体的形式:让多个 LLM 实例扮演不同角色、互相讨论。
群体智慧(wisdom of crowds)和 Condorcet 陪审团定理给出了它可能有效的最简单理由:如果每个投票者独立地以大于 1/2 的概率正确,那么多数票正确的概率随投票者数量增加而趋于 1。关键词是独立。同一个模型的多个样本,错误往往高度相关——它们在同一道难题上犯同样的错——投票的收益会迅速饱和(第 12 讲)。
一个重要的基线:Li et al.(TMLR 2024)的 More Agents Is All You Need 发现,仅仅”多次采样 + 多数投票”,性能就随智能体数量稳定提升,而且可以和更复杂的多智能体方法叠加。这意味着:任何多智能体方法都要和”同样数量的采样 + 投票”比较,才能说明”协作”本身有用。
6.2 多智能体辩论与苏格拉底式协作
多智能体辩论(Du et al., ICML 2024 Improving Factuality and Reasoning in Language Models through Multiagent Debate):几个 LLM 实例各自回答,然后互相阅读对方的答案和理由、修改自己的答案,进行几轮,最后汇总。它在算术、数学应用题、事实性问答上提高了准确率。辩论也是 AI 安全里可扩展监督的一个候选方案:让两个 AI 为相反的答案辩护,由(能力较弱的)人类裁判判断(Irving, Christiano & Amodei 2018),第 13、19 讲展开。
Edward Y. Chang 的一组工作把辩论做得更”可控”:
- SocraSynth(2024):两个 LLM 在人类主持人的设定下就一个议题持相反立场辩论,主持人可以调节争论强度(contentiousness),让对话从对抗逐渐转向合作;分为”知识生成”(各自构建论证)和”推理评估”(用苏格拉底式的提问和形式逻辑原则评估论证质量)两个阶段。
- EVINCE(2024):用信息论指标(交叉熵、Wasserstein 距离、互信息)监控多 LLM 对话:分歧大、共享信息少时鼓励争论,分歧缩小、互信息稳定时转向妥协。
- MACI(2025):一个多智能体规划框架,由元规划器(识别任务的角色和约束、构建依赖图、补充常识约束)、执行规划的智能体、以及运行时监控器(处理计划的变更)组成;核心主张是把规划和验证分开、让每个智能体只保留最小的上下文。这和 §5.3 的 LLM-Modulo 是同一个方向。
这些系统大多以案例研究的形式报告;它们在什么条件下、相对于什么基线有效,是第 10、13 讲要仔细讨论的问题。
6.3 有效的时候:编排者–工作者
一个在工业界被广泛报道的例子:Anthropic 的多智能体研究系统(2025 年 6 月的工程博客)用一个”主导智能体”(Claude Opus 4)规划研究、分派多个并行的”子智能体”(Claude Sonnet 4)各自搜索,再汇总结果。在他们的内部研究评测上,它比单智能体的 Claude Opus 4 高 90.2%。
同一篇博客也给出了一个关键的分析:在 BrowseComp(测试浏览智能体找难找信息的能力)上,token 用量本身就解释了 80% 的性能差异(加上工具调用次数和模型选择,三个因素共解释 95%);而多智能体系统用的 token 大约是普通对话的 15 倍。换句话说,多智能体架构在这里有效的一个主要原因是:它是一种把更多计算并行地花在一个问题上的方法。这不是坏事——并行化本身就是工程价值——但做研究时必须把”协作带来的收益”和”更多计算带来的收益”分开。
6.4 失败的时候:MAST 与”计算量”混淆
Cemri et al.(NeurIPS 2025 Datasets & Benchmarks,Why Do Multi-Agent LLM Systems Fail?)分析了 7 个流行的多智能体框架的执行轨迹,在 150 条轨迹上由专家标注、建立了一个失败分类 MAST:14 种失败模式,归为三类——系统设计问题(角色和任务规格不清、步骤重复、不知道何时结束)、智能体之间的错位(不澄清就自行假设、隐瞒信息、无视其他智能体的输入、推理和行动不一致)、任务验证问题(过早结束、验证不完整或不正确)。标注者间一致性 κ = 0.88;他们还发布了 1600 多条标注轨迹的数据集。主要结论:很多失败来自系统设计和智能体间的协调,而不只是底层模型能力不够,所以单纯换更强的模型不能解决所有问题。
评价多智能体方法时最常见的问题,和 §3 的”pause vs cot”是同一类问题——对照组没有匹配:
- 多智能体系统用了 倍的 token,对照组应该是”单智能体用 倍的 token”(多次采样 + 投票、更长的思维链)。
- 多个智能体用了不同的模型,对照组应该包括”把这些模型简单集成”。
- 加了一个”验证者”智能体,对照组应该包括”同一个验证器直接用来做 best-of-N 选择”。
6.5 研究问题
- 多智能体的收益里,多少来自多样性(不同模型、不同提示、不同信息),多少来自更多计算?能不能设计一个干净地分离两者的实验?
- 辩论什么时候会放大错误(从众、说服力强的一方胜出而不是正确的一方胜出)?
- 智能体之间应该交流什么——完整的推理、结论、置信度、还是结构化的中间结果?
- 能不能训练模型更好地协作,而不只是用提示词编排?(第 16 讲)
7. “走向 AGI”是什么意思? · What does “toward AGI” mean?
课程描述把这门课的方向定为”toward AGI capabilities”。AGI(artificial general intelligence,通用人工智能)没有公认的定义,几种有代表性的说法:
7.1 几种定义
- 经济定义:OpenAI 章程(2018)把 AGI 描述为”在大多数具有经济价值的工作上超过人类的高度自主的系统”。优点是可操作;缺点是把”智能”等同于”可以替代的工作”,而且随经济结构变化。
- 能力 × 通用性的分级:Morris et al.(Google DeepMind 2023,Levels of AGI)建议从两个维度描述:表现(Emerging、Competent、Expert、Virtuoso、Superhuman,对应超过多少比例的熟练人类)和通用性(窄 vs 广)。按这个框架,一个系统可以在某些任务上是”专家级”,整体上只是”新兴的通用智能”——这正是”参差不齐的前沿”的另一种说法。
- 学习效率的定义:François Chollet(2019,On the Measure of Intelligence)认为智能不是”会多少技能”,而是”获取新技能的效率”——在给定先验知识和经验的条件下,面对新任务能多快学会。一个靠海量训练数据记住了大量技能的系统,按这个定义并不一定”聪明”。ARC(抽象与推理语料)就是按这个思想设计的:每道题只给几个例子,要求从中归纳出一个新的变换规则。
7.2 几种衡量
- ARC-AGI:ARC-AGI-1 在 2024 年底被推理模型大幅攻克;更难的 ARC-AGI-2 在 2025 年推出、在 2025–2026 年被快速推高;ARC Prize 在 2025 年预告、2026 年推出的 ARC-AGI-3 改成了交互式环境——智能体要在环境里探索、自己发现规则和目标,目前仍然很难。(具体分数变化很快,以 arcprize.org 的官方榜单为准。)
- 专家级难题:Humanity’s Last Exam(各领域专家出的前沿难题)、FrontierMath(研究级数学题)等,测的是”知识与推理的上限”。
- 任务时间跨度:METR 的方法(§5.4),测的是”能自主完成多长的任务”。
- 真实工作产出:例如 OpenAI 的 GDPval,用 44 种职业的真实工作产出让专家盲评。
每一种衡量都有它的盲点:静态基准会饱和、会被污染;时间跨度依赖于任务集合(主要是软件任务);“真实工作”难以标准化。第 17 讲会专门讨论怎样读这些数字。
7.3 这门课的立场
我们不需要先解决”AGI 是什么”才能做研究。一个可操作的立场是:让推理、规划、协作变得可度量地更可靠、更通用、更高效——
- 更可靠:在分布外、在扰动下、在长程任务里不崩溃(§4);
- 更通用:在没有专门训练过的新任务上也能用(Chollet 的视角);
- 更高效:用更少的计算、更少的数据、更少的人类监督达到同样的能力。
每一个研究项目都应该能说清:它在这三个方向中的哪一个上、用什么指标、相对于什么基线,前进了多少。
8. 怎样做这方面的研究 · How to do research here
这门课的主体是你自己的研究项目。这一节给出贯穿全课的方法论;第 2 讲会更完整地展开,第 20 讲把它们串成一个完整的项目。
8.1 研究循环
研究不是”想到一个方法 → 实现 → 跑一个大实验 → 写论文”。更有效的是一个快速迭代的循环:
问题 → 假设 → 最小实验 → 结果 → (意外?) → 修正假设 / 换问题 → ……
几条来自经典文章的建议:
- 选重要的问题:Richard Hamming 在 You and Your Research(1986)里问:“你所在领域最重要的问题是什么?你为什么不在做它?“重要但可解的问题,才值得投入。
- 快速迭代:John Schulman 在 An Opinionated Guide to ML Research(2020)里强调:大部分进展来自”做很多小实验、快速得到反馈”;先在小规模上把现象弄清楚,再扩大规模。
- 苦涩的教训:Rich Sutton(2019,The Bitter Lesson)提醒:长期看,能随计算扩展的通用方法(搜索和学习)总是胜过人类手工设计的知识。设计新方法时问一句:“它能随计算扩展吗?还是只在当前规模上有效?”
- 预期之外的结果是最有价值的。本讲的实验里,我预想错了很多次:direct 连 1 跳都学不会、按顺序训练的模型用的不是绝对位置捷径、“更多跳”的实验被没见过的数字污染了、2 层模型的 35% 来自排除法。每一次意外都比”符合预期”教给我们更多——前提是你如实记录,而不是悄悄改掉实验直到它符合预期(代码 README 的”关于实验结果”一节记录了全部这些修正)。
8.2 玩具模型:为什么、什么时候可以相信
本讲用了一个 10 万参数的模型和一个字母指针任务。这在 LLM 研究里是一种常见、有效的方法:
- 归纳头(Olsson et al. 2022)先在小的注意力模型里被发现和理解,再在大模型里找到对应物;
- Grokking(Power et al. 2022)在模加法这种玩具任务上被发现;Wang et al.(NeurIPS 2024)在合成知识图谱上研究了 Transformer 怎样通过 grokking 学会隐式的组合推理;
- Physics of Language Models(Allen-Zhu & Li 的系列工作)在完全可控的合成数据上研究知识存储、提取和推理;
- Two-Hop 的研究(§3.6)用合成事实来排除”见过答案”的可能。
玩具模型的价值在于可控和可观察;风险在于外部效度。几条判断标准:
- 玩具任务是否保留了真实问题的关键结构(我们的任务保留了”串行依赖”,丢掉了”知识检索”和”语言”)?
- 结论是关于机制(“串行深度有限、思维链能补”)还是关于量级(“2 层能做 1 跳”)?前者更可能推广。
- 有没有真实模型上的独立证据指向同一个方向(§3.6 的组合性差距、潜在多跳推理)?
8.3 五条实验纪律
用本讲的实验说明五条在整门课里都要遵守的纪律。代码 04_how_sure_are_we.py 把后两条量化了。
纪律 1:控制变量。 一次只改变一个因素。“加干扰”同时改变了”干扰”和”长度”,只有把长度固定住才能分辨(§4.4)。
纪律 2:对照组的计算量要匹配。 “思维链比直接回答好”——可思维链多用了计算。pause 就是计算量匹配的对照(§3.4):它多了同样多的位置,却没有任何帮助,这才证明了”串行深度”而不是”更多计算”是原因。多智能体 vs 单智能体、长思维链 vs 多次采样,都要这样比(§6.4)。
纪律 3:看分布,不只看准确率。 13.9% 的准确率背后是”从不回答起点”(§3.4);35% 的准确率背后是”排除法”(§3.5);100% 的准确率背后可以是”答案对、推理错”(§4.4)。错误分析和答案分布常常比准确率本身更有信息量。
纪律 4:多个随机种子。 演示 2:同一个思维链配置,只换随机种子,训练 3 次:
| 模型 | 分布内(n=8, k=1–7) | n=12, k=3 | n=8+4 干扰, k=3 | n=10, k=5 |
|---|---|---|---|---|
| 种子 0 | 100.0% | 88.3% | 84.7% | 99.3% |
| 种子 1 | 100.0% | 86.0% | 84.0% | 92.0% |
| 种子 2 | 99.9% | 72.7% | 70.3% | 8.0% |
分布内完全一样,分布外差别巨大:同样是题面变长(10 条陈述),种子 0 是 99.3%,种子 2 是 8.0%。这和 McCoy, Min & Linzen(2020,BERTs of a Feather Do Not Generalize Together)在 BERT 上的发现一样:用不同种子微调的 100 个 BERT,在分布内几乎一样,在分布外的诊断集上表现千差万别。
演示 3 更进一步:把”种子 0”和”种子 2”当成两个”方法”,在同一组 300 道题上做配对检验(McNemar),9 个比较里 7 个 ,最大的差 91.3 个点。如果你把其中一个种子叫作”我们的新方法”,就会得出一个高度显著的错误结论。原因是:显著性检验只考虑了”测试题的抽样噪声”,没有考虑”训练的随机性”。比较两个训练方法时,每个方法都要跑多个种子,把种子之间的差别当作噪声的下限。
纪律 5:先算一算测试集能分辨多小的差别,并且不要在测试集上调参。
演示 1:同一个模型(真实准确率约 88.0%),只评测一部分题时,估计会晃动多少:
| 测试集大小 | 95% 的估计落在 | Wilson 区间平均宽度 | 偏离真值 > 5 个点的概率 |
|---|---|---|---|
| 25 | 76.0% – 100.0% | 24.9% | 35.3% |
| 100 | 81.0% – 93.0% | 12.7% | 14.8% |
| 200 | 83.0% – 92.0% | 9.0% | 3.8% |
| 500 | 85.4% – 90.4% | 5.7% | 0.0% |
很多推理基准很小:AIME 每年只有 30 道题,30 道题上答对 15 道,Wilson 95% 区间是 [33%, 67%]。
最小可检测效应(mde_two_proportions):基线准确率 、每组 道题时,不配对的两比例检验以 80% 的概率检测到的最小差约为
200 道题、70% 的基线:约 12.8 个点。在动手之前就算这个数:如果你预期的改进只有 3 个点,在这个测试集上根本测不出来。
演示 4(纯模拟):20 个”提示词变体”和基线的真实能力完全相同,在 200 道题上挑出最好的那个——它平均”提升”4.9 个点(95 分位 10.5 个点),17.5% 的情况下单独检验还”显著”;对 20 个检验做 Holm 校正后只剩 1.2%。在同一个测试集上反复调参、挑最好的结果报告,就是在测试集上做训练。 解决办法:留出验证集用来选择、测试集只用一次;报告你试了多少个变体;做多重比较校正。
research_kit.py 提供了这些工具:wilson_interval、bootstrap_ci、mcnemar_exact、paired_bootstrap_diff、two_proportion_p、holm_adjust、mde_two_proportions、seed_summary。从第 2 讲起,所有实验都用它们报告结果。
8.4 怎样读一篇论文
S. Keshav 的 How to Read a Paper(2007)建议读三遍:第一遍(5–10 分钟)只读标题、摘要、引言、各节标题和结论,决定要不要读下去;第二遍(约 1 小时)读懂图表和主要论点,跳过证明细节;第三遍(数小时)在脑子里”重新做一遍”这项工作,找出隐含的假设和弱点。
对这个方向的论文,第二遍时可以填这样一张论文卡片:
| 问题 | 要找什么 |
|---|---|
| 主张是什么? | 一句话:方法 X 在任务 Y 上提高了能力 Z |
| 证据是什么? | 哪些实验、哪些基准、多大的测试集、几个种子、有没有置信区间 |
| 基线公平吗? | 计算量(token 数、采样次数、模型大小)匹配了吗?基线调参了吗? |
| 有没有捷径或污染? | 测试题可能出现在训练数据里吗?有没有分布外 / 扰动测试? |
| 看了过程还是只看了答案? | 有没有错误分析、推理链分析? |
| 消融说明了什么? | 哪个组件真正起作用? |
| 局限是什么? | 作者承认的,以及你发现的 |
| 下一步可以做什么? | 这就是你的研究问题的来源 |
以 §6.3 的多智能体研究系统为例:主张是”多智能体比单智能体高 90.2%“;证据是内部评测;最关键的一行是”基线公平吗”——作者自己给出的 token 分析告诉我们,计算量是主要的解释因素。这不是否定这项工作,而是告诉你:“协作本身有多大价值”仍然是一个开放的研究问题。
8.5 研讨课项目长什么样
研讨课的项目通常是以下几种之一(第 20 讲详细讨论):
- 新方法:提出一个增强推理 / 规划 / 协作的方法,在合适的基准上和强基线(计算量匹配)比较。
- 分析与理解:用控制好的实验回答”为什么 X 有效 / 无效”——本讲的实验就是这一类的迷你版。
- 评测与基准:设计一个能区分”推理”和”捷径”的新评测,或者发现现有评测的问题。
- 复现与负结果:认真复现一个有影响力的结论,报告它在什么条件下成立、什么条件下不成立。负结果只要实验设计严谨,同样有价值。
一个典型的节奏:第 2–3 周交提案(问题、假设、实验计划、算过的最小可检测效应),第 6 周中期报告(初步结果、意外、计划的调整),期末交论文和展示。
9. 现状与开放问题(2024–2026)· State of the field
这个方向变化极快,很多结论在一两年内被修正。几个例子,也是”为什么要谨慎下结论”的现实教材:
- “LLM 不会规划”→“推理模型会一部分,但很脆弱”。2023 年的 PlanBench 结果几乎全军覆没;2024 年的 o1 在 Blocksworld 上接近满分,但换个名字就掉一半(§5.2)。今天更准确的说法是”会规划,但不可靠、依赖表面形式”。
- 两跳诅咒的修订:从”完全不能潜在地组合两个事实”修订为”两个都是新学的合成事实时不能,但其中一个是自然事实时能”(§3.6)。
- 自我纠错:早期论文报告”让模型自己检查、修改答案”能提高准确率;后来发现很多实验用了”知道正确答案”的信号来决定何时停止,去掉这个信号后,纯内在的自我纠错常常不提高甚至降低准确率(Huang et al., ICLR 2024 Large Language Models Cannot Self-Correct Reasoning Yet);再后来,用强化学习专门训练的自我纠错又有了效果(第 7 讲)。
- 强化学习到底教会了模型什么:有研究发现 RL 训练后的模型 pass@1 提高了,但在很大的 上 pass@k 反而不如基座模型——RL 可能主要是在挑选基座模型已有的推理路径,而不是创造新能力(Yue et al. 2025 Does Reinforcement Learning Really Incentivize Reasoning Capacity in LLMs Beyond the Base Model?);这一点仍有争论(第 5 讲)。
- “思考的幻觉”之争(§4.5)。
- 多智能体到底有多大用:一方面有大规模部署的成功案例;另一方面,系统性的失败分析(MAST)和”计算量匹配的基线”的问题一直存在(§6)。
适合做研究项目的开放问题(每一讲还会列出更具体的):
- 潜在推理 vs 显式思维链:能不能在隐藏状态里推理、同时保持可监控性?
- 推理链的忠实性:怎样知道(并训练)模型说出它真正在想什么?
- 长度与组合泛化:怎样让推理能力推广到比训练时更长、更复杂的问题?
- 规划中的 LLM + 求解器:自动形式化(自然语言 → PDDL / 约束)的可靠性。
- 多智能体的收益分解:多样性 vs 计算量;什么时候辩论比投票好?
- 评测:能区分推理和记忆、过程和答案、能力和格式的评测方法。
10. 本讲义的路线图 · Roadmap
Part I 研究基础 1 引言(本讲) 2 研究方法论
Part II 推理 3 思维链的理论 4 测试时计算 5 RL 训练推理 6 可靠性与忠实性 7 自我纠错
Part III 规划 8 经典规划与 LLM-Modulo 9 规划即搜索 10 时序与约束规划(MACI) 11 长程智能体
Part IV 多智能体 12 群体智慧与集成 13 辩论(SocraSynth、EVINCE) 14 架构与编排 15 失败与评测 16 训练协作
Part V 走向 AGI 17 衡量进展 18 开放式学习与自我改进 19 安全与可监督性
Part VI 研究实践 20 从想法到论文
本讲的代码(多跳任务、小推理模型、统计工具)会在后面反复使用:第 3 讲在 cot_L2 里找查找电路、试循环 Transformer;第 4 讲在一个没训练好的模型上做采样、投票和验证器;第 5 讲用强化学习训练它写推理链;第 6 讲研究长度泛化和忠实性。
11. 小结 · Summary
- 这门研讨课研究 LLM 的推理、规划、多智能体协作,目标是做原创研究;怎样证明一个方法有效和方法本身一样重要。
- 2024–2026 年的进展巨大但参差不齐:IMO 金牌级的证明和”换个名字就掉一半”的规划并存。
- 一次前向计算的串行深度是固定的。填充 token 增加并行宽度,思维链增加串行深度;对天生串行的任务,只有后者有用(实验:思维链 100%,填充和直接回答都在随机水平)。
- 思维链有两个好处:表达能力(突破固定深度的限制)和可学习性(稠密的中间监督)。“学不会”不等于”表达不了”:2 层模型单独训练能做 1 跳,混在多跳题里却学不会。
- 更深的模型能在一次前向里做更多跳,但学得慢得多;“高于随机”可能来自排除法而不是目标机制。
- 分布内满分不证明会推理。训练数据会欠定解法,模型可能学到相对位置的捷径;对捷径的第一个猜测可能是错的。
- 用控制变量分辨原因(干扰 vs 长度);警惕混淆因素(没见过的 token);答案对不等于推理对。
- 规划:推理模型大幅进步但仍脆弱;生成–验证分离(LLM-Modulo、MACI)是务实的方向。
- 协作:有成功的系统,也有系统性的失败;多智能体的收益常常和更多计算混在一起。
- 五条实验纪律:控制变量、计算量匹配、看分布、多个种子、先算最小可检测效应并且不在测试集上调参。
12. 常见误区 · Common pitfalls
- “思维链有用,是因为模型多算了一些。” 不完全对。填充 token 也多算了同样多的位置,却没有用。关键是串行:写下的中间结果从第 0 层重新进入模型。
- “模型做不到 X,说明这个架构表达不了 X。” 可能只是学不会(数据、目标、优化的问题)。本讲的 direct 模型就是例子。
- “准确率高于随机,说明模型部分学会了。” 可能是学会了输出分布(从不回答起点)或者排除法,而不是部分的目标能力。看答案的分布。
- “测试集上 100%,说明学会了算法。” 可能是捷径;必须在分布外、扰动下检验。
- “加了干扰掉点,说明模型容易被干扰。” 先控制住其他同时改变的因素(长度、格式)。
- “我只测了一种捷径,模型不符合,所以它没走捷径。” 列出多个候选假设逐一检验。
- “答案对了,所以推理对了。” 不一定;评测过程,或至少抽查推理链。
- “新方法比基线高 3 个点,p < 0.05,所以它更好。” 检查:几个种子?测试集多大?试了多少个变体?基线的计算量匹配吗?
- “多智能体比单智能体好,说明协作有用。” 先和”同样计算量的单智能体”(多次采样投票、更长思维链)比较。
- “玩具模型上的结论可以直接推到大模型。” 机制可能推广,量级不能;找真实模型上的独立证据。
13. 练习 · Exercises
练习 1(计算账本)。一个 3 层模型,题目 、。题面长度是多少?分别对 direct、pause、cot 写出”计算的位置数、串行前向次数、串行深度”。
参考答案:每条陈述加分号是 4 个字符,问题 “5?x” 是 3 个字符,题面长度 。 direct:27 个位置、1 次前向、深度 3。pause: 个位置、1 次、深度 3。cot: 个位置(5 个推理字母和
|也要算)、 次前向、深度 。
练习 2(为什么填充 token 在别处有用)。Goyal et al. 的暂停 token 在 SQuAD 上提高了 18%,在我们的任务上却完全没用。用 §3.2–§3.3 的语言解释这两个结果为什么不矛盾。什么样的任务能从填充 token 中受益?
参考答案:填充 token 增加的是并行计算(更多位置同时计算、更多注意力头可以汇总信息),不增加串行深度。阅读理解里”从一段文字里找到并汇总相关的几处信息”这类计算主要是并行的,更多的计算位置可以帮忙(而且他们是在预训练和微调时都加入暂停 token,模型学会了利用它们)。指针追踪的第 跳依赖第 跳的结果,是串行的,宽度换不来深度。Pfau et al. 的结论也一致:填充 token 能帮助 3SUM 这类可并行化的问题(在 TC⁰ 之内),帮不了天生串行的问题。GSM8k 只提高 1% 也符合这个解释——多步数学题主要需要串行步骤。
练习 3(统计)。你的新方法在 500 道题上得到 74.0%,基线是 71.0%。逐题对比:只有新方法答对的有 45 道,只有基线答对的有 30 道。(a) 用 McNemar 检验,p 值是多少?(b) 如果你只知道两个准确率,用不配对的两比例检验,p 值是多少?(c) 在 500 道题、71% 的基线下,不配对检验的最小可检测效应是多少?(d) 你的结论是什么?还需要什么证据?
参考答案(用
research_kit算):(a)binom_two_sided_p(30, 75)≈ 0.105;(b)two_proportion_p(370, 500, 355, 500)≈ 0.29;(c)mde_two_proportions(500, 0.71)≈ 8.0 个点;(d) 两个检验都不显著,3 个点的差远小于不配对检验能可靠检测的 8 个点(配对检验更灵敏,但 p ≈ 0.1 也不够)。需要:更大的测试集(或几个不同的基准)、多个种子(如果方法涉及训练)、报告试过多少个变体;如果改进确实只有 3 个点,要想清楚它是否值得作为论文的主要结论。
练习 4(长度泛化跟着训练分布走)。用 TrainConfig(mode="cot", n_range=(4, 12)) 训练一个新的思维链模型(调用 tr.load_or_train,指定一个新的名字和一个新的 ckpt_dir,不要覆盖标准模型),在 、、()上评测。先预测结果,再运行。
参考答案(编写时的实际运行,2000 步,约 50 秒):、:100%;、:100%;、:100%; 加 4 条干扰:100%;、:100%(超出训练范围的 12,仍然正确);、:68.3%;、:0.3%。训练分布变宽后,长度泛化的边界往外推了一段(12 → 14 仍然完美),但没有消失。这说明 §4.4 的”长度泛化失败”是训练分布的属性,而不是”指针追踪本身对这个模型太难”。(这个模型在第 500 步探针准确率就到了 100%,比
cot_L2的 750 步还快——更多样的训练分布有时反而更容易学。)注意:n_range上限超过 10 时,跳数会被限制在 9 以内,因为题面只用一位数字表示跳数(hop_world已经处理了这一点)。
练习 5(设计一个探针)。§4.4 的”更多跳”实验被”没见过的数字”污染了。设计一个不被污染的实验来回答”思维链模型能不能走比训练时更多的步数”。提示:问题出在训练分布里 的取值范围。
参考答案(两种设计):问题的根源是”跳数”用一个数字 token 表示,训练时没出现的跳数就意味着没见过的 token。要测”能不能走更多步”,必须让”更多步”不引入任何新 token: (1) 一元表示:把 写成 个重复的符号(例如 “???a” 表示从 a 走 3 跳)。训练时 ,测试 –9:所有 token 都见过,唯一的变化是”问号更多、推理链更长”。 (2) 以目标为停止条件:问”从 a 出发走到 x 需要几跳”或”一直走到第一次遇到 x 为止”,推理链的长度由环的结构决定,而不是由一个数字决定;训练用较短的距离,测试用较长的距离。 两种设计都要同时检查题面长度:如果更多步也意味着更长的题面,就要像 §4.4 那样把长度控制住。原则是:让测试条件和训练条件只在你想测的那一个维度上不同。
练习 6(排除法)。§3.5 的 2 层长训练模型从不回答 。(a) 如果它在剩下的 5 个字母里均匀地猜,准确率应该是多少?(b) 实际是 35.3%,答案分布显示 占 36%、 占 24%。你能想出它可能利用的另一条”一次查找就能得到”的信息吗?设计一个实验验证你的猜想。
参考答案:(a) 1/5 = 20%。(b) 一个猜想: 是”起点的前驱的前驱”, 是”起点的后继的后继”。2 层模型能用一次查找得到起点的后继 和前驱 ,但第二跳需要再查一次。它可能利用了某种”部分的第二跳”信号,例如对”以 开头的陈述”或”以 结尾的陈述”有微弱的注意力,从而对 和 有偏好。验证方法:(1) 构造题目,把 开头的陈述放在不同位置,看 的比例是否随位置变化;(2) 用第 3 讲的激活修补(activation patching)技术,替换”以 开头的陈述”的内容,看答案是否跟着改变。
练习 7(论文卡片)。用 §8.4 的论文卡片读 Li et al. More Agents Is All You Need(TMLR 2024)。重点回答”基线公平吗”和”下一步可以做什么”。
参考答案要点:主张:仅靠采样 + 投票,性能随智能体数量提高,且可与其他方法叠加。基线:作者比较了不同数量的采样,这本身就是计算量的扫描;需要注意它和”更长的思维链""更强的单个模型”在同等成本下的比较。局限:投票要求答案可以比较(选择题、数值答案),开放式生成不适用;收益随任务难度变化。下一步:在答案不可直接比较的任务上,怎样做”投票”(用模型来聚类答案?用验证器?);收益什么时候饱和(错误相关性)——这就是第 12 讲的内容。
练习 8(研究提案)。写一段半页的研究提案:问题是”多智能体辩论能不能提高一个没训练好的推理模型在多跳任务上的准确率”。要求写出:假设、实验条件(包括计算量匹配的基线)、指标、种子数、测试集大小(用最小可检测效应论证)、你预期的结果和”如果结果相反你会怎么解释”。
参考答案要点:假设:如果不同实例的错误不完全相关,辩论(互相看对方的推理链后修改)能纠正一部分错误。条件:(1) 单次贪心解码;(2) 次采样 + 多数投票(计算量匹配辩论的总 token 数);(3) 个实例、 轮辩论;(4) 消融:辩论时只看对方的答案不看推理链。指标:最终答案准确率 + 推理链全对的比例 + 辩论中”由对改错”的次数。种子:训练 3 个以上不同种子的模型。测试集:预期改进约 5 个点、基线约 60% 时,不配对检验约需每组 道题(配对检验需要的少一些)。若辩论不如投票:可能是错误高度相关、或者模型会被对方的错误推理说服(从众)——这本身就是一个值得报告的结论。
14. 延伸阅读 · Further reading
思维链与串行计算
- J. Wei et al. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. NeurIPS 2022.
- T. Kojima et al. Large Language Models are Zero-Shot Reasoners. NeurIPS 2022.
- M. Nye et al. Show Your Work: Scratchpads for Intermediate Computation with Language Models. 2021.
- W. Merrill, A. Sabharwal. The Parallelism Tradeoff: Limitations of Log-Precision Transformers. TACL 2023.
- W. Merrill, A. Sabharwal. The Expressive Power of Transformers with Chain of Thought. ICLR 2024.
- Z. Li, H. Liu, D. Zhou, T. Ma. Chain of Thought Empowers Transformers to Solve Inherently Serial Problems. ICLR 2024.
- G. Feng et al. Towards Revealing the Mystery behind Chain of Thought: A Theoretical Perspective. NeurIPS 2023.
- C. Sanford, D. Hsu, M. Telgarsky. Transformers, Parallel Computation, and Logarithmic Depth. ICML 2024.
- J. Pfau, W. Merrill, S. Bowman. Let’s Think Dot by Dot: Hidden Computation in Transformer Language Models. 2024.
- S. Goyal et al. Think Before You Speak: Training Language Models With Pause Tokens. ICLR 2024.
- N. Wies, Y. Levine, A. Shashua. Sub-Task Decomposition Enables Learning in Sequence to Sequence Tasks. ICLR 2023.
- J. Kim, T. Suzuki. Transformers Provably Solve Parity Efficiently with Chain of Thought. 2024.
- S. Hao et al. Training Large Language Models to Reason in a Continuous Latent Space(Coconut). 2024.
潜在多跳推理
- O. Press et al. Measuring and Narrowing the Compositionality Gap in Language Models. Findings of EMNLP 2023.
- S. Yang et al. Do Large Language Models Latently Perform Multi-Hop Reasoning? ACL 2024.
- M. Balesni, T. Korbak, O. Evans. Lessons from Studying Two-Hop Latent Reasoning(原题 The Two-Hop Curse). arXiv 2411.16353, v4 2025.
- B. Wang et al. Grokked Transformers are Implicit Reasoners. NeurIPS 2024.
推理还是捷径
- R. Geirhos et al. Shortcut Learning in Deep Neural Networks. Nature Machine Intelligence 2020.
- A. D’Amour et al. Underspecification Presents Challenges for Credibility in Modern Machine Learning. JMLR 2022.
- I. Mirzadeh et al. GSM-Symbolic: Understanding the Limitations of Mathematical Reasoning in Large Language Models. ICLR 2025.
- Z. Wu et al. Reasoning or Reciting? Exploring the Capabilities and Limitations of Language Models Through Counterfactual Tasks. NAACL 2024.
- R. T. McCoy et al. Embers of Autoregression. 2023(PNAS 2024).
- N. Dziri et al. Faith and Fate: Limits of Transformers on Compositionality. NeurIPS 2023.
- P. Shojaee et al. The Illusion of Thinking. 2025;A. Lawsen. Comment on The Illusion of Thinking. 2025.
规划
- K. Valmeekam et al. PlanBench. NeurIPS 2023 Datasets & Benchmarks;LLMs Still Can’t Plan; Can LRMs? A Preliminary Evaluation of OpenAI’s o1 on PlanBench. 2024.
- S. Kambhampati et al. Position: LLMs Can’t Plan, But Can Help Planning in LLM-Modulo Frameworks. ICML 2024.
- A. Gundawar et al. Robust Planning with LLM-Modulo Framework: Case Study in Travel Planning. 2024.
- T. Kwa et al.(METR). Measuring AI Ability to Complete Long Tasks. 2025.
多智能体协作
- M. Minsky. The Society of Mind. 1986.
- Y. Du et al. Improving Factuality and Reasoning in Language Models through Multiagent Debate. ICML 2024.
- J. Li et al. More Agents Is All You Need. TMLR 2024.
- G. Irving, P. Christiano, D. Amodei. AI Safety via Debate. 2018.
- E. Y. Chang. SocraSynth(arXiv 2402.06634);EVINCE(arXiv 2408.14575);MACI(arXiv 2501.16689);Multi-LLM Agent Collaborative Intelligence: The Path to AGI(ACM Books).
- Anthropic. How we built our multi-agent research system. 2025.
- M. Cemri et al. Why Do Multi-Agent LLM Systems Fail? NeurIPS 2025 Datasets & Benchmarks.
AGI 的定义与衡量
- M. R. Morris et al. Levels of AGI: Operationalizing Progress on the Path to AGI. 2023.
- F. Chollet. On the Measure of Intelligence. 2019.
研究方法
- R. Hamming. You and Your Research. 1986.
- J. Schulman. An Opinionated Guide to ML Research. 2020.
- R. Sutton. The Bitter Lesson. 2019.
- S. Keshav. How to Read a Paper. ACM SIGCOMM CCR, 2007.
- R. T. McCoy, J. Min, T. Linzen. BERTs of a Feather Do Not Generalize Together. BlackboxNLP 2020.
- C. Olsson et al. In-context Learning and Induction Heads. 2022.
- A. Power et al. Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets. 2022.
- Z. Allen-Zhu, Y. Li. Physics of Language Models(系列论文). 2023–2024.
本讲 §9 提到的修正与争论
- J. Huang et al. Large Language Models Cannot Self-Correct Reasoning Yet. ICLR 2024.
- Y. Yue et al. Does Reinforcement Learning Really Incentivize Reasoning Capacity in LLMs Beyond the Base Model? 2025.
15. 下一讲预告 · Next lecture
第 2 讲:LLM 研究方法论——选题、假设、基线、消融、评测、可复现性与写论文。 本讲 §8 只给了五条纪律的”预告”。下一讲把它们展开成一套完整的工作流程:怎样从一个模糊的兴趣得到一个可证伪的假设;怎样设计强基线和消融;评测里最常见的坑——数据污染(测试题混进了训练数据)、LLM 当裁判的偏差、调参预算不对等——在我们的小模型上亲手制造出来、再学会检测和避免;怎样写一篇让审稿人信服的论文,以及怎样审别人的论文。