看论文是有惯性的:读得越多越有收获感,但真正落到自己项目里的很少。原因往往不是论文不好,而是缺一套把结论变成可比较数据的流程。

我这两年把这件事收敛成一张表——不复杂,但明显减少了「重复试同一个东西」的时间。

复现难,难在信息不全

同一篇论文,两个人复现出不同结果,很常见。差别通常来自没写出来的那部分:数据清洗方式、随机种子、训练轮数的判断标准、评测脚本的细节,甚至框架版本。

这些不记在自己的台账里,三周后自己也想不起来。等到要写文档或者交接时,只能凭印象补,补出来的多半不准。

一次实验至少要记七件事

按行记,一行一次实验。我固定记七项:

字段说明
编号按时间递增,不要用语义命名
改动相对上一次只改了哪一处
数据数据集版本与切分方式
配置关键超参,变动项标出来
指标主指标加一个验收指标
成本训练时长与算力开销
结论一句话:留下还是放弃

编号用递增数字看起来笨,但它的好处是不可变——语义命名会在你改主意之后变得名不副实。

关键是一次只改一处。同时改三处,指标涨了也不知道是哪一处起的作用,最后只能重跑。

表格本身就是筛选器

记满一屏之后会发现,很多「新想法」在表里已经出现过,结论是没用。

我印象最深的一次是准备调一个损失函数的权重,翻表发现三个月前试过同一组参数,当时记录是「涨 0.4 个点但推理变慢,放弃」。如果没有这张表,我会再花两天走一遍同样的路。

表格的作用不是留档,是阻止自己做重复劳动。

从记录到可比

光记还不够,要让不同实验可比:

  • 评测脚本固定成一个版本,改动单独说明
  • 指标统一口径,比如都取同一批测试样本
  • 随机性要重复几次取分布,不是取最好那次

最后一条尤其重要。单次结果好一点,很可能只是种子运气;跑三次看波动范围,才知道那点差距是不是真的。

还有一个实操细节:把「放弃」的决定也写下来。人容易在两周后重新捡起一个已经验证过不行的方向,尤其是它当时看起来很有希望。

一个人做和团队做的区别

一个人做实验,凭记忆也能对付一阵子,因为成本只由自己承担。团队一旦超过两个人,同样的事情立刻变成重复劳动。

这时候台账要加两列:谁跑的和为什么跑。前者避免两个人同时试同一个方向,后者让你三个月后还能判断这个结论是否仍然成立。

另一个变化是口径要写死在文档里,不能靠口头传递。常见的情况是两个人分别在跑评测,一个用全部样本、一个用过滤后的子集,然后拿着两组数字讨论谁的效果更好,其实根本没在比同一件事。

一张实验台账的用法
  1. 1先写假设这次想验证什么,一句话
  2. 2只改一处保证结论可归因
  3. 3跑固定的评测脚本和样本都不变
  4. 4记结论留下或放弃,附一句原因
字段越多越难坚持,先跑起来再增补

结论:把「看过」变成「用过」

论文是选题库,不是答案。能沉淀下来的是那张表:它告诉你什么试过、什么没用、为什么。

读一百篇,不如把自己试过的二十次记清楚。

本文不构成任何技术建议,实验结论请以自身数据与重复验证为准。