如果你问我:
深度学习顶会、顶刊最大的学术问题是什么?
我可能不会回答"创新不足"。
也不会回答"刷榜"。
而是:
越来越难复现。
而且这个问题比很多人想象得更严重。
刚接触科研的时候,我有一个天真的想法。
论文发表了。
代码公开了。
数据集公开了。
那复现应该不难吧?
后来真正去复现才发现:
完全不是这么回事。
论文里写:
We train the model using standard settings.
看到这句话我就头疼。
什么叫standard?
学习率多少?
warmup多久?
batch size多少?
随机种子是什么?
数据增强顺序是什么?
很多关键细节根本没写。
结果论文里95%的精度。
自己跑出来89%。
然后开始怀疑人生。
很多非AI领域的人可能不理解。
为什么复现这么难?
因为深度学习有个特殊现象。
很多结果不是一个因素决定的。
而是几十个因素共同决定的。
例如:
模型结构。
初始化方式。
数据清洗。
随机种子。
超参数。
训练轮数。
硬件环境。
CUDA版本。
PyTorch版本。
其中任何一个变动。
结果都可能发生变化。
我曾经看过一个特别经典的例子。
同一个模型。
同一份代码。
不同随机种子。
最终结果差了将近1%。
对于普通人来说:
1%不大。
但对于顶会论文来说:
有时候0.3%就足以决定能不能发表。
这就很尴尬了。
还有一个现实问题。
很多顶会论文其实是:
实验室资源的胜利。
不是算法本身的胜利。
举个例子。
论文写:
我们训练了200轮。
实际上背后可能是:
64张GPU。
连续训练两周。
几百万的算力成本。
普通研究生看到代码以后。
拿一张4090。
甚至一张3060。
根本复现不了。
不是能力问题。
是资源问题。
更有意思的是。
有时候作者自己都未必能完全复现。
这不是开玩笑。
很多做过深度学习的人都知道。
过了半年。
重新拉代码。
重新配环境。
结果都可能不一样。
所以现在很多顶会开始强调:
Code
Data
Checkpoint
Environment
全部公开。
原因就是大家被复现问题折磨太久了。
不过我觉得难复现不一定全是坏事。
因为这里面其实有两种情况。
第一种。
故意不公开细节。
这种确实应该批评。
因为科学研究本来就强调可验证。
第二种。
问题本身太复杂。
导致完全复现几乎不现实。
例如:
Neural Information Processing Systems
International Conference on Machine Learning
International Conference on Learning Representations
很多工作涉及超大规模训练。
别说普通学生。
很多高校实验室都跑不起。
这种情况下。
复现难度本身就是研究对象的一部分。
我觉得更值得警惕的是另一件事。
现在越来越多论文开始追求:
排行榜第一。
Benchmark提升0.2%。
0.3%。
0.5%。
于是大量精力投入到调参。
工程优化。
训练技巧。
最后论文能发。
但真正的科学发现反而变少了。
有时候一个模型:
结构创新占5%。
调参占95%。
这种工作即使复现成功。
学术价值也未必有想象中那么高。
所以如果评价深度学习论文难复现的问题。
我的观点是:
它确实是当前AI科研最大的痛点之一。
但根源不只是作者不公开代码。
而是深度学习已经逐渐从"理论科学"走向了"算力密集型工程科学"。
当一个结果同时依赖算法、数据、硬件、工程技巧和训练资源时,复现自然会越来越困难。
从长期看,我反而觉得未来真正有价值的论文,不一定是榜单第一的论文。
而是那些:
别人看得懂。
别人跑得动。
别人复现得出来。
并且依然成立的论文。
这样的成果,往往比多提升0.3%的SOTA更经得起时间考验。