Anthropic研究员万字长文:没人教过你怎么做研究
https://x.com/itsreallyvivek/status/2064686372737454155
Richard Hamming在贝尔实验室有个习惯,让他在午餐桌上很不受欢迎。
他会问坐在旁边的人:你们领域里最重要的问题是什么?然后再问:那你为什么没在研究它?
人们开始换桌子坐。
这个问题刺痛人,是因为大多数人根本没有好答案。
我们不是在选择问题,我们是在吸收问题,从导师那里,从某个大实验室上季度宣布的方向里,从这周所有人都在转发的那篇论文里。
研究能力是一组可以刻意训练的小技能。
从怎么选问题、读什么材料、如何记录思考,到怎么加速实验循环、怎么找对合作者,每一项都有具体的方法论。
吸收来的问题,自带一个致命缺陷
吸收来的问题,你拿到了结论,却没有推理过程。
你知道某个著名实验室在押注某个方向,但不知道为什么,不知道他们期待找到什么,也不知道什么情况下他们会放弃。
等他们转向,你一年后才知道。
而在一个已经时髦的问题上,你在和一千个比你起步更早、算力比你更多的人赛跑。
John Schulman在他的机器学习研究指南里把工作分成两种模式:
一种是读文献、找可以改进的地方;另一种是先确定一个你真正想看到存在的结果,然后倒推出需要做的实验。
他主张第二种,背后的逻辑很安静:这种方式会制造出原创性。
一个你真正在乎的目标,会把你拖进任何综述论文都没有覆盖到的领域。
品味这件事,常被人当作天赋来讨论,但它更像一块肌肉。
每次跑实验之前先预测结果。
拿到一篇论文,先盖住结果部分,只看方法,猜数字。
记下这个月发布的哪些工作两年后还会有人提,之后回来对照命中率。
预测加纠错,重复几百次,这就是所有好模型的训练方式,包括你脑子里那个。
共享的阅读清单,只会产生共享的想法
如果你的信息来源是arXiv的热门页面,加上群聊里过滤剩下的内容,你大概率会和所有人同时得出同样的结论。
而同时得出的同样结论,价值约等于零。
旧材料的价格被严重低估了。
这个领域一直在延迟重演自己的历史:混合专家模型可以追溯到1991年,LSTM到1997年,反向传播在1986年才真正流行起来。
Rich Sutton在2019年用大约一千个词写了《苦涩的教训》,它对这个领域走向的预测能力,比很多十倍长的综述都强。
Claude Shannon在1952年有一个关于创造性思维的演讲,他的第一招是:把问题缩小到几乎平凡的程度,先解决小版本,再一块一块地把难度加回来。
这一个技巧能带你穿过的墙,比任何现代生产力建议都多。
跨领域的宽度和深度同样重要。可解释性研究在厚颜无耻地借鉴神经科学。
评测设计本质上是穿着实验室白大褂的机制设计。真正理解GPU如何搬运内存,能让你在跑基准测试之前就看出哪些架构论文是死路。
而诚实的统计学,大概是机器学习里最稀缺的技能,这个领域里很多所谓的严谨,不过是带着误差棒的直觉。
还有一件事:去读论文本身,不要只看线程摘要。
附录里藏着尸体,局限性部分通常是整篇文章最诚实的段落。
写下来,才知道自己有没有真的想清楚
Paul Graham说过,一个想法在你试图把它写成文字之前,可以感觉完全成形。
但纸面会找出你脑子里糊过去的漏洞:那个从没验证过的假设,那个其实推不出来的步骤,那两个悄悄互相矛盾的论断。
Feynman的原则是:你最不能愚弄的人是你自己,因为你是最容易被愚弄的目标。
写作是有史以来最便宜的防御手段。
Darwin走得更远,他把这件事变成了一个流程。
任何与他理论相悖的事实,必须当场记下来,因为他发现自己的记忆删除不方便的证据,比删除方便的快得多。
你的记忆对你失败的实验做着同样的事。
保持一个日志:假设、设置、预期、结果、更新后的判断。
回看上个月的记录,那种羞耻感是任何审稿人都给不了你的。
然后把一部分内容公开发出去。
Chris Olah和Shan Carter在《研究债务》里论证过:一个领域会被消化不良的想法噎住,而一篇清晰的解释是真正的贡献,不只是服务性工作。
今天很多在做可解释性研究的人,是通过可读的博客文章找到这个领域的,不是通过会议论文。
公开写作也是你能拥有的最强履历,因为它是你思维方式的一个无法造假的样本。
研究速度,本质上是发现自己错了的速度
关于Alec Radford的故事,很少涉及某个单一的天才时刻。
它们涉及的是体量:每天更多的实验,每周丢弃更多的错误想法,一个比任何人都更新得快的现实模型。
这让工具链成为了一项一流的研究活动。
启动一次实验应该是一条命令。画图应该再多一条。
每个实验都应该能从配置文件里复现,比较两次实验结果应该花几秒钟,而不是一个下午的考古。
Karpathy的神经网络训练手册里有一个步骤,回报率高得离谱:在大规模训练之前,先在单个batch上过拟合。
三十秒,消灭一半的bug。把一切缩小到便宜,做对,再花算力。
也该放弃"工程是研究的初级合伙人"这个想法了。
在前沿,这两份工作已经融合了。
能自己搭框架、写评测、做数据管道的研究员,才是那个假设真正能被检验的人。其他人都在排队等待。
下降的loss曲线不是分析,是安慰
你的实验产生的信息远比你消化的多:对话记录、失败案例、分布的奇怪尾巴。
大部分死在一个没人打开的logs文件夹里。
Karpathy的手册在任何训练代码动工之前,先花几个小时手动看原始数据。
大多数机器学习的bug藏在数据里,而且是静默失败的。
没有任何东西崩溃,你只是得到一个平庸的模型,以及一个关于原因的错误理论。
Andrew Ng推了这个不上镜的动作超过十年,因为没有什么能打败它:拉出一百个失败案例,读完,分类,攻克最大的那堆。
这个方法对模型有效,对评测也有效。
一个你从没读过对话记录的基准测试,是一个你其实不理解的基准测试。
一条真正奇怪的行为记录,能教给你的东西,比准确率再多一位小数多得多。
你的第一个子领域,是时机的意外
把它当意外来对待。
在可解释性、评测、强化学习、系统方向上都花真实的时间,再决定你住在哪里。
这个领域的某个角落里,你特定的怪癖是一种不公平的优势,而找到它的唯一方式是在几个地方交学费。
没有人能免学费。
先跑每个想法的一次性版本,让大多数想法早早死去。
把基线调到令人痛苦的程度,因为机器学习的墓地里堆满了在一个调好的基线面前蒸发掉的"提升",而从审稿人那里学到这件事是最糟糕的方式。
做消融实验,直到你知道哪个组件在撑着结果。通常只有一个,而且通常不是标题里写的那个。
宽度也是保险。每个子领域都会饱和,通常就在它在社交媒体上到达顶峰之后不久。
那些能穿越这些转折继续产出的人,是那些已经对邻近领域了如指掌的人。
开放的门,带来真正重要的信息
Hamming注意到一个规律:关着门的同事在任何给定的一年里完成了更多工作,而开着门的同事做了真正重要的工作,因为那些打断他们的信息,携带着关于世界真正需要什么的线索。
你的开着的门大概是你的收件箱,保持这样。
慷慨在研究里的复利效果无与伦比。
复现一个结果并发布你的发现。把你为自己做的工具开源出去。
用平实的语言解释一件难事。
回报会从侧面到来,几个月后,以一次合作、一个引用、或一个你原本无法申请的职位的形式。
把你半成形的想法也公开发出去,因为在时间线上犯错,代价远比在论文里犯错便宜。
而那个在你投入三个月之前告诉你这个想法有问题的合作者,比算力更值钱。
那种关系买不到,只能赚到。
比感觉必要的时间更早开始复利
Pasteur说运气偏爱有准备的头脑,Hamming在这句话上建立了整个职业哲学:知识和生产力像利息一样复利增长。
每天的优势单独看微不足道:读什么,记什么,循环跑多快,和谁争论。
给它们几年时间,它们会产生从外面看起来像运气的职业生涯。
比感觉必要的时间更早开始复利。未来的你已经知道,现在是最便宜的阶段。