Lecture 2 · LLM 研究方法论:选题、假设、基线、消融、评测、可复现性与写论文 · Research Methodology for LLM Research

Advanced Large Language Models Research Seminar · Lecture 02。个人学习讲义与配套实验,按主题整理并持续修订。

课程源码 ZIP ↓

个人整理的学习笔记,非官方讲义;课程来源与整理说明见课程介绍。配套示例未逐一运行验证。

本篇目录

对应 Maps to:CS486 课程描述的 “design, implement, and evaluate novel approaches”,以及推荐准备里的 “background in machine learning evaluation methods”、“familiarity with reading and writing academic papers”、“basic understanding of experimental design”。 依据说明:CS486 没有公开的日程或讲义。本讲依据研究方法论的经典文章(Hamming、Schulman、Lipton & Steinhardt、Dodge et al.、Pineau et al.)、LLM 评测方面的公开研究(数据污染、LLM 当裁判、评测方差、排行榜)和本讲义自己设计的实验来写;实验数字全部来自配套代码的实际输出。 配套代码 Code:code/lecture02/(PyTorch + numpy + 标准库;3 个脚本 + 3 个模块;第一次运行约 3 分钟——训练 2 个被污染的模型,并行跑 24 次调参试验;之后每个脚本几秒) 预计阅读时间:3–4 小时(含运行代码)


0. 本讲导航 · How to read this lecture

0.1 学习目标 Learning goals

学完这一讲,你应该能够:

  1. 区分四种研究贡献(新方法、分析与理解、评测与基准、复现与负结果),并用”重要、可做、可测、新”四条标准评价一个研讨课题目。
  2. 把一个模糊的兴趣变成可证伪的假设:写出操作化的指标、预测、以及”什么结果会让我改变主意”。
  3. 设计公平的基线:计算量匹配、调参预算匹配;解释 A/A 测试为什么能”证明”一个方法比它自己好,以及 Dodge et al. 的期望最大值曲线怎样避免这个问题。
  4. 设计消融和析因实验,区分”行为证据”和”机制证据”,避免把收益归因到错误的组件上。
  5. 解释数据污染怎样抬高分数(剂量、时间、模型强弱的影响),以及四类检测方法(孪生基准、扰动、成员推断、时间切分)各自的能力与盲点。
  6. 解释 LLM 当裁判的位置偏差和冗长偏差会怎样让结论翻转;会用交换顺序、长度控制和 预测驱动推断(PPI) 来校正,并说出每种校正依赖的假设。
  7. 正确报告评测结果:置信区间、多个种子、配对比较、多重比较、“赢家的诅咒”;知道排行榜上的”选择性披露”是什么。
  8. 用 exp_kit.py 管理实验(配置指纹、只追加的日志、断点续跑、并行),按 NeurIPS checklist 的要求报告可复现性信息。
  9. 按”论点–证据”的结构写一篇论文,写一份有用的审稿意见。

0.2 先修与本讲范围 Prerequisites & scope

默认你已经会 Assumed本讲不展开 Not covered
第 1 讲:多跳指针追踪任务、小推理模型、research_kit 的统计工具因果推断的正式理论(潜在结果、DAG)——只用到”随机化 + 一次改一个因素”的直觉
二项分布、置信区间、p 值的直觉(第 1 讲 §8.3)贝叶斯统计、多层模型(第 17 讲用项目反应理论时再讲)
会运行 Python 脚本大规模训练的工程(分布式、集群调度)

0.3 本讲地图 Map

§1  从兴趣到问题:四种贡献;好问题的标准;在有限算力下做研究;文献调研
§2  从问题到假设:操作化与效度;写下预测;最小实验
§3  基线:强基线;计算量匹配;调参预算匹配(A/A 测试、期望最大值曲线)           ← 代码 03
§4  消融与归因:一次改一个因素;析因设计与交互;行为证据 vs 机制证据
§5  评测:基准的效度与饱和;数据污染(制造、剂量、检测);LLM 当裁判(偏差与 PPI);
    评测的方差;排行榜与赢家的诅咒                                              ← 代码 01、02、03
§6  可复现性:种子、配置、日志、报告什么;泄漏
§7  写论文:论点–证据;摘要与引言;图表;局限
§8  审稿与被审
§9  研讨课项目的节奏与提案模板
§10–15  现状与开放问题、小结、常见误区、练习、延伸阅读、下一讲预告

1. 从兴趣到问题 · From interest to question

1.1 四种研究贡献

第 1 讲 §8.5 列了研讨课项目的四种形态。它们对应四种不同的”贡献”,评价标准也不同:

贡献类型一句话成功的标准例子(本课方向)
新方法“做 X 能提高 Y”在公平的比较下,稳定地、可复现地优于强基线;知道收益来自哪个组件一种新的多智能体辩论协议
分析与理解“Y 的原因是 Z”控制好的实验排除了其他解释;有机制证据第 1 讲:思维链的好处来自串行深度,不是更多计算
评测与基准“现有评测测不出 Y,这个能”新评测有效度(测的是想测的东西)、区分度、不易污染一个能分辨”规划”和”记忆”的基准
复现与负结果“X 的结论在条件 C 下不成立”认真的复现;说清楚哪里不同;排除了实现错误“自我纠错在去掉神谕信号后不再有效”

一个常见的误解是”只有新方法才算研究”。实际上,这个领域里很多影响最大的工作是后三类:揭示”捷径”的研究(GSM-Symbolic、反事实任务)、改变大家评测方式的工作(Chatbot Arena、METR 时间跨度)、推翻流行结论的复现(“LLM 还不能自我纠正推理”)。对一个季度的研讨课来说,后三类往往更容易做出扎实的结果。

1.2 好问题的标准

四条标准:

  1. 重要:答案会改变别人做研究或用模型的方式吗?Hamming 的问题——“你所在领域最重要的问题是什么?你为什么不在做它?“——后半句同样重要:如果最重要的问题现在没有可行的切入点,就找一个通向它的、现在能做的问题。
  2. 可做:一个季度、你手上的算力,能得到一个清楚的答案吗?研讨课最常见的失败是题目太大(“让 LLM 学会规划”),十周后只有一堆没结论的半成品。
  3. 可测:你知道用什么指标判断成败吗?如果你说不出”什么结果算成功、什么结果算失败”,这还不是一个研究问题(§2)。
  4. 新:别人做过吗?做过的话,你的版本有什么不同(更干净的控制、不同的设定、相反的结论)?

John Schulman 在 An Opinionated Guide to ML Research 里区分了两种研究风格:由想法驱动(“我有一个方法,找个地方用”)和由目标驱动(“我想让系统做到 X,需要什么就做什么”)。他建议多做后者:目标驱动的研究更容易发现真正的瓶颈,也更不容易做出”在一个精心挑选的基准上提高 0.5 个点”的工作。

1.3 在有限算力下做研究

研讨课的大多数项目没有大规模训练的算力。几种仍然能做出有价值结果的路线:

  • 玩具模型 + 合成任务(第 1 讲的做法):研究机制。外部效度要靠真实模型上的独立证据补上。
  • 用现成的开放模型做分析:探针、激活修补、扰动评测、行为测试——不需要训练。
  • 调用 API 的推理时方法:测试时计算、提示、多智能体编排、LLM + 外部工具。成本是 token,要提前估算预算(并且注意 API 模型会悄悄更新,§6.1)。
  • 评测与复现:设计新评测、在多个模型上系统地测、复现一个结论。

一个判断方法:先想好你的论文里最重要的那张图是什么,再估算画出它需要多少计算。如果需要的计算超出预算一个数量级,就缩小问题。

1.4 文献调研

找到一个方向的”前沿”:从一两篇最近的代表性论文出发,向后看它们引用的经典工作,向前看引用它们的新工作(Semantic Scholar / Google Scholar 的”被引用”)。读的时候填第 1 讲 §8.4 的论文卡片,特别留意每篇论文的”局限”和”未来工作”——研究问题常常就在那里。

一个有用的问题:“如果这篇论文的结论是真的,还应该有什么别的现象是真的?“然后去检验那个推论。例如:如果思维链的好处来自串行深度(第 1 讲),那么一个不写 token、但能在隐藏状态里循环计算的模型也应该得到这个好处——这就是第 3 讲的循环 Transformer 实验。


2. 从问题到可证伪的假设 · From question to falsifiable hypothesis

2.1 操作化与效度

“让模型更会推理”不是一个可检验的命题,因为”推理能力”不能直接测量。操作化(operationalization)就是把一个概念(construct)换成一个具体的测量:

“推理能力” → “在 n = 8 的指针追踪题上,k = 1–7 跳的准确率”(第 1 讲) “规划能力” → “在 Mystery Blocksworld 上生成可执行且达成目标的计划的比例”(第 8 讲)

操作化之后要问效度(validity):这个测量真的反映了那个概念吗?第 1 讲最大的教训就是效度问题:分布内准确率 100% 的两个模型,一个学会了按名字查找,一个学会了”看相邻那一条”——“分布内准确率”这个测量对”会不会推理”没有效度。Raji et al.(2021,AI and the Everything in the Whole Wide World Benchmark)批评了用少数基准代表”通用能力”的做法:一个基准只能测它的题目覆盖到的那一小部分能力。

2.2 写下预测

在跑实验之前,写下三件事:

  1. 假设:“思维链能让 2 层模型解决 7 跳的题,因为它提供了串行深度。”
  2. 预测:“cot 的准确率接近 100%;direct 和 pause 都接近随机;pause 不比 direct 好。”
  3. 反证条件:“如果 pause 和 cot 一样好,说明起作用的是’更多计算’而不是’串行深度’,我的假设就错了。”

第三条最重要:一个不可能被任何结果推翻的假设,不是一个科学假设。写下来还有一个好处:它防止你在看到结果之后再”调整”预测,使它看起来被证实了(这叫 HARKing,hypothesizing after the results are known)。这就是预注册(pre-registration)的思想;研讨课不需要正式预注册,但一份带日期的实验计划能起到同样的作用。

预测错了怎么办?如实记录,然后重新思考。 第 1 讲我预测错了很多次(direct 连 1 跳都学不会、捷径不是绝对位置、“更多跳”的实验被没见过的 token 污染了),每一次都比预测正确教会我更多。本讲的代码也有好几处结果和预想不同,记录在代码 README 的”关于实验结果”里。

2.3 最小实验

最小可行实验(minimum viable experiment):能检验你的核心假设的、最便宜的实验。先在最小的设定上得到一个清楚的信号,再扩大规模。理由:

  • 小实验快,一天能迭代很多次(Schulman 的”快速迭代”);
  • 大部分想法在最小实验上就失败了——越早失败越好;
  • 如果最小实验都得不到清楚的信号,扩大规模通常只会得到更贵的噪声。

第 1 讲的原型过程就是例子:第一版任务(变量赋值 + 模 10 算术)在 5000 步内学不会,换成指针追踪之后 1000 步就有清楚的信号——这个决定是在花了几分钟的原型实验后做出的,而不是在写完全部代码之后。


3. 基线 · Baselines

3.1 强基线

基线是你的方法要打败的东西。一个弱基线让任何方法看起来都很好,但结论没有价值。几条原则:

  • 包含”最简单的可能有效的方法”:例如对任何多智能体方法,“同样数量的采样 + 多数投票”(第 1 讲 §6.1);对任何复杂的提示方法,“直接让模型一步一步想”。
  • 包含当前的最好方法,并用它自己论文里的设置(或者更好的设置)。
  • 基线的实现要和你的方法一样认真:同样的代码库、同样的数据处理、同样的评测。

3.2 计算量匹配

第 1 讲 §6.4 和 §8.3 已经讲过:多智能体系统用了 mm 倍的 token,对照组就应该是”单智能体用 mm 倍的 token”。可以匹配的”计算量”有几种口径,论文里要说清楚用了哪一种:

口径适用场景注意
生成的 token 数API 模型、推理时方法输入 token 也要算钱;长上下文的成本不是线性的
模型调用次数多智能体、采样投票不同调用的长度可能差很多
FLOPs比较不同大小的模型(第 4 讲的计算最优分配)难以精确计算 API 模型的 FLOPs
墙钟时间 / 美元成本实际部署依赖硬件和并行方式

3.3 调参预算匹配:A/A 测试

一个更隐蔽的不公平:你给自己的方法调了很多次参,给基线只用了默认值。 Melis, Dyer & Blunsom(ICLR 2018)把一个标准 LSTM 语言模型认真调参之后,它超过了好几个当时声称”更先进”的架构;Lucic et al.(NeurIPS 2018)在 GAN 上发现,给足调参预算和随机重启后,大多数 GAN 变体的表现差不多。

代码 03_tuning_budget.py 做了一个 A/A 测试(这个名字来自 A/B 测试:两组用的其实是同一个东西):只有一个方法——2 层思维链模型、1000 步——从同一个超参数空间(学习率、warmup、权重衰减、随机种子)随机抽 24 组配置,真实地训练 24 次(6 个进程并行,约 1.5 分钟)。

演示 1:24 次试验在分布内(n = 8)全部是 100%,在分布外的开发集(n = 12 的长题面)上却从 8.0% 到 97.5% 不等——同一个方法,结果的分布非常宽。(顺带一个教训:分布内的指标已经饱和,区分不出任何配置。选评测指标时要先确认它能区分你关心的差别。)

演示 2:期望最大值曲线。Dodge et al.(EMNLP 2019,Show Your Work)建议报告”给 kk 次调参预算时,期望的最好验证集结果”。把 nn 次试验的结果从小到大排成 v(1)≤⋯≤v(n)v_{(1)} \le \dots \le v_{(n)},从中有放回地抽 kk 次,最大值的期望是

E[max⁡]=∑i=1nv(i)[(in)k−(i−1n)k]\mathbb{E}[\max] = \sum_{i=1}^{n} v_{(i)} \left[ \left(\frac{i}{n}\right)^k - \left(\frac{i-1}{n}\right)^k \right]

(exp_kit.expected_max;自检里和暴力枚举核对过。)

预算 k1248121624
期望最大开发集准确率72.8%82.1%88.3%93.0%94.8%95.7%96.5%
标准差(点)± 18.6± 11.2± 8.5± 5.6± 3.8± 2.7± 1.7

同一个方法,只因为调参次数从 1 增加到 12,“报告的分数”就差了 22 个点。

演示 3:A/A 测试。把 24 次试验随机分给”基线”和”新方法”(重复 4000 次随机分配),各自报告开发集上最好的那次:

调参预算“新方法”平均领先(开发集)领先 ≥ 5 个点的比例测试集上平均领先
基线 2 次 vs 新方法 12 次+13.366.2%+13.0
基线 6 次 vs 新方法 6 次−0.121.8%−0.1
基线 12 次 vs 新方法 2 次−13.41.4%−13.2
基线 1 次 vs 新方法 1 次+0.340.8%+0.3

两个读法:

  1. 预算 2 vs 12 时,“新方法”在三分之二的情况下领先 5 个点以上——可两者是同一个方法。
  2. 我原本以为测试集上的领先会缩小(开发集上的运气在测试集上回归)。实际上几乎没有缩小(+13.3 → +13.0):开发集和测试集的相关系数是 0.989,多调参确实找到了真正更好的配置。这正是危险的地方:这个领先是真的、能复现、换一套测试题也查不出来——但它来自调参预算,不来自”新方法”的想法。唯一的防御是对等的调参预算(或者报告整条期望最大值曲线,让读者自己比较同一预算下的结果)。

还要注意等预算的一行:6 vs 6 时平均领先是 0,但仍有 21.8% 的情况下某一方领先 5 个点以上;1 vs 1 时这个比例是 40.8%。单次运行的比较,噪声就有这么大——这和第 1 讲 §8.3 的种子方差是同一件事。

论文里该报告什么:超参数的搜索空间、搜索方法、给每个方法(包括基线)的试验次数、选择配置用的是哪个数据集。

3.4 “苦涩的教训”检验

Sutton 的”苦涩的教训”(第 1 讲 §8.1)给新方法提了一个额外的问题:收益会随规模保持吗? 很多在小模型上有效的技巧(特定的提示模板、手工设计的推理结构),在更大的模型上收益消失,甚至变成负的——大模型自己就会做那件事了。研讨课没有算力跑到前沿规模,但至少可以在两三个规模上测(例如同一家族的 1B / 8B / 70B),看收益是增长、不变还是缩小。


4. 消融与归因 · Ablations and attribution

4.1 一次改一个因素

一个新方法通常有好几个组件。消融(ablation)问:每个组件贡献了多少?两种做法:

  • 去掉一个(leave-one-out):从完整方法出发,每次去掉一个组件,看下降多少。
  • 加上一个(add-one):从基线出发,每次加上一个组件,看上升多少。

两种做法的结论可以不一样——当组件之间有交互时。例如组件 A 只有在组件 B 存在时才有用:去掉 A 会下降(leave-one-out 说 A 重要),但只加 A 不会上升(add-one 说 A 不重要)。

4.2 析因设计与交互

如果组件不多(2–4 个),最干净的做法是全析因设计(full factorial):所有组合都跑一遍。3 个二值组件就是 23=82^3 = 8 个条件。它能估计每个组件的主效应和它们之间的交互效应。代价是条件数随组件数指数增长,每个条件还要多个种子。

第 1 讲的三种作答方式其实就是一个小的消融:“答案前有没有额外位置”(direct vs pause)和”额外位置上有没有写下中间结果”(pause vs cot)。正因为有 pause 这个中间条件,我们才能把 cot 的收益归因到”写下中间结果”而不是”多了位置”。

4.3 行为证据 vs 机制证据

“去掉组件 X,准确率下降”是行为证据:它说明 X 有用,但不说明 X 为什么有用。机制证据直接看模型内部或输出的细节:第 1 讲用”答案落在第几跳""每一步符合哪条规则”这些诊断,看到了模型实际在做什么(排除法、邻居规则)。第 3 讲会用注意力和激活修补找到推理的电路。

Lipton & Steinhardt(2018,Troubling Trends in Machine Learning Scholarship)列出的几个常见问题,在 LLM 研究里依然普遍:

  • 没有找到收益的来源:论文提出了 4 个改动,报告了整体收益,但没有消融说明是哪个改动起作用(常常是某个不起眼的”小技巧”,比如更好的调参)。
  • 把推测当解释:“我们的方法有效,因为它让模型更好地理解了问题”——没有证据支持这个”因为”。
  • 滥用语言:把一个提示模板叫作”让模型学会了反思”。

5. 评测 · Evaluation

5.1 基准的效度、区分度与饱和

一个好的评测要同时满足:

  • 效度:测的是想测的能力(§2.1)。
  • 区分度:能区分不同水平的系统。饱和的基准(大家都接近满分)和太难的基准(大家都接近 0)都没有区分度。代码 03 的分布内指标就是”饱和”的例子。
  • 可靠性:重复测量结果稳定(§5.4)。
  • 抗污染:题目不容易出现在训练数据里(§5.2)。

Dehghani et al.(2021,The Benchmark Lottery)指出,“哪个方法最好”常常取决于选了哪些基准;同一组方法换一组基准,排名可以变化很大。所以一个方法的结论最好在几个不同类型的评测上都成立。

5.2 数据污染:亲手制造,再学会发现

数据污染(data contamination):基准题出现在了模型的训练数据里。对网页规模预训练的 LLM,这几乎无法完全避免——基准题会被贴到网上、被讨论、被复制进其他数据集。它让分数虚高,让研究结论失真。

代码 01_contamination.py 在第 1 讲的实验台上亲手制造污染:一个 420 道题的”基准”(n = 8,k = 1–7),分成 7 组各 60 道,按不同次数和时间插进 2000 步的训练数据流。插入总数 7020 次,只占全部 128,000 道训练题的 5.5%。训练一个直接回答模型和一个思维链模型;第 1 讲的 direct_L2(同样的训练、没有污染)作为对照。

演示 1:报告的分数被抬高了多少?

模型原基准(420 道)孪生基准(同分布新题)差
直接回答(被污染)38.3% [34%, 43%]15.2% [12%, 19%]+23.1
直接回答(干净对照)13.8% [11%, 17%]15.5% [12%, 19%]−1.7
思维链(被污染)100.0%100.0%0.0

被污染的直接回答模型”报告”38.3%,可它在新题上的真实能力和干净对照一样,几乎是随机水平。思维链模型被同样污染,却没有任何虚高——它已经会了,背不背题没有区别。所以污染最抬高的是弱模型的分数,会压缩强弱模型之间的差距、扭曲排名。

演示 2:剂量–反应(直接回答模型,每组 60 道):

组被污染的模型干净对照
干净(没见过)18.3%10.0%
见过 1 次11.7%11.7%
见过 4 次26.7%10.0%
见过 16 次45.0%15.0%
见过 64 次100.0%18.3%
16 次,都在训练早期21.7%13.3%
16 次,都在训练后期45.0%18.3%
  • 每组只有 60 道题,±10 个点以内的差别是噪声(“见过 1 次”比干净组还低就是噪声);但 16 次、64 次的抬高远超噪声。这和 Carlini et al.(ICLR 2023)在真实语言模型上的发现一致:记忆随重复次数增长(还随模型规模和上下文长度增长)。这也是训练数据去重(Lee et al. 2022;Kandpal et al. 2022)能降低记忆的原因。
  • 时间很重要:同样 16 次,集中在训练早期的几乎被后面的训练”冲掉”了(21.7%,接近干净组),集中在后期的保留下来了(45.0%)。在真实流程里,这意味着微调 / 后训练阶段混进的基准题比预训练早期的更危险。

演示 3:扰动检测(被污染的直接回答模型):

组原题字母改名陈述换序
见过 16 次45.0%11.7%41.7%
见过 64 次100.0%18.3%93.3%
16 次,都在后期45.0%8.3%28.3%

字母改名(保持结构、换掉所有字母)让被背下来的题回到随机水平;但只打乱陈述顺序几乎没有影响(64 次组仍有 93.3%)。我原本以为模型背的是”这一串字符”,换个顺序就认不出来了。结果说明它记住的是”这些字母、这些箭头 → 这个答案”的对应关系——注意力对陈述的排列顺序本来就不太敏感。教训:扰动必须改掉模型赖以记忆的特征才有检测力。GSM-Symbolic 换人名和数字(Mirzadeh et al. 2024)、GSM1k 按同样的规格重新出题(Zhang et al., NeurIPS 2024 Datasets & Benchmarks:一些模型家族在新题上下降最多 8%,前沿模型基本没有下降),都是在改”记忆的钥匙”。

演示 4:成员推断(只看模型的自信程度,AUC,相对干净组):

组最大概率(不需要答案)正确答案的概率(需要答案)
见过 4 次0.5560.602
见过 16 次0.5320.778
见过 64 次0.9840.999
16 次,都在后期0.5590.823

不需要知道答案的信号只能抓到”背得很熟”的题;需要知道答案的信号灵敏得多(这对应真实方法里的 Min-K% Prob 等基于 token 概率的检测,Shi et al. ICLR 2024),但对轻度污染仍然无能为力——而轻度污染已经足以让分数明显虚高(16 次组从约 15% 升到 45%)。

检测与预防的工具箱:

方法思路盲点
孪生 / 新题基准(GSM1k)按同样规格重新出题,比较分数出题成本高;新题和原题的难度要匹配
扰动(GSM-Symbolic)改掉表面特征,保留结构要改对”钥匙”(演示 3)
成员推断(Min-K% Prob)背过的文本概率更高只能抓到重度记忆(演示 4);需要模型的概率
可交换性检验(Oren et al., ICLR 2024)基准题按原顺序出现的概率是否显著高于打乱后的顺序需要模型的概率;只能检测整份基准被逐字记住
时间切分(LiveCodeBench 等)只用模型训练截止日期之后出现的题需要持续出新题;截止日期不一定可信
金丝雀字符串(canary)在基准文件里放一个唯一的字符串,请数据收集者过滤掉依赖对方遵守
不公开测试集只公开开发集,测试集由维护者私下评测透明度降低

给研究者的实用建议:报告模型的训练数据截止日期和基准的发布日期;如果可能,在一个自己新出的小测试集上也评测一遍;用扰动版本检查结论是否稳健。第 1 讲的合成任务有一个天然的优势——每次评测都可以重新生成题目。

(练习 6 把污染换到思维链模型不完美的分布外题目上,结果出人意料:被”污染”的不只是那几道题,而是整个题型——分布层面的污染连孪生基准也查不出来。)

5.3 LLM 当裁判:偏差与无偏校正

开放式任务(写作、对话、研究报告、多智能体系统的输出)没有标准答案,很多论文用一个强 LLM 当裁判:给它两个回答,问哪个更好,统计胜率。Zheng et al.(NeurIPS 2023,MT-Bench 与 Chatbot Arena)发现 GPT-4 作为裁判和人类专家的一致率超过 80%,和人类之间的一致率相当;同时也系统地记录了裁判的几种偏差:位置偏差(偏爱第一个或第二个)、冗长偏差(偏爱更长的回答)、自我偏好(偏爱自己同一家族模型的回答)。

代码 02_llm_judge.py 在一个知道真相的模拟世界(judge_sim.py)里研究这些偏差:800 个提示,系统 A 真实地稍好一些,系统 B 更啰嗦(长 1.6 倍);“人类”按质量差判断(这是我们定义的真相);“裁判”按质量差判断,但偏爱排在前面的回答和更长的回答。

演示 1:一次评测里,结论翻转了。

方法估计的 A 胜率
真值(人类眼中 A 的胜率)0.550
裁判,A 总在前0.580
裁判,B 总在前0.333
裁判,交换顺序取平均0.456(认为 B 更好!)
长度控制(回归后令长度差 = 0)0.547
只用 100 个人类标注0.560

交换顺序取平均去掉了位置偏差,但冗长偏差还在,而且足以让结论反过来。长度控制(Dubois et al. 2024 的 Length-Controlled AlpacaEval 的思路)拟合一个逻辑回归:

logit⁡P(裁判选 A)=θ0+θ1ln⁡ℓAℓB+θ2⋅[A 在前]\operatorname{logit} P(\text{裁判选 A}) = \theta_0 + \theta_1 \ln\frac{\ell_A}{\ell_B} + \theta_2 \cdot [\text{A 在前}]

然后报告 σ(θ0)\sigma(\theta_0)——“如果两个回答一样长、位置平衡,裁判选 A 的概率”。这次估计是 0.547,回到了正确的一侧。(真实的 AlpacaEval 2.0 用长度控制把它和 Chatbot Arena 的排名相关性从约 0.94 提高到约 0.98。)

演示 2:重复 300 次评测:

方法平均偏差波动95% 区间覆盖率区间宽度
裁判,交换平均(只用裁判的区间)−0.0970.0110.0%0.052
长度控制−0.0060.019——
只用 100 个人类标注−0.0050.04896.3%0.191
PPI,裁判 0/1 投票(λ = 1)−0.0030.05195.0%0.215
PPI++,裁判 0/1 投票(估计 λ)−0.0040.04696.0%0.188
PPI,裁判概率分数(λ = 1)−0.0040.04297.0%0.174

三个要点:

  1. “只用裁判”的置信区间覆盖率是 0%。区间很窄(0.052),但偏差(−0.097)远大于区间宽度。置信区间只反映抽样噪声,不反映测量本身的偏差;评测的样本再多,也治不了有偏的裁判。
  2. 预测驱动推断(PPI)(Angelopoulos et al., Science 2023):用全部 NN 个提示的裁判分数 j^i\hat{j}_i 和其中 nn 个提示的人类判断 hih_i,
θ^PPI=λ⋅1N∑i=1Nj^i  +  1n∑i∈标注(hi−λj^i)\hat\theta_{\text{PPI}} = \lambda \cdot \frac{1}{N}\sum_{i=1}^{N} \hat{j}_i \;+\; \frac{1}{n}\sum_{i \in \text{标注}} \left(h_i - \lambda \hat{j}_i\right)

λ=1\lambda = 1 时,第一项用大量裁判数据压低方差,第二项(“校正项”)估计并减掉裁判的平均偏差,所以整体无偏——三种 PPI 的覆盖率都在 95% 附近。

  1. 但 PPI 不一定比只用人类标注更好。用裁判的 0/1 投票时,经典 PPI 的区间反而更宽(0.215 vs 0.191):这个世界里裁判投票和人类判断只有约 62% 一致,校正项 h−j^h - \hat{j} 的方差比省下的方差还大。两种改进:PPI++(Angelopoulos, Duchi & Zrnic 2023)用数据估计最优的 λ=Cov⁡(h,j^)/((1+n/N)Var⁡(j^))\lambda = \operatorname{Cov}(h, \hat j) / ((1 + n/N)\operatorname{Var}(\hat j))——λ\lambda 接近 0 时就退化为”只用人类标注”,所以它渐近地不会更差(0.188);或者用裁判的概率分数(真实 LLM 可以读出判决 token 的对数概率)代替 0/1 投票(0.174)。

演示 3:如果长度本身就是质量的一部分(人类也偏爱更长、更完整的回答),长度控制就会过度校正(平均偏差 +0.064),而 PPI 仍然无偏(+0.001)。长度控制依赖一个假设——“长度不是质量的一部分”;PPI 只依赖”人类标注是随机抽的”。每种校正方法都有它的假设,用之前要想清楚假设在你的场景里成不成立。

演示 4:裁判越好,PPI 省下的标注越多吗?

裁判裁判–人类一致率宽度比 PPI(λ = 1)宽度比 PPI++
原来的裁判(judge_beta = 0.8)0.6180.9130.911
更敏锐的裁判(judge_beta = 2)0.6850.9440.898
更敏锐的裁判(judge_beta = 4)0.7141.0110.905
无偏、敏锐度和人类一样0.6380.8950.892
上限:裁判分数 = 人类偏好的真实概率—0.896—

(宽度比 = PPI 区间宽 / 只用人类标注的区间宽。)

我原本以为”裁判越敏锐、和人类越一致,PPI 越好”。结果相反:更敏锐但仍有长度和位置偏差的裁判,一致率从 0.618 升到 0.714,λ = 1 的 PPI 却越来越差(宽度比 0.913 → 1.011)——分数过于自信又带着偏差时,校正项的方差变大。PPI++ 把 λ 缩小后不再变差。决定 PPI 收益的是裁判分数和”人类偏好的概率”有多接近(校准),而不是一致率。

最后一行给出了这个世界里的上限:即使裁判完美地知道每个提示上人类偏好的概率,区间也只缩到 0.896,相当于 1.25 倍的人类标注。原因是单个人类标注本身就是一个噪声很大的测量:这个世界里两次人类判断只有约 64% 一致(MT-Bench 报告的真实人类之间一致率与此相近)。在人类分歧更小、裁判校准更好的任务上,PPI 能省下的标注会多得多。

实用清单:两种顺序都判、取平均;报告长度并考虑长度控制(想清楚长度算不算质量);用少量人类标注做 PPI 校正或至少测一下裁判和人类的一致率;裁判不要和被评测的系统来自同一个模型家族;如果可能,让裁判输出概率或分数而不只是 0/1。

5.4 评测的方差

评测结果的波动来自好几个来源,第 1 讲 §8.3 已经量化了其中两个:

  • 题目抽样:测试集只是所有可能题目的一个样本(第 1 讲:100 道题时有 14.8% 的概率偏离 5 个点以上)。
  • 训练随机性:同一个配置换种子(第 1 讲:分布外 99.3% vs 8.0%)。
  • 生成随机性:温度采样时,同一个模型在同一道题上多次回答结果不同(第 4 讲)。
  • 提示格式:Sclar et al.(ICLR 2024)发现,只改变少样本提示的格式(分隔符、空格、大小写),开放模型在某些任务上的准确率可以相差几十个百分点。
  • 题目之间的相关性:很多基准的题目成组出现(同一篇文章的多个问题),Miller(2024,Adding Error Bars to Evals)建议用聚类标准误,否则置信区间会偏窄。

Madaan et al.(2024)系统地测量了 LLM 评测基准上种子带来的方差,发现很多基准上不同方法之间的差距和种子方差是同一个量级。报告方式:多个种子的均值 ± 标准差 + 配对比较;比较两个模型时,在同一组题上做配对检验(第 1 讲的 McNemar)。

5.5 排行榜与赢家的诅咒

赢家的诅咒:从很多候选里挑出”表现最好”的那一个,它的表现里一定包含一部分运气,所以在新的数据上会回落。代码 03 的演示 5 量化了它:从 200 道开发题里随机抽 mm 道当开发集,在上面选出最好的配置,

开发集大小 m选中配置的开发分 − 测试分选中配置的测试准确率
10+8.791.2%
20+4.994.4%
50+2.695.7%
200+1.096.5%

开发集越小,选中配置的开发分越系统性地偏高,真实水平也越低(选择被噪声误导)。很多推理基准只有几十道题(AIME 每年 30 道);在上面反复挑提示词、挑采样参数、挑检查点,报告的分数就是有偏的。

排行榜把这个问题放大了。The Leaderboard Illusion(Singh et al. 2025)发现,一些模型提供方在 Chatbot Arena 上私下测试了大量变体、只公开最好的那个(论文报告了 Llama 4 发布前的 27 个私有变体)——这就是代码 03 的”预算不对等 + 赢家的诅咒”,发生在整个领域的尺度上。读排行榜时要问:每个参赛者试了多少次?


6. 可复现性 · Reproducibility

6.1 让实验可以被重做

你自己三个月后是最常见的”复现者”。最低限度:

  • 固定随机种子,并且让每个实验的随机性只依赖它自己的配置(第 1 讲:同一台机器上重复运行逐字相同;删掉缓存重训得到逐位相同的权重)。
  • 每个结果都对应一个唯一的配置:exp_kit.config_id 给配置算一个指纹;ExperimentLog 把”指纹、配置、结果”只追加地写进 JSONL 文件。不要在表格里手动抄数字。
  • 断点续跑:代码 03 中途中断后再运行,只补跑缺少的试验(按指纹跳过已有的)。
  • 并行但确定:exp_kit.run_parallel 用多个进程跑互相独立的试验,按任务顺序返回结果——并行与否输出完全一样。
  • 记录代码版本(git commit)和环境(库版本、硬件)。
  • API 模型:记录模型的确切版本标识和调用日期;同一个名字背后的模型可能被悄悄更新,几个月后的复现可能得到不同的结果。

6.2 论文里报告什么

NeurIPS 从 2019 年起要求作者填写可复现性清单(Pineau et al., JMLR 2021 总结了这项计划)。对本课方向的论文,至少报告:

  • 数据:来源、预处理、训练 / 开发 / 测试的划分方式,测试集有没有被用来做任何选择。
  • 计算:硬件、总计算量(GPU 小时或 API token 数与费用)。
  • 超参数:最终取值、搜索空间、搜索方法、每个方法(包括基线)的试验次数(§3.3)。
  • 统计:几个种子、误差棒代表什么(标准差?标准误?置信区间?)、用了什么检验。
  • 失败的尝试:哪些变体没有效果。这对读者很有价值,却最常被省略。

6.3 泄漏

泄漏(leakage)是测试集信息以任何形式影响了训练或模型选择。Kapoor & Narayanan(2023,Leakage and the Reproducibility Crisis in ML-based Science)整理了几十个领域里因为泄漏而夸大的结果。常见形式:在全部数据上做预处理(例如归一化)之后再划分;在测试集上选超参数或检查点;同一个对象的样本同时出现在训练集和测试集(第 1 讲的 make_eval_set 用独立的种子生成评测题,并讨论了小题目可能和训练题重合的问题);数据污染(§5.2)也是泄漏的一种。


7. 写论文 · Writing the paper

7.1 论点–证据结构

一篇实验论文的骨架是:一组论点(claims),每个论点有支持它的证据(实验)。写作之前先列出来:

论点 1:思维链让 2 层模型解决了 7 跳指针追踪,而直接回答和填充 token 不能。
  证据:表 1(三种方式 × 7 种跳数,每格 300 题,Wilson 区间);图 1(学习曲线)。
论点 2:收益来自串行深度,而不是额外的计算位置。
  证据:pause 条件(计算位置匹配);§3.2 的计算账本;理论(TC⁰ 与 CoT 的表达能力)。
论点 3:直接回答的失败部分来自可学习性,而不只是表达能力。
  证据:表 2(只训练 k = 1 时 100%,混合训练时 12.7%)。
局限:玩具任务;只有 2 层和 4 层;每个配置 1 个种子(主结果)……

如果某个论点找不到对应的证据,要么补实验,要么把论点删掉或降级为”推测”。

7.2 各部分写什么

  • 摘要:问题(1 句)→ 为什么重要 / 现有方法缺什么(1–2 句)→ 你做了什么(1–2 句)→ 主要结果,带数字(1–2 句)→ 意义(1 句)。
  • 引言:展开摘要;最后列出贡献清单(“我们的贡献有三点:……”),每一点都要能在正文里找到对应的论点和证据。
  • 图表先行:先设计最重要的那张图(§1.3),论文围绕它写。每张图的标题要能独立读懂:画的是什么、每个点代表什么、误差棒是什么。
  • 相关工作:不是罗列,而是说清楚”我们和它们的区别是什么”。
  • 局限:主动写出你的结论在什么条件下可能不成立。审稿人一定会想到这些,你先写出来更可信。
  • 措辞和证据匹配:一个种子、一个基准上的结果用”在我们的实验中""suggests”;多个种子、多个基准、有机制证据时才用”shows”。不要把推测写成解释(§4.3)。

8. 审稿与被审 · Reviewing

研讨课通常有互审环节。一份有用的审稿意见:

  1. 总结(3–5 句):用你自己的话复述论文的主要论点。如果你复述不出来,这本身就是一条意见(论文不够清楚)。
  2. 优点:具体地说哪些地方做得好。
  3. 问题:按严重程度排列。最严重的是”证据不支持论点”(缺对照、计算量不匹配、只有一个种子、可能的污染、调参不对等);其次是”论点的范围太大”;最轻的是表达问题。
  4. 问作者的问题:哪些信息能改变你的评价。
  5. 建议:具体的、可做的改进(“加一个计算量匹配的投票基线”,而不是”实验不够充分”)。

被审时:先假设审稿人是对的,想清楚他们为什么会这么理解;回复时逐条回应,能用新实验回答的就补实验,不能的说明理由。


9. 研讨课项目的节奏 · The seminar project

一个十周的研讨课项目的典型节奏:

时间产出要点
第 1–2 周选题,读 5–10 篇论文用论文卡片;找到一个”重要、可做、可测、新”的问题
第 3 周提案(1–2 页)见下面的模板
第 3–5 周最小实验尽快得到第一个信号;准备好推翻自己的预测
第 6 周中期报告初步结果、意外、计划的调整
第 6–9 周主实验、消融、统计多个种子;计算量和调参预算匹配的基线
第 10 周论文 + 展示论点–证据结构;局限

提案模板:

1. 问题:一句话。为什么重要?
2. 相关工作:最接近的 3 篇论文,你和它们的区别。
3. 假设与预测:如果假设成立,你预期看到什么?什么结果会推翻它?
4. 实验设计:任务与数据;指标;方法与基线(计算量 / 调参预算怎样匹配);消融;种子数。
5. 统计功效:预期的效应大小、测试集大小、最小可检测效应(第 1 讲 research_kit.mde_two_proportions)。
6. 计算预算:每个实验的成本估算,总预算。
7. 风险与备选:如果最小实验失败,你会怎么调整?
8. 时间表。

10. 现状与开放问题 · State of the field

  • 评测科学正在成为一个独立的研究方向:LLM 评测的统计方法(误差棒、聚类标准误、PPI、项目反应理论)、评测的效度、基准的生命周期(从提出到饱和越来越快——一些推理基准在发布一两年内就被推到接近满分)。
  • 污染越来越难避免也越来越难检测:训练数据不公开的模型无法直接检查;合成数据和蒸馏会让”间接污染”(在由见过基准的模型生成的数据上训练)更普遍。
  • LLM 当裁判的可靠性:裁判越来越强,但偏差(尤其是对相似风格、相似模型家族的偏好)仍然存在;怎样系统地校准和验证裁判是开放问题。
  • API 模型的可复现性:闭源模型会更新、会下线,很多研究结果在几个月后无法复现。
  • AI 辅助的研究:LLM 正在被用来写代码、跑实验、甚至写论文(第 18 讲)。这让”实验数量”大增,也让本讲的问题(调参预算、多重比较、选择性报告)变得更严重。

研究问题:

  1. 怎样设计对污染鲁棒的推理评测(动态生成、私有、交互式)?
  2. 怎样估计和报告训练随机性带来的方差,而不必为每个配置训练很多次?
  3. LLM 裁判的偏差能不能被自动发现(而不是靠人想到”长度""位置”)?
  4. 能不能把 PPI 这类方法用到多智能体系统的评测上(每次运行很贵、人类评估更贵)?

11. 小结 · Summary

  1. 研究贡献不只有新方法:分析、评测、复现与负结果同样重要,而且在一个季度里往往更容易做扎实。
  2. 好问题:重要、可做、可测、新。先想好最重要的那张图,再估算它要多少计算。
  3. 写下假设、预测和反证条件;预测错了如实记录。
  4. 基线要强、计算量要匹配、调参预算要匹配:A/A 测试里,同一个方法调 12 次参比调 2 次平均”领先”13 个点,而且这个领先在测试集上也成立——只有对等的预算能把它和方法的贡献分开。报告期望最大值曲线。
  5. 消融:一次改一个因素;有交互时用析因设计;行为证据之外,找机制证据。
  6. 污染:只占 5.5% 的训练数据就能把弱模型的分数抬高 23 个点;剂量和时间都重要;扰动要改对”钥匙”;成员推断只能抓到重度污染;新题是最可靠的检查。
  7. LLM 裁判:偏差可以让结论翻转;“只用裁判”的置信区间覆盖率可以是 0%;交换顺序、长度控制、PPI 各自依赖不同的假设;PPI 的收益取决于裁判分数的校准。
  8. 评测方差有很多来源;开发集越小,赢家的诅咒越大;排行榜上要问”试了多少次”。
  9. 可复现:种子、配置指纹、只追加的日志、断点续跑、确定性的并行;报告超参数搜索和失败的尝试。
  10. 论文 = 论点 + 证据;措辞和证据匹配;主动写局限。

12. 常见误区 · Common pitfalls

  1. “我的方法在测试集上比基线高 5 个点,所以它更好。” 检查调参预算、计算量、种子数、测试集大小。A/A 测试里,什么都不改也能”高 13 个点”。
  2. “新方法的领先在另一套测试题上也成立,所以不是调参的功劳。” 不一定:多调参找到的是真正更好的配置,换测试集也查不出来(代码 03 演示 3)。
  3. “置信区间很窄,所以结果很可靠。” 置信区间只反映抽样噪声,不反映测量偏差(有偏的裁判、污染)。
  4. “我换了题目的顺序,模型还答对,所以没有污染。” 扰动要改掉模型记忆的特征;只换顺序可能检测不到(代码 01 演示 3)。
  5. “成员推断测不出来,所以没有污染。” 轻度污染已经能抬高分数,却测不出来(代码 01 演示 4)。
  6. “用 LLM 裁判评测了 1000 个样本,统计上很显著。” 显著的是裁判的偏好,不一定是人类的偏好。
  7. “长度控制总是对的。” 它假设长度不是质量的一部分;如果更长的回答确实更好,它会过度校正。
  8. “裁判和人类的一致率更高,所以它更适合做 PPI。” 决定 PPI 收益的是校准,不是一致率(代码 02 演示 4)。
  9. “我在开发集上试了 30 个提示词,选了最好的,然后在测试集上报告。” 这是对的做法——但如果开发集只有几十道题,选择本身被噪声主导(赢家的诅咒)。
  10. “消融显示去掉 A 下降了 3 个点,所以 A 贡献了 3 个点。” 有交互时,去掉一个和加上一个的结论可以不同。

13. 练习 · Exercises

练习 1(期望最大值)。一个方法的 3 次试验在开发集上得到 0.6、0.7、0.9。给 2 次调参预算时,期望的最好结果是多少?给 1 次呢?

参考答案:排序后 v(1)=0.6,v(2)=0.7,v(3)=0.9v_{(1)} = 0.6, v_{(2)} = 0.7, v_{(3)} = 0.9,k=2k = 2 时权重分别是 (1/3)2=1/9(1/3)^2 = 1/9、(2/3)2−1/9=3/9(2/3)^2 - 1/9 = 3/9、1−4/9=5/91 - 4/9 = 5/9,期望 =(0.6+3×0.7+5×0.9)/9=7.2/9=0.8= (0.6 + 3 \times 0.7 + 5 \times 0.9)/9 = 7.2/9 = 0.8。k=1k = 1 时就是平均值 2.2/3≈0.7332.2/3 \approx 0.733。可以用 exp_kit.expected_max([0.6, 0.7, 0.9], 2) 核对。

练习 2(PPI 手算)。裁判给 1000 个提示打了分,平均胜率 0.62。其中 100 个提示有人类标注:人类判断的平均是 0.55,这 100 个提示上裁判分数的平均是 0.64。经典 PPI(λ = 1)的估计是多少?只用人类标注的估计是多少?为什么两者不同?

参考答案:PPI =0.62+(0.55−0.64)=0.53= 0.62 + (0.55 - 0.64) = 0.53。只用人类标注是 0.55。PPI 认为裁判平均高估了 0.09(在标注样本上测得),于是把全部 1000 个提示上的裁判平均值下调 0.09。两者不同是因为这 100 个被标注的提示上裁判分数(0.64)比全部提示上的平均(0.62)略高——这 100 个提示恰好”偏容易”一点,PPI 用 1000 个提示的信息修正了这一点。

练习 3(设计污染检查)。你要发布一个新的多步规划基准。列出你会采取的三项措施,降低它在未来被污染、或者被污染后无法发现的风险。

参考答案要点:(1) 用程序生成题目,公开生成器但保留一个私有测试集(或定期用新种子生成新测试集);(2) 在数据文件里放金丝雀字符串,请训练数据收集者过滤;(3) 为每道题准备扰动版本(改名、改数字、改顺序),评测时同时报告原题和扰动题的分数,两者差距大就是污染信号;(4) 记录发布日期,鼓励评测者报告模型的训练截止日期(时间切分)。

练习 4(析因设计)。一个多智能体辩论方法有三个组件:(A) 用不同家族的模型做辩手;(B) 结构化的批评格式;(C) 一个单独的裁判汇总答案。设计一个实验来估计每个组件的贡献和它们之间的交互。需要多少个条件?每个条件需要什么?还需要哪些额外的基线?

参考答案要点:全析因 23=82^3 = 8 个条件。每个条件:同样的题目集(配对比较)、多个随机种子(采样随机性)、记录 token 用量。额外基线:单模型直接回答;单模型自洽性投票,token 数匹配完整方法;“最强的单个模型 + 同样的 token 预算”。分析:每个组件的主效应(有它的 4 个条件 vs 没有它的 4 个条件的平均差)和两两交互;报告时同时给出准确率和 token 成本。

练习 5(找出问题)。一篇论文写道:“我们提出的反思提示把 GSM8K 准确率从 78% 提高到 84%(1319 道题),证明模型学会了自我反思。“列出你作为审稿人会问的问题。

参考答案要点:几次运行?温度是多少(贪心还是采样)?提示词是在什么数据上选出来的(如果在 GSM8K 测试集上调过,就是泄漏)?基线提示词调过吗?反思提示多用了多少 token——和”同样 token 数的自洽性投票”比怎样?GSM8K 有没有污染(在 GSM1k 或 GSM-Symbolic 上结果一样吗)?“学会了自我反思”是对行为的解释,证据在哪里(有没有分析反思真的纠正了哪些错误、把多少对的改错了)?84% vs 78% 的配对检验结果?

练习 6(污染在哪里有影响)。代码 01 里,思维链模型被污染之后没有任何虚高,因为它在 n = 8 的题上已经是 100%。如果把污染换到它不完美的地方——n = 12、k = 3 的长题面(第 1 讲 cot_L2 在这类题上约 88%)——会怎样?写一个小实验:120 道 n = 12、k = 3 的题,其中 60 道各插入 16 次,训练一个思维链模型;比较被污染和干净的题,以及字母改名之后的结果。

参考答案(编写时的实际运行,用 method_lab.fit_stream,约 40 秒):我原本预测”被污染的 60 道题接近 100%,干净的 60 道留在 85% 左右”。实际结果:被污染的题 100%,干净的题也是 100%,同分布的 300 道新题 99.3%,字母改名后仍是 100%;而没被污染的 cot_L2 在这 120 道题上只有 85% / 83%。 原因:960 次长题面的训练样本把训练分布扩展到了 12 条陈述的长度,模型学会了在长题面上也按名字查找——泄漏的不是”这些题的答案”,而是”这类题的分布”。这种分布层面的污染,孪生基准和改名扰动都查不出来(新题也全对),但它让”分布外泛化”这个结论失去了意义:测试题已经不再是分布外的了。真实世界的对应:在和基准风格相同的数据上训练(例如大量 GSM8K 风格的合成数学题),会提高 GSM1k 上的分数——这不是记忆,但如果论文声称测的是”泛化到没见过的题型”,结论就不成立了。

练习 7(写摘要)。用 §7.2 的结构,为第 1 讲的实验写一段摘要(150 词以内,中英文均可)。

参考答案示例:Transformer 一次前向计算的串行深度是固定的,这被认为是 LLM 多步推理困难的原因之一。我们在一个规则已知的多跳指针追踪任务上,从零训练只改变作答方式的小 Transformer,检验这一点。2 层模型写出思维链时在 1–7 跳上达到 100%;直接回答和计算量匹配的填充 token 都停在随机水平(约 14%),表明收益来自串行深度而非额外计算。进一步的实验显示,直接回答的失败部分来自可学习性:单独训练时 2 层模型能完成 1 跳(100%),混在多跳题里训练时却学不会(12.7%)。扰动探针揭示,在按顺序排列的题上训练的模型学到了相对位置的捷径。这些结果说明……(局限:玩具任务、小模型。)

练习 8(审稿)。找一篇你感兴趣的、最近一年的推理或多智能体方向的论文,按 §8 的五部分写一份审稿意见(一页以内)。


14. 延伸阅读 · Further reading

研究方法

  • J. Schulman. An Opinionated Guide to ML Research. 2020.
  • R. Hamming. You and Your Research. 1986.
  • Z. Lipton, J. Steinhardt. Troubling Trends in Machine Learning Scholarship. 2018.
  • D. Sculley et al. Winner’s Curse? On Pace, Progress, and Empirical Rigor. ICLR Workshop 2018.

基线与调参

  • G. Melis, C. Dyer, P. Blunsom. On the State of the Art of Evaluation in Neural Language Models. ICLR 2018.
  • M. Lucic et al. Are GANs Created Equal? A Large-Scale Study. NeurIPS 2018.
  • J. Dodge et al. Show Your Work: Improved Reporting of Experimental Results. EMNLP 2019.
  • J. Bergstra, Y. Bengio. Random Search for Hyper-Parameter Optimization. JMLR 2012.
  • P. Henderson et al. Deep Reinforcement Learning that Matters. AAAI 2018.

评测与基准

  • I. D. Raji et al. AI and the Everything in the Whole Wide World Benchmark. NeurIPS 2021 Datasets & Benchmarks.
  • M. Dehghani et al. The Benchmark Lottery. 2021.
  • L. Madaan et al. Quantifying Variance in Evaluation Benchmarks. 2024.
  • E. Miller. Adding Error Bars to Evals: A Statistical Approach to Language Model Evaluations. 2024.
  • M. Sclar et al. Quantifying Language Models’ Sensitivity to Spurious Features in Prompt Design. ICLR 2024.
  • S. Singh et al. The Leaderboard Illusion. 2025.

数据污染与记忆

  • H. Zhang et al. A Careful Examination of Large Language Model Performance on Grade School Arithmetic(GSM1k). NeurIPS 2024 Datasets & Benchmarks.
  • W. Shi et al. Detecting Pretraining Data from Large Language Models(Min-K% Prob). ICLR 2024.
  • Y. Oren et al. Proving Test Set Contamination in Black-Box Language Models. ICLR 2024.
  • N. Jain et al. LiveCodeBench. 2024.
  • N. Carlini et al. Quantifying Memorization Across Neural Language Models. ICLR 2023.
  • K. Lee et al. Deduplicating Training Data Makes Language Models Better. ACL 2022.

LLM 当裁判与统计校正

  • L. Zheng et al. Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. NeurIPS 2023 Datasets & Benchmarks.
  • Y. Dubois et al. Length-Controlled AlpacaEval: A Simple Way to Debias Automatic Evaluators. 2024.
  • A. Angelopoulos et al. Prediction-Powered Inference. Science 2023.
  • A. Angelopoulos, J. Duchi, T. Zrnic. PPI++: Efficient Prediction-Powered Inference. 2023.

可复现性

  • J. Pineau et al. Improving Reproducibility in Machine Learning Research. JMLR 2021.
  • S. Kapoor, A. Narayanan. Leakage and the Reproducibility Crisis in Machine-Learning-Based Science. Patterns 2023.

15. 下一讲预告 · Next lecture

第 3 讲:思维链的理论——表达能力、可学习性、填充 token 与潜在推理。 第 1 讲用实验说明了”一次前向的串行深度有限,思维链能补上”。下一讲把它讲透:电路复杂度的基本概念(AC⁰、TC⁰、NC¹)以及为什么固定深度的 Transformer 落在 TC⁰ 里;思维链表达能力定理的内容和前提;为什么”推理步太大”会让思维链失效(步长实验);在 cot_L2 内部找到”一跳查找”的电路;以及潜在推理——一个不写任何 token、只是把同一组层循环多次的 Transformer,能不能得到思维链的好处,甚至在测试时”多想几轮”来解出比训练时更长的题。

← 返回课程目录