← 全部文章 ~/posts/how-to-be-good-at-research
BLOG · 实战帖

How to Be Good at Research:AI 时代的研究方法论【译介】

我希望我本科研究生阶段能读到这么好的文章,我的职业发展会完全不一样。

这是她做 research 的方法论,非常聪明扎实,有复利性。

译文:

vivek @itsreallyvivek 如何做好研究(how to be good at research) 并没有人真正教过你如何做研究。你得到一张办公桌、一个别人挑好的问题,以及一个“做出点新东西”的模糊指令。因此,大多数人通过他们能看到的东西(比如论文、帖子和公告)对这份工作进行逆向工程,最终他们学到的只是如何“看起来”像个研究员,而不是如何“成为”一个研究员。真正的研究能力是一系列小技能的堆叠,而几乎每一项都可以通过刻意练习来培养。 挑选你自己的问题 理查德·汉明(Richard Hamming)在贝尔实验室有个习惯,这让他在午餐时很不受欢迎。他会问坐在旁边的人,他们领域里重要的问题是什么,然后问他们为什么不去研究这些问题。于是大家纷纷换桌吃饭。这个问题很刺人,因为我们大多数人都给不出好答案。我们不是在选择问题,而是在吸收问题——从导师那里吸收,从某个大实验室上个季度发布的公告里吸收,从这周大家都在转发引用的论文里吸收。 吸收来的问题,麻烦在于你只握有结论,却不知其背后的推理逻辑。你知道某个著名实验室关心某个方向,但你不知道为什么,不知道他们期望发现什么,也不知道什么情况会让他们放弃这个方向。当他们转向时,你一年后才会察觉。而且,在一个已经流行起来的问题上,你是在和一千个起步比你早、算力比你多的人赛跑。 约翰·舒尔曼(John Schulman)的机器学习研究指南将这项工作分为两种模式。第一种,你阅读文献并寻找可以改进的地方。第二种,你选择一个你真心希望实现的结果,然后反推去设计实验。他主张第二种,其隐晦的原因在于这能制造出原创性。一个你真正关心的目标,会把你拖入任何综述论文都未曾覆盖的领地。 至于“品味”(taste),人们常把它当成一种天赋来讨论。但它表现得其实更像是一块肌肉。在运行每次实验前,先预测它的结果;遮住一篇论文的结果部分,仅凭它的方法来猜测数据;记下这个月发布的哪些成果在两年后依然重要,以后再来验证你的命中率。一次预测加上一次纠错,重复几百次——每一个好模型都是这样训练出来的,包括你脑子里的那个。 升级你的输入 共享的阅读清单产生共享的想法。如果你的信息口粮只是 arXiv 的热门榜单加上群聊筛选后剩下来的东西,你必然会跟所有人同时得出同样的结论,这也使得这些结论几乎一文不值。 旧资料的价值被严重低估了。这个领域总是延时重演自己的过去:混合专家模型(MoE)可追溯到 1991 年,LSTM 到 1997 年,反向传播在 1986 年就成了主流。理查德·萨顿(Rich Sutton)在 2019 年只用了一千来字就写出了《苦涩的教训》(The Bitter Lesson),而它对该领域发展轨迹的预测,比篇幅长它十倍的综述还要准。克劳德·香农(Claude Shannon)在 1952 年做过一场关于创造性思维的演讲,他的第一招就是把问题缩小到几乎微不足道的程度,破解这个缩小版,然后再将难度一点一点地加回去。单凭这一招,就能帮你撞破比任何现代生产力建议都要多的墙。 广度和深度一样重要。可解释性研究毫不掩饰地借鉴了神经科学;评测(Eval)设计就是披着白大褂的机制设计;只要对 GPU 到底如何移动内存有实际的认知,你就能在基准测试结果出来之前判断出哪些架构论文注定会失败;而诚实的统计学可能已经是机器学习领域最稀缺的技能了,在这里,许多公开发表的“严谨”,不过是带有误差棒的“感觉”。 还有一件事。去读论文本身,而不是读总结它的帖子。附录才是埋藏秘密的地方,而“局限性”部分通常是整篇文档中最诚实的一段。

把一切都写下来 保罗·格雷厄姆(Paul Graham)指出,一个想法在你试图把它变成文字之前,总感觉已经非常成熟了。但白纸黑字会暴露出你大脑粉饰过的漏洞:你从未测试过的假设、其实并不连贯的步骤、两个悄悄自相矛盾的主张。 费曼(Feynman)的原则是,你必须避免欺骗的第一人就是你自己,因为你是最容易上当的目标。写作是有史以来发明的最廉价的防御机制。达尔文走得更远,他将其程序化了:任何违背他理论的事实都会被当场写下来,因为他发现自己的记忆删除不便证据的速度,远比删除有利证据的速度快。你的记忆对你失败的运行记录也是如此。保持做日志的习惯:假设、设置、预期、结果、更新后的认知。重读上个月的记录会让你感到极度谦卑,没有任何审稿人能带来这种效果。 然后,把其中的一部分公之于众。Olah 和 Carter 的“研究债务”(Research Debt)一文论证了:整个领域会因未被消化的想法而窒息,因此,一个清晰的解释本身就是一种真正的贡献,而不仅仅是服务性工作。如今很多从事可解释性工作的人,是通过易读的博客文章而不是会议论文发现这个领域的。一系列公开的写作同样也是你能拥有的最强有力的资历,因为那是你思考方式的不可伪造的样本。 收紧反馈循环 关于亚历克·拉德福德(Alec Radford)的故事很少涉及灵光一闪的天才之举。它们往往关乎于体量(volume)。每天跑更多的实验,每周抛弃更多错误的想法,建立一个比任何人更新得都快的现实模型。这才是真正的游戏规则。研究的速度,在很大程度上就是你发现自己犯错的速度。 这使得工具开发成为了一流的研究活动。启动一次运行应该只需要一个命令,将其绘制成图表只需要再加一个命令。每个实验都应该可以通过它的配置文件复现,对比两次运行结果应该只需要几秒钟,而不是耗费整个下午去“考古”。Karpathy 训练神经网络的秘籍里有一步能带来百倍的回报:在大规模训练之前,先在一个批次(batch)上让它过拟合。花三十秒,解决你一半的 Bug。把一切缩小到成本极低,确保正确,然后再去烧算力。 同时,抛弃“工程只是辅助”这种想法。在前沿领域,这两项工作已经融合。只有能自己搭建脚手架、评测和数据管道的研究员,其假设才能真正得到检验。其他人都在排队等待。 死盯着输出结果 下降的损失曲线不是分析,只是安慰。你的实验抛出的信息远比你吸收的要多:文本记录(transcripts)、失败案例、分布上奇怪的尾部。其中大部分都在日志文件夹里未被阅读就死去了。 Karpathy 的秘籍在写下任何训练代码之前就开始了,他会亲自动手在原始数据上花费数小时。大多数机器学习的 Bug 潜伏在数据中,并且它们是静默失败的。程序不会崩溃,你只会得到一个平庸的模型,外加一个关于“为什么平庸”的错误理论。 吴恩达(Andrew Ng)十多年来一直教授同样看似毫不光鲜的招式,因为没有什么能打败它:把一百个失败案例拉出来,把它们全部读一遍,分门别类,然后集中火力攻克最大的一类。这对模型有效,对评测同样有效——一个你从未阅读过其运行文本的基准测试,就是一个你实际上根本不懂的基准测试。一份真正奇怪行为的记录,教给你的东西将远超小数点后下一位准确率的提升。 带着目的去漫游 你的第一个子领域只是一次时机的偶然,所以就把它当成偶然来看待。在决定你最终扎根哪里之前,花点真金白银的时间在可解释性、评测、强化学习(RL)和系统层面。在这个领域的某个角落里,你特有的那种“古怪”会成为一种不公平的优势,而找到它的唯一方法就是在不同的地方交点学费。没人能免除这笔学费。 针对每一个想法,先跑个一次性的粗糙版本,让它们中的大多数早早夭折。狠狠调整你的基准(baselines),直到你感到痛苦为止。因为机器学习的坟墓里堆满了在调试良好的基线面前烟消云散的“提升”,而审稿人是让你明白这一点的最糟糕人选。做消融实验(ablation),直到你搞清楚究竟是哪个组件带来了结果——通常只有一个,而且通常不是标题里写的那个。 广度也是一种保险。子领域总是会饱和的,通常就在它们在 Twitter 上达到热度巅峰之后。那些在经历这些变迁时仍能持续产出的人,是那些早已熟悉邻近领域路况的人。 找到你的同路人 汉明注意到那些最终做出重要工作的人身上有一种模式:习惯关着办公室门的同事在任何特定年份里完成的工作都更多;而敞开门的同事则做出了真正重要的工作,因为那些打断他们的交流,传递了关于这个世界真正需要什么的资讯。你的“敞开的门”很可能就是一个收件箱,保持它的畅通。 在研究中,慷慨带来的复利是其他任何东西都比不上的。复现一个结果并公布你的发现;发布你为自己做的工具;用大白话解释一个复杂的东西。回报会从侧面悄然降临,也许是几个月后的一次合作、一次引用,或者是一个你本来根本无法申请的职位。把你半成型的想法也在公共场合抛出来,因为在信息流里犯错,比在白纸黑字上犯错要便宜得多。那个能在你浪费三个月时间之前告诉你某个想法很糟糕的合作者,比算力更有价值。这种关系买不到,只能去挣。 做长线玩家 巴斯德(Pasteur)说运气眷顾有准备的头脑,而汉明在此基础之上建立了一整套职业哲学:知识和生产力会像利息一样产生复利。孤立来看,每天的这点微小优势似乎微不足道——你读了什么,你记录了什么,你的反馈循环跑得多快,你和谁争论。但给它们几年时间,它们就会铸就那些在外人看来宛如纯粹好运的职业生涯。 早点开始积累复利,比你觉得有必要的时间还要早。未来的你早已明白,这才是成本最低的部分。

First published on X 本文首发于 X @MinLiBuilds · X 149K 阅读 去 X 看原帖、参与讨论 →