对应 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
学完这一讲,你应该能够:
- 区分四种研究贡献(新方法、分析与理解、评测与基准、复现与负结果),并用”重要、可做、可测、新”四条标准评价一个研讨课题目。
- 把一个模糊的兴趣变成可证伪的假设:写出操作化的指标、预测、以及”什么结果会让我改变主意”。
- 设计公平的基线:计算量匹配、调参预算匹配;解释 A/A 测试为什么能”证明”一个方法比它自己好,以及 Dodge et al. 的期望最大值曲线怎样避免这个问题。
- 设计消融和析因实验,区分”行为证据”和”机制证据”,避免把收益归因到错误的组件上。
- 解释数据污染怎样抬高分数(剂量、时间、模型强弱的影响),以及四类检测方法(孪生基准、扰动、成员推断、时间切分)各自的能力与盲点。
- 解释 LLM 当裁判的位置偏差和冗长偏差会怎样让结论翻转;会用交换顺序、长度控制和 预测驱动推断(PPI) 来校正,并说出每种校正依赖的假设。
- 正确报告评测结果:置信区间、多个种子、配对比较、多重比较、“赢家的诅咒”;知道排行榜上的”选择性披露”是什么。
- 用
exp_kit.py管理实验(配置指纹、只追加的日志、断点续跑、并行),按 NeurIPS checklist 的要求报告可复现性信息。 - 按”论点–证据”的结构写一篇论文,写一份有用的审稿意见。
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 好问题的标准
四条标准:
- 重要:答案会改变别人做研究或用模型的方式吗?Hamming 的问题——“你所在领域最重要的问题是什么?你为什么不在做它?“——后半句同样重要:如果最重要的问题现在没有可行的切入点,就找一个通向它的、现在能做的问题。
- 可做:一个季度、你手上的算力,能得到一个清楚的答案吗?研讨课最常见的失败是题目太大(“让 LLM 学会规划”),十周后只有一堆没结论的半成品。
- 可测:你知道用什么指标判断成败吗?如果你说不出”什么结果算成功、什么结果算失败”,这还不是一个研究问题(§2)。
- 新:别人做过吗?做过的话,你的版本有什么不同(更干净的控制、不同的设定、相反的结论)?
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 写下预测
在跑实验之前,写下三件事:
- 假设:“思维链能让 2 层模型解决 7 跳的题,因为它提供了串行深度。”
- 预测:“cot 的准确率接近 100%;direct 和 pause 都接近随机;pause 不比 direct 好。”
- 反证条件:“如果 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 已经讲过:多智能体系统用了 倍的 token,对照组就应该是”单智能体用 倍的 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)建议报告”给 次调参预算时,期望的最好验证集结果”。把 次试验的结果从小到大排成 ,从中有放回地抽 次,最大值的期望是
(exp_kit.expected_max;自检里和暴力枚举核对过。)
| 预算 k | 1 | 2 | 4 | 8 | 12 | 16 | 24 |
|---|---|---|---|---|---|---|---|
| 期望最大开发集准确率 | 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.3 | 66.2% | +13.0 |
| 基线 6 次 vs 新方法 6 次 | −0.1 | 21.8% | −0.1 |
| 基线 12 次 vs 新方法 2 次 | −13.4 | 1.4% | −13.2 |
| 基线 1 次 vs 新方法 1 次 | +0.3 | 40.8% | +0.3 |
两个读法:
- 预算 2 vs 12 时,“新方法”在三分之二的情况下领先 5 个点以上——可两者是同一个方法。
- 我原本以为测试集上的领先会缩小(开发集上的运气在测试集上回归)。实际上几乎没有缩小(+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 个二值组件就是 个条件。它能估计每个组件的主效应和它们之间的交互效应。代价是条件数随组件数指数增长,每个条件还要多个种子。
第 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.556 | 0.602 |
| 见过 16 次 | 0.532 | 0.778 |
| 见过 64 次 | 0.984 | 0.999 |
| 16 次,都在后期 | 0.559 | 0.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 的思路)拟合一个逻辑回归:
然后报告 ——“如果两个回答一样长、位置平衡,裁判选 A 的概率”。这次估计是 0.547,回到了正确的一侧。(真实的 AlpacaEval 2.0 用长度控制把它和 Chatbot Arena 的排名相关性从约 0.94 提高到约 0.98。)
演示 2:重复 300 次评测:
| 方法 | 平均偏差 | 波动 | 95% 区间覆盖率 | 区间宽度 |
|---|---|---|---|---|
| 裁判,交换平均(只用裁判的区间) | −0.097 | 0.011 | 0.0% | 0.052 |
| 长度控制 | −0.006 | 0.019 | — | — |
| 只用 100 个人类标注 | −0.005 | 0.048 | 96.3% | 0.191 |
| PPI,裁判 0/1 投票(λ = 1) | −0.003 | 0.051 | 95.0% | 0.215 |
| PPI++,裁判 0/1 投票(估计 λ) | −0.004 | 0.046 | 96.0% | 0.188 |
| PPI,裁判概率分数(λ = 1) | −0.004 | 0.042 | 97.0% | 0.174 |
三个要点:
- “只用裁判”的置信区间覆盖率是 0%。区间很窄(0.052),但偏差(−0.097)远大于区间宽度。置信区间只反映抽样噪声,不反映测量本身的偏差;评测的样本再多,也治不了有偏的裁判。
- 预测驱动推断(PPI)(Angelopoulos et al., Science 2023):用全部 个提示的裁判分数 和其中 个提示的人类判断 ,
时,第一项用大量裁判数据压低方差,第二项(“校正项”)估计并减掉裁判的平均偏差,所以整体无偏——三种 PPI 的覆盖率都在 95% 附近。
- 但 PPI 不一定比只用人类标注更好。用裁判的 0/1 投票时,经典 PPI 的区间反而更宽(0.215 vs 0.191):这个世界里裁判投票和人类判断只有约 62% 一致,校正项 的方差比省下的方差还大。两种改进:PPI++(Angelopoulos, Duchi & Zrnic 2023)用数据估计最优的 —— 接近 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.618 | 0.913 | 0.911 |
| 更敏锐的裁判(judge_beta = 2) | 0.685 | 0.944 | 0.898 |
| 更敏锐的裁判(judge_beta = 4) | 0.714 | 1.011 | 0.905 |
| 无偏、敏锐度和人类一样 | 0.638 | 0.895 | 0.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 道开发题里随机抽 道当开发集,在上面选出最好的配置,
| 开发集大小 m | 选中配置的开发分 − 测试分 | 选中配置的测试准确率 |
|---|---|---|
| 10 | +8.7 | 91.2% |
| 20 | +4.9 | 94.4% |
| 50 | +2.6 | 95.7% |
| 200 | +1.0 | 96.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
研讨课通常有互审环节。一份有用的审稿意见:
- 总结(3–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 讲)。这让”实验数量”大增,也让本讲的问题(调参预算、多重比较、选择性报告)变得更严重。
研究问题:
- 怎样设计对污染鲁棒的推理评测(动态生成、私有、交互式)?
- 怎样估计和报告训练随机性带来的方差,而不必为每个配置训练很多次?
- LLM 裁判的偏差能不能被自动发现(而不是靠人想到”长度""位置”)?
- 能不能把 PPI 这类方法用到多智能体系统的评测上(每次运行很贵、人类评估更贵)?
11. 小结 · Summary
- 研究贡献不只有新方法:分析、评测、复现与负结果同样重要,而且在一个季度里往往更容易做扎实。
- 好问题:重要、可做、可测、新。先想好最重要的那张图,再估算它要多少计算。
- 写下假设、预测和反证条件;预测错了如实记录。
- 基线要强、计算量要匹配、调参预算要匹配:A/A 测试里,同一个方法调 12 次参比调 2 次平均”领先”13 个点,而且这个领先在测试集上也成立——只有对等的预算能把它和方法的贡献分开。报告期望最大值曲线。
- 消融:一次改一个因素;有交互时用析因设计;行为证据之外,找机制证据。
- 污染:只占 5.5% 的训练数据就能把弱模型的分数抬高 23 个点;剂量和时间都重要;扰动要改对”钥匙”;成员推断只能抓到重度污染;新题是最可靠的检查。
- LLM 裁判:偏差可以让结论翻转;“只用裁判”的置信区间覆盖率可以是 0%;交换顺序、长度控制、PPI 各自依赖不同的假设;PPI 的收益取决于裁判分数的校准。
- 评测方差有很多来源;开发集越小,赢家的诅咒越大;排行榜上要问”试了多少次”。
- 可复现:种子、配置指纹、只追加的日志、断点续跑、确定性的并行;报告超参数搜索和失败的尝试。
- 论文 = 论点 + 证据;措辞和证据匹配;主动写局限。
12. 常见误区 · Common pitfalls
- “我的方法在测试集上比基线高 5 个点,所以它更好。” 检查调参预算、计算量、种子数、测试集大小。A/A 测试里,什么都不改也能”高 13 个点”。
- “新方法的领先在另一套测试题上也成立,所以不是调参的功劳。” 不一定:多调参找到的是真正更好的配置,换测试集也查不出来(代码 03 演示 3)。
- “置信区间很窄,所以结果很可靠。” 置信区间只反映抽样噪声,不反映测量偏差(有偏的裁判、污染)。
- “我换了题目的顺序,模型还答对,所以没有污染。” 扰动要改掉模型记忆的特征;只换顺序可能检测不到(代码 01 演示 3)。
- “成员推断测不出来,所以没有污染。” 轻度污染已经能抬高分数,却测不出来(代码 01 演示 4)。
- “用 LLM 裁判评测了 1000 个样本,统计上很显著。” 显著的是裁判的偏好,不一定是人类的偏好。
- “长度控制总是对的。” 它假设长度不是质量的一部分;如果更长的回答确实更好,它会过度校正。
- “裁判和人类的一致率更高,所以它更适合做 PPI。” 决定 PPI 收益的是校准,不是一致率(代码 02 演示 4)。
- “我在开发集上试了 30 个提示词,选了最好的,然后在测试集上报告。” 这是对的做法——但如果开发集只有几十道题,选择本身被噪声主导(赢家的诅咒)。
- “消融显示去掉 A 下降了 3 个点,所以 A 贡献了 3 个点。” 有交互时,去掉一个和加上一个的结论可以不同。
13. 练习 · Exercises
练习 1(期望最大值)。一个方法的 3 次试验在开发集上得到 0.6、0.7、0.9。给 2 次调参预算时,期望的最好结果是多少?给 1 次呢?
参考答案:排序后 , 时权重分别是 、、,期望 。 时就是平均值 。可以用
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.55。PPI 认为裁判平均高估了 0.09(在标注样本上测得),于是把全部 1000 个提示上的裁判平均值下调 0.09。两者不同是因为这 100 个被标注的提示上裁判分数(0.64)比全部提示上的平均(0.62)略高——这 100 个提示恰好”偏容易”一点,PPI 用 1000 个提示的信息修正了这一点。
练习 3(设计污染检查)。你要发布一个新的多步规划基准。列出你会采取的三项措施,降低它在未来被污染、或者被污染后无法发现的风险。
参考答案要点:(1) 用程序生成题目,公开生成器但保留一个私有测试集(或定期用新种子生成新测试集);(2) 在数据文件里放金丝雀字符串,请训练数据收集者过滤;(3) 为每道题准备扰动版本(改名、改数字、改顺序),评测时同时报告原题和扰动题的分数,两者差距大就是污染信号;(4) 记录发布日期,鼓励评测者报告模型的训练截止日期(时间切分)。
练习 4(析因设计)。一个多智能体辩论方法有三个组件:(A) 用不同家族的模型做辩手;(B) 结构化的批评格式;(C) 一个单独的裁判汇总答案。设计一个实验来估计每个组件的贡献和它们之间的交互。需要多少个条件?每个条件需要什么?还需要哪些额外的基线?
参考答案要点:全析因 个条件。每个条件:同样的题目集(配对比较)、多个随机种子(采样随机性)、记录 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,能不能得到思维链的好处,甚至在测试时”多想几轮”来解出比训练时更长的题。