← 返回全部文章

如何做好研究

研究这件事,很少有人真正教过。除了读论文、跑实验,它还需要一组可以刻意训练的小技能:选题、输入、记录、反馈、观察输出,以及找到同路人。

没有人真的教你怎么做研究。你得到一张桌子,一个别人选好的问题,还有一句含糊的要求:做点新的东西。于是大多数人只能从看得见的东西里反推这份工作,比如论文、帖子、发布公告。最后学到的,往往是怎样看起来像个研究员,离真正会做研究还差一截。

真正的能力是一组更小的能力叠在一起。几乎每一项都可以训练。

选自己的问题

Richard Hamming 在贝尔实验室有个习惯,午饭时很不讨人喜欢。他会问坐在旁边的人:你这个领域里重要的问题是什么?然后再问:那你为什么不做它?

后来有人开始换桌子。

这个问题刺痛人,因为大多数人没有好答案。我们并不真正选择问题,而是吸收问题:来自导师,来自某个大实验室上一季度的方向,来自这周被疯狂转发的论文。

被吸收来的问题有个麻烦:你拿到了结论,却没有拿到推理过程。你知道某个知名实验室在意一个方向,却不知道为什么,不知道他们预期会发现什么,也不知道什么结果会让他们放弃。等他们转向时,你往往一年后才知道。而在一个已经流行的问题上,你要和上千个更早开始、算力更多的人赛跑。

John Schulman 的机器学习研究指南把工作分成两种模式。一种是读文献,然后找可以改进的地方。另一种是先选一个你真的希望它存在的结果,再倒推出该做哪些实验。他更赞成第二种。安静的原因在于,它会制造原创性。一个你真正在意的目标,会把你拖进综述论文覆盖不到的地方。

品味常被当成天赋来谈,其实它更像肌肉。每次实验前,先预测结果。读论文时遮住结果部分,只凭方法猜数字。把这个月的发布列出来,判断哪些两年后还重要,之后回头检查命中率。预测,加上纠正,重复几百次,任何好模型都是这么训练出来的,包括你脑子里的那个。

升级输入

共同的阅读清单,会生产共同的想法。如果你的信息饮食只有 arXiv 热门页,再加上群聊过滤后剩下的东西,你大概率会和所有人在同一时间得出同样的结论。这样的结论几乎不值钱。

旧材料被严重低估了。这个领域经常延迟重演自己的过去:混合专家模型可以追到 1991 年,LSTM 是 1997 年,反向传播在 1986 年进入主流。 Rich Sutton 在 2019 年只用大约一千个词写下《苦涩的教训》,却比许多十倍长度的综述更能预测这个领域的形状。

Claude Shannon 1952 年讲创造性思维时,开头的方法是把问题缩小,缩到几乎平凡,先解决小版本,再一块一块把难度加回来。这个单一技巧,能帮你穿过的墙,比很多现代生产力建议都多。

广度和深度一样重要。可解释性毫不客气地借用神经科学。评测设计像是穿着实验服的机制设计。理解 GPU 如何移动内存,会让你在 benchmark 出来前就知道哪些架构论文注定不行。诚实的统计能力在机器学习里可能最稀缺,很多已发表的严谨性,不过是带误差线的感觉。

还有一件事:读论文,不要只读总结它的帖子。附录里常常埋着尸体,局限性部分通常是整份文档里最诚实的一段。

全部写下来

Paul Graham 提醒过,一个想法在脑子里可以显得完整,直到你试着把它写成文字。纸面会找到脑子自动糊过去的洞:那个从没验证过的假设,那个其实接不上的步骤,两个悄悄互相矛盾的判断。

Feynman 的规则是,你最先要避免欺骗的人是自己,因为自己最容易被骗。写作是人类发明过最便宜的防御。 Darwin 做得更程序化:任何和自己理论相冲突的事实,都要立刻写下来,因为他发现自己的记忆会更快删除不方便的证据,保留方便的证据。

你的记忆对失败实验也会做同样的事。保留日志:假设、设置、预期、结果、更新后的判断。回看上个月的记录,会比任何审稿意见都更让人清醒。

然后,把其中一部分公开。 Olah 和 Carter 关于研究债务的文章认为,领域会被未消化的想法堵住,清楚的解释本身就是贡献,不只是服务工作。今天很多做可解释性的人,是通过可读的文章进入这个领域,并非通过会议论文。

持续公开写作也是很强的凭证,因为它伪造不了。它展示的是你怎样思考。

缩短反馈回路

关于 Alec Radford 的故事,很少是某次天才一闪。更多是量:每天更多次运行,每周丢掉更多错误想法,对现实的模型比别人更新得更快。这才是真正的游戏。研究速度,很大程度上就是你发现自己错了的速度。

所以工具本身就是一等研究活动。启动一次运行应该只需要一条命令。画图再多一条。每个实验都应该能从配置复现,比较两次运行应该花几秒,不能变成一个下午的考古。

Karpathy 的神经网络训练食谱里,有一步回报极高:大规模训练前,先让模型过拟合一个 batch 。三十秒,半数 bug 就没了。先把一切缩小到便宜,弄对,再花算力。

也该放下“工程只是研究的初级伙伴”这个想法了。在前沿位置,两份工作已经融合。能搭 harness 、 eval 和数据管线的研究者,假设才真的会被测试。其他人只能排队等。

盯着输出看

下降的 loss 曲线不能算分析,只是安慰。实验产生的信息远比你消费的多:对话记录、失败案例、分布尾部那些奇怪样本。大部分信息最后都死在 logs 文件夹里。

Karpathy 的食谱在写任何训练代码前就开始了:先花几个小时手工看原始数据。大多数机器学习 bug 住在数据里,而且它们会悄悄失败。程序不会崩。你只会得到一个平庸模型,以及一个关于原因的错误理论。

Andrew Ng 十多年来一直教同一个不光鲜的方法,因为没有什么能替代它:拉出一百个失败样本,全部读完,分堆,先处理最大的一堆。这个方法适用于模型,也适用于评测。一个你从没读过转录记录的 benchmark,你其实并不理解。一次真正奇怪的行为记录,能教你的东西,比准确率小数点后一位更多。

有目的地游荡

你的第一个子领域只是时间的偶然,所以也要把它当偶然。先在可解释性、评测、强化学习、系统里认真待一段时间,再决定自己住在哪里。这个领域里,总有一个角落能让你的某种奇怪特质变成不公平优势。找到它的唯一办法,是在几个地方都交过学费。没人会免掉这笔学费。

每个想法都先跑一次一次性版本,让大多数想法早点死。把 baseline 调到难受为止,因为机器学习的坟场里,到处都是在一个调好的 baseline 面前蒸发的收益。最好别从审稿人那里才知道这件事。做消融,直到你知道到底哪个组件承担了结果。通常只有一个,也通常不在标题里。

广度也是保险。所有子领域都会饱和,而且常常就在它们登上 Twitter 顶峰之后。能在这些转换期继续产出的人,通常已经熟悉隔壁的地形。

找到同路人

Hamming 注意到,最后做出重要工作的人有一种模式。关着办公室门的同事,在某一年里能完成更多事;开着门的同事,做出了更重要的事,因为那些打断带来了关于世界真正需要什么的信息。

你的开门方式可能就是收件箱。让它保持开放。

慷慨在研究里会以非常奇怪的方式复利。复现实验,并公布结果。发布你为自己写的工具。用简单语言解释困难问题。回报往往会绕路,在几个月后出现,变成一次合作、一次引用,或者一个你原本根本申请不到的位置。

半成型的想法也可以放到公开场合试一试。时间线上出错,比正式发表后出错便宜得多。一个能在你投入三个月前告诉你“这个想法不行”的合作伙伴,比算力更珍贵。这种关系买不来,只能挣来。

长期游戏

Pasteur 说,幸运偏爱有准备的头脑。 Hamming 在这句话上建出了一整套职业哲学:知识和生产率会像利息一样复利。

日常的小优势单独看都很小:读什么、记录什么、反馈回路有多快、和谁争论。给它们几年时间,它们会制造出一种从外面看像运气的职业路径。早点开始复利,越早越好。未来的你会知道,这一段其实最便宜。

来源:https://x.com/itsreallyvivek/status/2064686372737454155