如何成为优秀的研究人员

没有人真正教你如何做研究。你得到一张桌子,一个别人挑选的问题,以及一个模糊的指令——去产出一些新颖的东西。所以大多数人会从他们能看到的东西反向工程这份工作:论文、线程和公告,最终学到的其实是如何看起来像一个研究者,而不是如何成为一个研究者。

真正的技能是一堆更小的技能堆叠而成,而且几乎每一种都可以通过刻意训练来掌握。

1、自己挑选问题

Richard Hamming 在贝尔实验室有个习惯,这让他在午餐时很不受欢迎。他会问坐在附近的人,他们领域里最重要的问题是什么,然后问他们为什么不在做这些问题。人们于是换了桌子。这个问题很刺痛,因为我们大多数人并没有好的答案。我们不自己选择问题,而是吸收它们——从导师那里,从大实验室上季度宣布的方向,从这周大家都在引用转发的论文那里。

吸收来的问题的问题在于:你只持有结论,却没有推理过程。你知道某个著名实验室关心某个方向,但不知道为什么,不知道他们期望发现什么,不知道什么会让他们放弃它。当他们转向时,你一年后才知道。而且在一个已经流行的方向上,你是在和一千个比你早开始、算力比你多的人赛跑。

John Schulman 关于机器学习研究的指南把工作分成两种模式。一种是阅读文献,寻找可以改进的地方。另一种是选择一个你真正希望存在的结果,然后反向推理出需要做的实验。他主张第二种,而隐含的原因是它能制造原创性。一个你真正关心的目标,会把你拖进任何综述论文都覆盖不到的领域。

至于品味(taste),人们讨论它时好像它是天赋。它其实更像肌肉。每次实验前都预测结果。把论文的结果部分盖住,只根据方法部分猜数字。记录这个月发布的哪些工作两年后还会重要,然后回头检查你的命中率。预测 + 修正,重复几百次,这就是每个好模型的训练方式,包括你头脑里的那个。

2、升级你的输入

共享的阅读列表会产生共享的想法。如果你的信息摄入是 arXiv 趋势页加上群聊过滤后留下的东西,你就会和所有人可靠地得出相同的结论,在相同的时间,这使得这些结论几乎毫无价值。

旧材料被严重低估了。这个领域会延迟重跑自己的历史:Mixture of Experts 可以追溯到 1991 年,LSTM 到 1997 年,反向传播在 1986 年成为主流。Rich Sutton 2019 年只用了大约一千字写了《The Bitter Lesson》,它比十倍长度的综述论文都更好地预测了这个领域的形状。Claude Shannon 1952 年做过一个关于创造性思维的演讲,他的开场动作是把问题缩小到几乎微不足道,先破解小版本,然后一次一片地重新引入难度。这个单一技巧能帮你突破比任何现代生产力建议都多的难关。

广度(range)和深度一样重要。可解释性无耻地从神经科学借用。评估设计是穿着实验室外套的机制设计。对 GPU 实际如何移动内存有实际理解,能让你在基准测试出来之前就知道哪些架构论文注定失败。而诚实的统计学可能是机器学习领域最稀缺的技能,在这里很多发表的严谨性其实是带误差条的 vibes(感觉)。

还有一件事:读论文本身,而不是总结它的线程。附录是埋尸体的地方,而局限性部分通常是文档里最诚实的段落。

3、把一切都写下来

Paul Graham 指出,一个想法在你试图用文字表达它之前,会感觉完全成型。页面会找出你头脑中掩盖的缺口:你从未测试过的假设、实际上不成立的步骤、两个悄然相互矛盾的主张。

Feynman 的规则是:你第一个不能欺骗的人是你自己,因为你是最容易的目标。写作是发明过的最廉价的防御。Darwin 走得更远,把它变成程序。任何与他的理论相悖的事实,他都会当场写下来,因为他发现自己的记忆删除不方便的证据比方便的更快。你的记忆对失败的实验也做同样的事。保持日志:假设、设置、预期、结果、更新后的信念。重读上个月的条目会带来一种谦卑,这是任何审稿人都比不上的。

然后把其中一些公开。Olah 和 Carter 的《研究债务》文章指出,领域会因为未消化的想法而窒息,而清晰的解释是一项真正的贡献,而不是服务性工作。今天很多在可解释性领域工作的人是通过可读的帖子找到这个领域的,而不是会议论文。一份公开写作的积累,也会成为你能拥有的最强凭证,因为它是你思考方式的不可伪造样本。

4、收紧反馈循环

关于 Alec Radford 的故事很少涉及单一的天才灵光一闪。它们涉及的是量:每天更多的运行,每周丢弃更多错误的idea,一个比其他人更新得更快的现实模型。这才是真正的游戏。研究速度主要是你发现自己错了的速度。

这使得工具成为一流的研究活动。启动一次运行应该是一条命令。绘制它应该再来一条命令。每个实验都应该能从它的配置重现,对比两个运行应该只需几秒,而不是一下午的考古。Karpathy 训练神经网络的配方里有一个步骤,回报率高达上百倍:在大规模训练前先过拟合单个 batch。三十秒,解决一半的 bug,然后消失。把一切缩小到廉价,先做对,再花算力。

并且放弃“工程是初级伙伴”的想法。在前沿,这两份工作已经融合了。能自己构建 harness、评估和数据管道的研究者,才是其假设真正得到测试的人。其他人都在排队等待。

5、盯着输出看

一条下降的 loss 曲线不是分析,而是安慰。你的实验抛出了远比你消耗的更多的信息:转录、失败案例、分布的奇怪尾部。大部分都无人阅读地死在日志文件夹里。

Karpathy 的配方在任何训练代码写出来之前就开始了:花几个小时亲手看原始数据。大多数机器学习 bug 都活在数据里,而且它们悄无声息地失败。不会崩溃。你只是得到一个平庸的模型,和一个关于为什么的错误理论。

Andrew Ng 十多年来一直在教同一个不光鲜的动作,因为没什么能胜过它。拉出一百个失败案例,全部读完,把它们分类成堆,攻击最大的那堆。它对模型有效,对评估也有效——一个你从未读过其转录的基准测试,是一个你其实并不理解的基准测试。一条真正奇怪行为的转录,会比下一个小数点的准确率教给你更多。

6、有目的地游荡

你的第一个子领域是时间上的意外,所以就把它当作意外对待。在可解释性、评估、RL、系统等领域花真正的时间,然后再决定你住在哪里。这个领域的某个角落里,你的特定怪癖就是不公平的优势,而找到它的唯一方法是在几个地方交学费。没人能免除学费。

先跑每个想法的 disposable(一次性)版本,让大多数早早死掉。把你的 baseline 调到痛为止,因为机器学习的坟墓里堆满了对 properly tuned baseline 就蒸发的 gains,而审稿人是你最不想从那里学到这一点的来源。消融(ablate)直到你知道哪个组件承载了结果。通常是一个,而且通常不是标题里的那个。

广度也是保险。子领域都会饱和,所有都会,通常就在它们在 Twitter 上达到峰值之后。那些能在这些转变中持续产出的人,是已经熟悉周边地形的人。

7、找到你的人

Hamming 注意到谁最终做了重要工作的模式。关着办公室门的同事在任何给定年份都完成了更多工作,而开着门的同事做了真正重要的事,因为那些打断带来了关于世界真正需要什么的信息。你的“开着的门”可能是一个收件箱。保持这样。

慷慨在研究中比任何东西都更能复利。复现一个结果并公开你的发现。发布你为自己构建的工具。用平实的语言解释难的东西。回报会从侧面到来,几个月后,作为你本无法申请的合作、引用或角色。把你半成型的想法也公开,因为在时间线上出错比在纸面上出错便宜得多。而在你投入三个月之前告诉你一个想法很烂的合作者,比算力更有价值。这种关系买不来,只能赚来。

8、长期游戏

Pasteur 说运气青睐有准备的头脑,而 Hamming 在此基础上建立了一整套职业哲学:知识和生产力像利息一样复利。每天的微小优势孤立看微不足道。你读什么、你记录什么、你的循环跑得多快、你和谁争论。给它们几年,它们就会产出从外面看起来像运气的事业。比感觉必要的时间更早开始复利。未来的你已经知道,这是最便宜的部分。


原文链接:how to be good at research

汇智网翻译整理,转载请标明出处