Anthropic 研究员 Vivek:如何真正擅长研究
原文:How to be good at research
作者:Vivek
本文为中文翻译整理版,尽量保留原文结构、判断和表达力度。

没有人真正教你做研究。
你被安排到一个工位,接手一个别人选好的问题,然后只得到一句含糊的要求:做出一点有新意的东西。于是大多数人只能观察那些看得见的外在产物:论文、帖子、公告,再从这些东西倒推研究到底该怎么做。
结果他们学会的,是如何看起来像一个研究者,而不是如何成为一个研究者。
真正的研究能力,其实是许多小技能叠加起来的。而其中几乎每一项,都可以被有意识地训练。
1. 不要接过别人递来的问题
Pick your own problems
Richard Hamming 在 Bell Labs 有一个习惯,这个习惯让他在午餐桌上不太受欢迎。他会问坐在旁边的人:你们领域里重要的问题是什么?然后再问:那你为什么不在做这些问题?
人们后来会换桌子。
这个问题刺痛人,是因为我们大多数人都没有一个好答案。我们并不选择问题,我们只是被动接收问题:从导师那里,从某个大实验室上个季度宣布的方向里,从这周所有人都在转发的那篇论文里。
被动接来的问题,麻烦在于你拿到了结论,却没有拿到推理过程。你知道某个有名的实验室在乎一个方向,但你不知道为什么,不知道他们期待发现什么,也不知道什么结果会让他们放弃它。
等他们转向时,你可能一年后才知道。而在一个已经流行起来的问题上,你是在和上千个比你更早开始、算力也更多的人比赛。
John Schulman 的机器学习研究指南把研究工作分成两种模式。一种是读文献,然后寻找可以改进的地方。另一种是选择一个你真心希望它存在的结果,然后从这个结果倒推需要做哪些实验。
他主张第二种。这个建议背后有一个不那么显眼、但很重要的原因:第二种方式会制造原创性。一个你真正关心的目标,会把你带到那些任何综述论文都没有覆盖的地带。
taste,也就是研究品味,常常被讨论得像是一种天赋。但它更像一块肌肉。
每次实验运行前,先预测结果。读论文时,先把结果部分盖住,只根据方法猜数字。标记这个月发布的东西里,哪些两年后仍然重要,然后之后检查你的命中率。
一次预测加一次修正,重复几百次,这就是每一个好模型被训练出来的方式,包括你脑子里的那个模型。
2. 给思想换一条河流
Upgrade your inputs
共享的阅读清单,会产生共享的想法。
如果你的信息来源只是 arXiv 的热门页,再加上那些能穿过群聊过滤器的东西,那你会稳定地得出和所有人一样的结论,而且是在同一个时间得出。
这样的结论价值约等于零。
旧材料被严重低估了。这个领域会延迟重演自己的过去:mixture of experts 可以追溯到 1991 年,LSTM 到 1997 年,backprop 在 1986 年成为主流。
Rich Sutton 在 2019 年只用了大约一千个词写出《The Bitter Lesson》,它对这个领域形态的预测,比十倍长度的综述还要好。
Claude Shannon 在 1952 年做过一次关于创造性思维的演讲,他开场的动作是把一个问题缩小,直到它几乎变得微不足道;先解决这个小版本,再一件一件把困难重新放回来。
这个单一技巧,比大多数现代生产力建议都更能帮你破局。
广度和深度同样重要。interpretability 会大量借鉴神经科学。eval design 本质上是披着实验室外衣的机制设计。
真正理解 GPU 如何搬运内存,会让你在 benchmark 出来之前,就知道哪些架构论文注定不行。
诚实的统计学可能是机器学习里最稀缺的技能;这个领域里,很多发表出来的所谓严谨,其实只是给感觉加上误差线。
还有一件事:读论文原文,不要只读总结它的帖子。真正的问题常常藏在附录里,而 limitations 部分通常是整篇文档里最诚实的一段。
3. 把脑中的雾写到纸上
Write everything down
Paul Graham 指出,一个想法在你试图把它写成文字之前,会感觉像是已经完全成形。
纸面会找出那些被你的大脑自动补过去的漏洞:那个你从未测试过的假设,那个实际上并不成立的步骤,那两个悄悄互相矛盾的论断。
Feynman 的规则是,你首先必须避免欺骗的人是你自己,因为你自己是最容易被欺骗的目标。写作是人类发明过的最便宜的防御手段。
Darwin 走得更远,他把它程序化了。任何和他的理论相抵触的事实,他都会当场写下来,因为他发现自己的记忆会比删除方便证据更快地删除不方便的证据。
你的记忆也会对失败的实验做同样的事。
保留一份日志:假设、设置、预期、结果、更新后的判断。
重读上个月的记录,会让人谦卑,而这种谦卑是任何审稿人都给不了的。
然后把其中一部分公开。
Olah 和 Carter 的 research debt 文章提出,领域会被未消化的想法堵住;清晰的解释本身就是真正的贡献,而不是辅助性的杂活。
今天许多做 interpretability 的人,最初是通过可读的博客文章进入这个领域,而不是通过会议论文。
一个公开写作的作品集,也会兼作你能拥有的最有力凭证,因为它是你如何思考的不可伪造样本。
4. 让错误更早抵达
Tighten the loop
关于 Alec Radford 的故事,很少是关于某一次天才般的灵光一现。它们讲的是数量。
每天更多次运行,每周丢掉更多错误想法,让自己对现实的模型比别人更新得更快。这才是真正的游戏。
研究速度,大部分是你发现自己错了的速度。
这也使工具建设本身成为研究中最重要的一部分。
发起一次实验运行应该只需要一条命令。画图应该再多一条命令。每个实验都应该能从它的配置复现,比较两次运行应该只花几秒,而不是一个下午的考古。
Karpathy 的神经网络训练配方里,有一个步骤会回报你一百次:在大规模训练之前,先过拟合一个单独的 batch。
三十秒,半数 bug 消失。
把一切缩小到便宜,先把它做对,然后再花算力。
也该放弃一种想法了:工程只是研究的次要搭档。在前沿,这两份工作已经融合。
能构建 harness、eval 和数据 pipeline 的研究者,才是那个假设真正会被测试的人。其他人都在队列里等待。
5. 在输出里看见真相
Stare at the outputs
下降的 loss 曲线不是分析,它只是安慰。
你的实验会抛出远多于你真正阅读的信息:transcripts、失败案例、分布里的长尾异常。其中大多数都死在日志文件夹里,从未被阅读。
Karpathy 的配方开始于任何训练代码被写下之前:先花几个小时手工查看原始数据。
大多数机器学习 bug 都藏在数据里,而且它们是静默失败的。
没有东西崩溃。你只是得到一个平庸的模型,以及一个关于为什么会这样、但其实错误的解释。
Andrew Ng 十多年来一直在教同一个并不光鲜的动作,因为没有什么能胜过它。
抽出一百个失败样本,全部读一遍,把它们分堆,然后先处理最大的一类。
这对模型有效,对 eval 也有效;一个你从未读过 transcripts 的 benchmark,是一个你实际上并不了解的 benchmark。
一个真正奇怪行为的 transcript,会教给你的东西,比下一个小数点后的准确率更多。
6. 带着问题去迷路
Wander on purpose
你的第一个子领域,通常只是时机造成的偶然,所以要把它当成偶然。
花真正的时间在 interpretability、evals、RL、systems 里走一走,然后再决定你要长期扎在哪里。
这个领域的某个角落里,会有一个地方让你身上那些独特甚至有点古怪的特质成为不公平优势。找到它的唯一方式,是在好几个地方交学费。
没人会免掉这笔学费。
先运行每个想法的最简一次性版本,让其中大多数早点死掉。
调你的 baselines,调到你觉得难受为止,因为机器学习的坟场里满是那些在一个调好的 baseline 面前蒸发掉的提升,而审稿人是最糟糕的学习对象。
做 ablation,直到你知道哪个组件真正贡献了结果。通常只有一个,而且通常不是标题里的那个。
广度也是保险。
所有子领域都会饱和,通常是在它们刚刚在 Twitter 上达到热度顶峰之后。
那些能在这些转变中持续产出的人,是已经知道如何在邻近地带行动的人。
7. 把门打开,让世界进来
Find your people
Hamming 注意到,最终做出重要工作的人有一个模式。
关着办公室门的同事在某一年里可能完成更多事情,而开着办公室门的同事做出的工作更重要,因为那些打断会带来关于世界真正需要什么的信息。
你的开放办公室门,可能就是一个 inbox。
让它保持开放。
在研究里,没有什么比慷慨更容易产生复利。复现一个结果,并公开你发现的东西。发布你为自己构建的工具。用平实语言解释一个困难的东西。
回报会在几个月后以意想不到的方式回来,变成一个合作、一次引用,或者一个你本来无法申请到的机会。
也把你半成形的想法公开抛出来,因为在时间线上犯错,比在论文里犯错便宜得多。
那个在你投入三个月之前就告诉你一个想法很糟糕的合作者,比算力更有价值。
这种关系买不来,只能靠长期积累挣到。
8. 让微小优势开始复利
The long game
Pasteur 说,幸运偏爱有准备的头脑。
Hamming 在这个基础上构建了一整套职业哲学:知识和生产力会像利息一样复利。
每天那些微小优势,孤立看都很不起眼。
你读什么,你记录什么,你的循环跑得多快,你和谁争论。
给它们几年时间,它们就会制造出从外面看起来像运气一样的职业轨迹。
比你觉得有必要的时候更早开始复利。
未来的你已经知道,这部分原本是最便宜的。