第 33 课:验证、复现与评审

前面几课把"选题、规划、长时程执行"都串起来了,但有一条底线还没立住:代码跑通不等于结论成立。这一课回答三件事——怎么承认"能跑≠对"并揪出静默错误,怎么让结果可复现(种子 / 环境 / 数据版本),以及谁来独立判断"这个结论能不能接受"。最后用一组真实投稿数据说明"过评审"到底有多难,并给出"接受之前"的五维评估门禁。

🎯 学完这 6 步你将能够:
① 说清 silent error(静默错误)为什么最危险,并用"静默失败率"这类读数把它量化
② 用复现三要素(随机种子 / 环境 / 数据版本)与泄漏检查堵住它,并算出"三要素同时可靠"的概率
③ 算出一个结论"过评审"的真实概率,并用五维评估(novelty / validity / impact / reliability / provenance)把它拦在"接受"之前
🗺 本节推理链(6 步逻辑递进:从"能跑≠对"到"五维评估门禁")
1要让 AI 自主做的研究结论可用,这就要求先承认:模型输出不过是一串 tokens,代码跑通只证明"没崩"、不证明"对"——silent error 能跑出物理上不可能的结果。能跑不等于对。
↓
2既然「能跑不等于对」,这就要求把错误揪出来,所以要让结果可复现:固定随机种子、环境与数据版本,并把这些清单落在 context 之外的文件里、用 held-out(留出集)挡住泄漏。揪错要靠可复现。
↓
3既然「揪错要靠可复现」,这就意味着"对不对"不能自己说了算,所以要有独立的证据评审:评审要读 tokens 构成的证据链,而不是只看结论那一句话。结论要独立评审。
↓
4既然「结论要独立评审」,这就要求看它到底能不能过——所以要用真实投稿数据检验:AI 写的论文在 ICLR workshop 均分 6.33/10、3 投 1 录用;而一旦评审只看 context 里的"看起来对",就会漏掉造假。过评审要看真实数据。
↓
5既然「过评审要看真实数据」,这就要求把失败的代价算清,所以要把"重跑一遍"的 tokens 成本也算进去:复现成本 = 单次成本 × 重复次数。复现是有代价的。
↓
6既然「复现是有代价的」,最后一步就是给验证设门禁,所以用五维评估(novelty / validity / impact / reliability / provenance),并要求每条断言都能回到它的 context 与出处。验证要过五维门禁。
silent error可复现性held-outprovenance五维评估PaperBench
1
代码跑通了,结论就成立吗?
提示:跑通只说明"没崩"。想一个能正常结束、不报错、结果却物理上不可能的脚本长什么样?
▾
知识背景
科研代码有一类失败专门"不喊出来":静默错误(silent error,指程序正常运行、输出看似合理,但物理含义已被悄悄改坏,见 Paimon,arXiv:2606.09422)。它比崩溃更危险,因为没有任何报错提醒你。定量证据来自 Judge Agent(arXiv:2603.25780,2026-03):LLM 生成的仿真代码若不做数学校验(适定性 / 收敛 / 误差界),静默失败率高达 42%;同一批代码加上自动校验后降到 1.5%。该文还引 SciCode:前沿模型解不出半数研究级计算问题。

第五部分走到这里,选题、规划、长时程执行都讲过了,但有一条底线必须先立住:代码跑通了,结论就成立吗?

因为"跑通"只证明脚本没在运行时崩掉,不证明它算的是你要的东西。论文里的每个结论,最终都只是写进文档的一串 tokens——而 tokens 本身不会告诉你它错没错。就像电子秤没坏、数字也在跳,只是单位被人从克偷偷换成了磅,你看不出任何异样。silent error(静默错误)就是这类失败:正常结束、结果看着合理,物理意义却已经错了。所以先把"能跑≠对"这条底线讲透。

🧮 第一笔账:能跑 ≠ 对
Step 1:三类失败,谁最危险
类型现象能不能一眼看出
跑不起来编译 / 导入失败能(最安全)
运行中崩抛异常退出能
静默错误正常结束、结果似乎合理不能(最危险)
算术无关的一条对比:前两类会主动"喊出来",第三类不会——它把错误伪装成正常输出。能被发现的错误不可怕,不被发现的才可怕。
Step 2:静默失败率能被量到多低
条件静默失败率
无验证的 AI 生成仿真代码(134 个测试用例、12 个领域)42%
加入 Judge Agent(自动数学校验)1.5%
下降倍数42 ÷ 1.5 = 28×
算术:42% ÷ 1.5% = 28——同一批代码,加一层自动校验,静默失败率降到约 1/28。来源 arXiv:2603.25780。"能跑≠对"不是玄学,它有可测的读数。
Step 3:三类 agent 各自有多少篇对不上
对象"结果与工件不符"的论文占比117 篇中约几篇
Codex(GPT-5.4)5%117 × 0.05 ≈ 5.85 ≈ 6 篇
Claude Code(Opus 4.6)31%117 × 0.31 ≈ 36.3 ≈ 36 篇
Kimi Code(K2.5)77%117 × 0.77 ≈ 90.1 ≈ 90 篇
算术:三类 agent 的占比口径不同、不可相加——117 × 5% ≈ 6 篇、117 × 31% ≈ 36 篇、117 × 77% ≈ 90 篇。即便最"守规矩"的 agent,也有 5% 的论文里数字对不上自己的输出(ResearchArena,arXiv:2605.19156)。这正是必须用审计(逐条回查证据)去确认问题的原因。
🎯 关键认知

有验证 → 静默失败率从 42% 降到 1.5%;没有 → 近一半错误会溜过去。判据是:先承认"能跑≠对",再问一句"这个数字能不能被独立复算或审计确认"。验证的第 0 步不是加测试,是承认测试可能测不到。

AI 助教
👋 对"能跑≠对"有疑问?比如「静默错误怎么发现」「有没有更小的例子」?

说清你的场景,我帮你判断该在哪一步加校验。
2
怎么让结果可复现?
提示:同一份代码,换个人、换台机器,为什么可能跑出不同的数?想哪几样东西必须被钉住。
▾
知识背景
可复现性(reproducibility,指别人按你记录的条件能重跑出同样的结论)研究的一条通用做法是复现三要素:随机种子(seed)、运行环境(environment)、数据版本(data version)。复现基准 PaperBench(OpenAI,arXiv:2504.01848,2025-04)把这套标准做成可打分任务:给定一篇论文 PDF,agent 必须从零复现其关键结果,20 篇 ICML 2024 Spotlight / Oral 论文被拆成 8,316 个可独立判分的叶子项,分三类——写对代码(Code Development)、真的跑过(Execution)、结果对得上(Result Match),且禁止使用作者原代码。

上一张卡片说明"能跑≠对"。可复现只说明"能重跑",所以下一步是把"对"变成可检查的:怎么让结果可复现?

因为影响结果的变量不止代码本身:随机种子不同、库版本不同、数据切片不同,都会让同一份脚本给出不同的数。要复现,就得把这三样钉住,并把它们记在 context 之外的文件里(承第 32 课的"状态落在上下文之外")。这里的 held-out(留出集)指训练 / 调参时故意不看的样本——它是判断"真会做还是背下来"的尺子,一旦被搜到,尺子就作废。就像考试先把答案锁进保险箱,考前谁都不能碰。所以可复现 = 钉住三要素 + 挡住泄漏。

🧮 第二笔账:三要素与泄漏
Step 1:复现三要素各钉什么
要素钉住什么不钉会怎样
随机种子 seed数据打乱 / 初始化 / 采样每次结果不同
运行环境 environment依赖库版本、CUDA、硬件换机器就变数
数据版本 data version数据集快照与划分训练 / 测试边界漂移
算术无关的一条清单:三要素任意一项缺失,别人都无法重跑出你的结论——缺一项就等于没复现。
Step 2:三要素同时可靠的概率
单要素可靠度三项同时可靠 ≈ p³
0.900.90³ = 0.729
0.990.99³ ≈ 0.970
算术:0.90³ = 0.729、0.99³ ≈ 0.970。每项 90% 看着不错,三项同时只有约 73%;要做到 97%,每项都得 ≥99%。可靠性是连乘的,这也是复现清单必须逐项签字的原因。
Step 3:泄漏检查与 PaperBench 的粒度
项数值
PaperBench 论文数20 篇(ICML 2024)
可独立判分叶子项8,316 个
平均每篇8,316 ÷ 20 ≈ 416 个
三类项Code Development / Execution / Result Match
算术:8,316 ÷ 20 ≈ 415.8 ≈ 416。复现不是"1 个总通过 / 不通过",而是几百个可核查的小项——粒度越细,越难靠"看起来对"蒙过去。
🎯 关键认知

可复现 = 钉住种子 / 环境 / 数据版本(记在 context 之外)+ 用 held-out 挡住泄漏。判据是:换一个人、换一台机器,能不能重跑出同一个数;做不到,后面所有"验证"都失去地基。

AI 助教
👋 对可复现有疑问?比如「小项目也要固定种子吗」「held-out 怎么切」?

说清你的任务规模,我帮你列一份最小复现清单。
3
谁来判断"这个结论能不能接受"?
提示:自己说自己对不算数。想想要几个独立评审、他们的判断要有一致性才算数。
▾
知识背景
科研接受的通用原则是先评审、后采纳(evidence-based review before accepting:结论必须由独立证据支撑,且由不参与生产的人来判断)。独立评估者 Beel 等(arXiv:2502.14297,2025)实测 Sakana 的 AI Scientist 后指出:12 个提议实验中 5 个(42%)因编码错误失败,生成稿件的质量"像一篇赶出来的本科生论文"。另一面,AI Scientist v1(arXiv:2408.06292)报告其自动评审器用 5 轮自我反思 + 5 份集成评审 达到约 70% 的判断准确率。

上一张卡片把结果变得可复现。但可复现只说明"能重跑",不说明"值得信"——谁来判断这个结论能不能接受?

因为生产结论的人天然有确认偏误:自己写的代码、自己跑的数、自己下的判断,很容易只看到支持结论的那部分。评审要读的是由 tokens 构成的完整证据链(数据、日志、代码、复现清单),而不是结论那一句话。就像比赛不能既当运动员又当裁判——同一双手既跑又判,规则就失效了。所以接受之前必须有独立评审,而且要看多个评审的一致性。

🧮 第三笔账:独立评审与一致性
Step 1:为什么要"独立"
评审方式问题
自己评审自己确认偏误,只会看到支持结论的证据
只看结论一句话漏掉过程违规 / 数据不符
独立证据评审回查数据、日志、代码与复现清单
算术无关的一条原则:能接受不等于"作者说对"——独立性的价值在于切断"既生产又验收"的利益链。
Step 2:多评审的一致性有多高
情形概率
两名各 70% 准的评审恰好一致0.7² + 0.3² = 0.58
三名各 70% 准的评审多数表决正确3 × 0.7² × 0.3 + 0.7³ = 0.784
算术(假设各评审独立、准确率相同):两名评审一致率 = 0.7² + 0.3² = 0.58;三人多数表决准确率 = 0.784 ≈ 78.4%。单评审 70% → 三人多数约 78%,这就是"集成评审"能压低方差的算术原因。
Step 3:评审要"看证据"而不是"看文笔"
项数值 / 做法
AI Scientist 自动评审构成5 轮反思 + 5 份集成
其报告准确率约 70%
独立实测反例12 个实验中 5 个(42%)编码失败
算术:5 ÷ 12 ≈ 41.7% ≈ 42%。评审器分数再高,也不能替代对工件的核查——独立评估一上手,就发现近一半实验根本跑不通。
🎯 关键认知

接受之前的判断必须独立且看证据:多评审 + 回查工件(数据 / 日志 / 代码 / 复现清单),而不是信"结论一句话"。判据是:换一个不参与生产的人,能否仅凭你留下的证据复现同一判断。

AI 助教
👋 对独立评审有疑问?比如「几个人合适」「一致性怎么算」?

说清你的风险等级,我帮你定评审人数与判据。
4
AI 写的论文能过评审吗?
提示:别看宣传,找真实投稿数据——它投了几篇、中了几篇、评审给了多少分?
▾
知识背景
目前最硬的一次"过评审"实测来自 The AI Scientist-v2(Yamada 等,arXiv:2504.08066,2025-04):把 3 篇完全由 AI 生成的论文投给 ICLR 2025 的 "I Can't Believe It's Not Better" workshop,其中 1 篇通过评审,三位评审给分 6、7、6,均分 6.33/10,约在该 workshop 投稿的 top 45%。注意口径:这是 workshop(录用率通常 60–70%),明显高于主会;团队随后按约定撤回了录用论文。

上一张卡片说要独立评审。那 AI 自己写的论文,真的过得了评审吗——AI 写的论文能过评审吗?

因为"能过"这件事不能靠宣传,要看真实投稿数据:投了几篇、中了几篇、评审给了多少分、和人类投稿比在什么位置。同时要警惕:评审若只读 context 里的"看起来对",就可能漏掉可信性缺陷——独立复评(Beel 等,arXiv:2502.14297)评测的是 AI Scientist v1 系统(并非本文这篇 v2 投稿),发现该系统生成稿件含幻觉数值、且常把已有工作误判为新颖。就像闭卷批改只看卷面整洁,不看答案对不对。所以要同时看"分数"和"独立复评"两件事。

🧮 第四笔账:过评审的真实概率
Step 1:真实投稿结果
项数值
投稿篇数3
通过篇数1
评审给分6、7、6 → 均分 6.33/10
相对位置约 top 45%
算术:1 ÷ 3 ≈ 0.333 ≈ 33.3%(仅代表这 3 篇的 workshop 结果)。口径:workshop 录用率 60–70%,远高于主会。"过评审"是真的,但要看清级别。
Step 2:把通过率算成一个数
情形(示意)通过率
投 3 篇、录 1 篇(本次实测)1 ÷ 3 ≈ 33.3%
投 43 篇、录 3 篇(示意)3 ÷ 43 ≈ 6.98%
算术:3 ÷ 43 ≈ 0.0698 = 6.98%(此行为示意:以"投 43 篇、录 3 篇"为例,说明一旦放到更严的录用比例,通过率会掉到个位数百分比)。别被"第一篇过评审"的新闻冲昏头——分母决定一切。
Step 3:高分 ≠ 可信
视角发现
workshop 评审均分 6.33,通过
外部复评(针对 AI Scientist)幻觉数值 / 新颖性被高估
含义评审看的是"呈现",复评看的是"证据"
算术无关的一条对比:6.33 分说明它"写得好",不等于它"算得对"——这恰好把 Card 1 的"能跑≠对"推进到了"能过≠可信"。
🎯 关键认知

"过评审"要看真实投稿数据 + 独立复评两件事:3 投 1 录、均分 6.33 是真的,但那是 workshop 口径,且独立复评揭示了幻觉数值、新颖性高估等可信性缺陷。判据是:把分母写清楚,再把"评审通过"和"证据成立"分开看。

AI 助教
👋 对"过评审"有疑问?比如「6.33 分什么水平」「workshop 和主会差多少」?

说清你关心的口径,我帮你拆开讲。
5
复现失败要付出什么代价?
提示:把"重跑一遍"的开销算进去——一次要多少成本,失败要重来几次?
▾
知识背景
复现不是免费的:每次重跑都要再花一份算力与 tokens。AI Scientist-v2 报告其单篇论文成本约 $15(另有报道给出约 $25 的均值口径,两者并存,需人工核实),v1 报告为 不足 $15/篇(v1 原文口径为 "less than $15 per paper")、人类参与约 3.5 小时。一旦结论被质疑,这些成本要按"重复次数"成倍付出——这就是复现的账单。

上一张卡片看到真实投稿数据。但就算论文能过评审,结论也可能复现不了——复现失败要付出什么代价?

因为复现不是"再看一眼",而是"从零重跑一遍":再花一份算力、再烧一份 tokens、再等一轮时间。若第一次没能把三要素钉死(承上一张卡片),就得多次重跑,成本按次数线性放大。就像退货重发——东西没发对,运费得自己再掏一次,掏几次取决于错了几次。所以要先把复现成本算成"单次 × 次数"。

🧮 第五笔账:复现的账单
Step 1:单次成本是多少
项数值
AI Scientist-v2 单篇约 $15(另有 $25 报道口径)
AI Scientist-v1 单篇不足 $15(v1 原文口径)
人类参与约 3.5 小时
算术无关的一条提醒:单次成本不高(十几美元级),但它会按复现次数成倍放大——低价乘上多次才是账单。
Step 2:复现成本 = 单次 × 次数
重复次数 N(单次示意 C = $15)总成本 = C × N
115 × 1 = $15
315 × 3 = $45
515 × 5 = $75
算术:15 × 5 = 75。C 取 $15 为示意(来源为 v2 报告的约 $15/篇口径),真实值随模型与任务浮动。次数翻倍,账单翻倍。
Step 3:失败率让次数失控
单次复现成功率连续 3 次都成功 ≈ p³
0.800.80³ = 0.512
0.900.90³ = 0.729
算术:0.80³ = 0.512 ≈ 51.2%。单次 80% 看着还行,连做 3 次全中只剩约一半——所以要复现的次数往往超过 1,成本随失败率被放大。
🎯 关键认知

复现的代价 = 单次成本 × 重复次数,而重复次数又受失败率支配(单次 80% → 3 次全中仅约 51%)。判据是:与其事后反复重跑,不如事前把三要素钉死。

AI 助教
👋 对复现成本有疑问?比如「怎么估一次重跑的钱」「值不值得重跑」?

说清你的任务与预算,我帮你估这笔账。
6
怎么给"验证"设门禁?
提示:一份研究要过几道独立检查才算"能接受"?先把这些维度列全。
▾
知识背景
AutoResearch AI 综述(Tie 等,arXiv:2605.23204,2026-05)提出评估自动研究的五维评估:novelty(新颖性)、validity(有效性)、impact(影响)、reliability(可靠性)、provenance(出处可追溯),主张把注意力从"任务是否完成"移到"工作流级输出是否科学可信"。其中 provenance(出处 / 溯源)指每条断言都能追到它的来源与生成过程(用了哪些数据、哪个工具、哪一步决策),是审计与复现的前提。

上一张卡片算了复现的代价。最后一步,是把前面所有检查固化成一道门——怎么给"验证"设门禁?

因为单个指标都能被"借光":一个系统在某维表现好,宣传稿就会顺势暗示其余几维也好。门禁要的是五个维度一起过,且每条断言都能回到它的 context 与出处(provenance)。就像飞机起飞前的检查单——不是不信任飞行员,而是用固定清单把"偶发疏忽"变成"每次都被拦住"。所以用五维评估 + 否决线,把"接受"变成一个可执行判定。

🧮 第六笔账:五维门禁怎么定
Step 1:五个维度各看什么
维度看什么
novelty 新颖性是否真的新,而非改名的旧工作
validity 有效性方法与结论是否成立
impact 影响对领域是否有实际推动
reliability 可靠性换条件重跑是否仍成立
provenance 出处每条断言能否追溯到来源
算术无关的一条总纲:五维是"与"不是"或"——任一维度不过,就不能判"可接受"。
Step 2:打分与阈值(示意)
项数值
每维满分20
五维合计20 × 5 = 100
示例得分之和16 + 18 + 12 + 17 + 15 = 78
否决线任一维 < 10 即否决
算术(20 分制为示意):20 × 5 = 100;示例总分 16 + 18 + 12 + 17 + 15 = 78(= 78/100)。注意 impact 只有 12:总分 78 看着高,但单维偏低就该被单独拎出来问。
Step 3:为什么 provenance 是硬要求
检查通过条件
每条断言有出处能点开来源 / 指回日志
失败可定位能说清错在数据 / 工具 / 编排
可回滚能退回上一个已知良好状态
算术无关的一条兜底:provenance 是把前四维串起来的线——没有它,"可复现"与"可审计"都无从谈起,门禁也会退化成一句口号。
🎯 关键认知

验证门禁 = 五维评估(novelty / validity / impact / reliability / provenance)一起过 + 否决线 + 每条断言的出处。判据是:把"接受"写成可执行的检查单,而不是凭一句"应该没问题"。这正是本部分从"能跑"走到"可信"的最后一站。

AI 助教
👋 对五维门禁有疑问?比如「provenance 怎么落地」「阈值怎么定」?

说清你的场景,我帮你把五维变成可执行的检查项。