选择你自己的问题
在贝尔实验室,Richard Hamming 有一个习惯让他在午餐时不受欢迎——他会问坐在他旁边的人:“你这个领域最重要的问题是什么?”然后再问:“你为什么不在做它?”人们于是换桌子。这个问题刺人,是因为我们大多数人都没有好答案。我们并不挑选问题,我们只是吸收它们——从导师那里,从某个大实验室上个季度宣布的方向,从这周所有人都在引用的那篇论文。
一个“被吸收来的问题”麻烦在于:你拿到了结论,却没拿到论证过程。你知道某著名实验室在意某个方向,却不知道为什么,他们预期会找到什么,又会因为什么而放弃它。当他们转向时,你一年后才后知后觉。而在已经时髦的问题上,你是在和一千个比你起步更早、算力更多的人赛跑。
John Schulman 的《机器学习研究指南》把研究分成两种模式:一种是你读文献然后寻找可以改进的地方;另一种是你选一个你真心想让它存在的目标,然后倒推回去设计实验。他主张后者,而其中沉默的理由是——后者会“制造”原创性。一个你真正在意的目标,会把你拖进任何综述论文都覆盖不到的领域。
至于“品味”,人们常把它讨论成一种天赋。它其实更像一块肌肉:在跑实验之前先预测结果;把论文结果部分盖住,只看方法猜数字;标记本月发布的成果里哪些两年后还重要,然后过一段时间核对你的命中率。一个预测加一次修正,重复几百次——这正是每一个优秀模型被训练出来的方式,包括你脑子里那一个。
升级你的输入
共享的阅读清单会生产共享的想法。如果你的信息食谱只有 arxiv 的 trending 页,加上群聊筛选后剩下来的东西,你必然会与所有人同时得出相同的结论——而这也让这些结论差不多一文不值。
旧材料的估值低得离谱。这个领域在不断重复自己的过去:Mixture of Experts 可以追溯到 1991 年,LSTM 追溯到 1997 年,反向传播在 1986 年就已主流化。Rich Sutton 在 2019 年只用大约一千字写出《苦涩的教训》,它对这个领域未来形态的预测比十倍长度的综述还准。Claude Shannon 在 1952 年做了一场关于创造性思维的演讲,开场动作是:把问题缩小到近乎 trivial,搞定这个最小版本,再把难度一点点加回去。仅这一招,比任何现代生产力建议都能带你穿过更多墙壁。
广度与深度同样重要。可解释性神经科学上是毫不客气地借用过来的;评测设计是披着白大褂的机制设计;懂一点 GPU 到底怎么搬内存,能让你在基准跑出来之前就看出哪些架构论文注定失败。而诚实的统计学,可能是机器学习里最稀缺的技能——这里很多“严谨”是带误差棒的氛围。
还有一件事:去读论文本身,而不是读别人总结它的推文。附录才是埋尸体的位置,而 Limitations 那一节通常是一篇论文里最诚实的一段。
把所有东西写下来
Paul Graham 指出:一个想法在落到字面上之前,常常感觉已经完全成形。纸面会找到你脑子里糊过去的空隙:你从未检验的假设、其实不成立的那一步、悄悄互相矛盾的两条断言。
Feynman 的法则是:第一个你不能骗的人是你自己,因为你是最容易的靶子。写作是迄今最便宜的防御。Darwin 把它做成流程化:任何与他的理论相左的事实,必须当场记下来——因为他已经发现自己的记忆会删除不方便的证据,速度远快于删除方便的证据。你的记忆对你的失败实验也是这么干的。保持一份日志:假设、设置、预期、结果、修正后的判断。一个月后重读自己写的东西,那种谦卑,是任何审稿人都给不了的。
然后把其中一部分放到公开处。Olah 和 Carter 的《研究债》论文主张:领域会噎在没被消化的想法上,而清晰的解释本身是真正的贡献,不是什么服务性工作。今天很多在做可解释性的人,是通过可读的博客进入这个领域的,不是会议论文。一批公开写作也是你能拿出来的最强凭证——因为它是一份不可伪造的、你思维方式的小样。
收紧反馈循环
关于 Alec Radford 的故事,几乎没有哪一段涉及一次灵感爆发——它们都关乎量。更多的运行/天、更多的错误想法被丢掉/周,一个比任何人都更新得更快的现实模型。这才是真正的比赛。研究速度,主要是你发现自己是错的速度。
这也让工具成为一等公民的研究活动。启动一次实验应该是一条命令;画图应该再一条;每个实验都要能从它的 config 复现;比较两次实验应该是几秒钟的事,不是半天的考古学。Karpathy 的《训练神经网络的菜谱》里有一步,性价比高到可以回本一百次:在上规模训练前,先在单 batch 上过拟合。三十秒,半数 bug 消失。把所有东西缩小到便宜,把它们做对,再去花算力。
也请放弃“工程是研究里 junior partner”的念头。在前沿,这两个工种已经融合。能搭架子、能写 eval、能拉数据管线的那个研究者,他的假设才真的被测了。其他人都在排队等。
凝视输出
一条下降的 loss 曲线不是分析,而是安慰。你的实验扔出来的信息远多于你实际消费的:转录文本、失败案例、分布那条奇怪的尾巴。它们中的大部分在 logs 目录里默默死去。
Karpathy 的菜谱在任何训练代码被写出来之前就启动——花几小时手抠原始数据。多数机器学习的 bug 活在数据里,且静默失败。什么也不崩,你只是得到一个平庸的模型,再配上一个关于“为什么”的错误理论。
Andrew Ng 十几年来反复教的是同一招不性感的动作:拉出一百个失败样本,全读一遍,分类成几堆,攻击最大的那一堆。它对模型有效,对 eval 也一样——一个你从未读过它转录文本的 benchmark,是一个你其实并不理解的 benchmark。一段真正奇怪行为的转录,教给你的比下一个小数点后的精度更多。
有目的地游荡
你的第一个子领域是时机的偶然,所以把它当偶然对待。在可解释性、评测、强化学习、系统里都真待一段时间,再决定你住哪里。在这个领域的某个角落,你那份具体的“怪”会是一种不公平的优势,而定位它的唯一方法,是先去几个地方交学费。没人会免你的学费。
先跑每个想法的“一次性”版本,让它们大多数年轻时就死掉。把你的基线调到痛,因为机器学习的坟场里,充满了对调好的基线就蒸发了的“提升”,而审稿人是你最不该从那里学到这一点的人。消融到你知道是哪个组件在扛结果——通常是一个,而且通常不是标题里那一个。
广度也是保险。子领域都会饱和,全部,通常就在它们在 Twitter 上达峰之后。那些在过渡期里还在持续产出的,正是早就在邻近区域里认路的人。
找到你的人
Hamming 注意到了一个模式:谁最终做出了重要工作。关着办公室门的同事,某一年产出更多;开着门的同事,做的工作更重要——因为打扰里带的信息,是关于世界真正需要什么。你的“开着门”很可能就是一个收件箱,保持那样。
慷慨在研究里的复利无与伦比。复现一个结果,把你发现的发表出来。把为自用而写的工具放出来。用平实的语言解释很难的东西。回报是侧向到达的,几个月后,变成你无法申请的那次合作、那篇引用、或那个角色。把你半成形的想法也浮到公开处,因为在时间线上错,比在印刷品里错便宜得多。那个会告诉你“想法是烂的”的合作者,值超过一卡时算力——这种关系买不到,只能挣。
长期游戏
Pasteur 说机遇偏爱有准备的头脑;Hamming 在这之上建了整套职业哲学:知识与生产力按利息复利。每天的边缘单独看都很琐碎——你读什么、记什么、循环多快、和谁争论——给它们几年,它们会产出从外面看像运气的职业生涯。比感觉必要的更早开始复利。未来的你,已经知道这是当时最便宜的部分。