大道至简——谈论文写作风格

大道至简——谈论文写作风格

我认为,一篇论文,最好的写作风格,一定是极简的。要简单到,让审稿人觉得创新度不够而拒稿,这文章才算改成了 我第一次接触到这个思想,是sora刚出来的时候,我看到谢赛宁老师写了这么一段关于Diffusion Transformer(DiT)的话: 当 Bill (Peebles) 和我研究 DiT 项目时,我们没有追求创新性,而是优先考虑了两个方面:简单性(simplicity)可扩展性(scalability)。 当时看到此话,很受感触,但尚不理解其深意。 现在两年过去,期间看了很多论文,见证了各种技术的发展和应用,自己也做了点项目,才觉得此话有某种大道至简之妙。虽然至多体会了其中三分之一,还是跟大家分享一下 本文将从三个方向讨论为什么论文要追求极简,包括科学探索、营销、以及工程实践,并尝试探讨如何在工作中实践 一、科学探索 文章要追求极简,首先因为科学需要严谨和探究精神。 譬如有天,一个研究者提出了一个ML的方法,加了许多工程技巧(tricks),跑了实验,一看涨了点,很多时候就直接把文章发出去了 然而,这里仍有许多问题: 为什么涨点? 涨点到底是具体因为哪个trick 涨点的机理是什么? 方法能否复制和通用 大部分人并不会仔细探究,就好像中医抓药,十几味药一起上,说是复方,其实根本搞不清楚哪味药起的作用。很可能起作用的只有一味药中的某一个分子,其他药反而有害。糊里糊涂,懵懵懂懂,美其名曰经验、凭感觉 对于此种问题,不研究清楚会有极大的害处;而研究清楚,又有极大的好处: 首先,如果能把涨点的原因搞清楚,往往会发现,之前提的方法,包含了ABCD多个作用机理,而只有机理A有用。此时,我们往往可以把BCD全部砍掉,提出一个全新的只包含核心机理的方法 其次,如果机理研究清楚,我们可以更好的理解,它到底是针对性的方法还是有某种通用性。比如对于语言模型涨点的架构,是利用了语言的特性,还是视觉也可以用? 最后,从黑箱优化的角度来说,方法越多,变量越多,可能的配方数量和复杂度是成指数增长的。考虑到各种方法之间的相互作用,其实实验是根本跑不完的。于是猜的那个配方往往是凭感觉,而非真的最优配方 对于最后这点,为避免跑指数次的grid search(格子搜索)业界使用的方法往往有两种: 一、类似shapley value的变量控制。即首先猜出一个最优配方,然后再把每个变量跑一遍对比试验,来论文整配方确实最优。 二、从一个基础版本出发,将几个trick一个一个加上去,以观察性能是否一致的增长。 然而以上两种方法其实都有问题,因都没真正考虑trick之间的相互作用。因此,对于写论文,最好变量砍到3个以下,而尤以只提一点进步最优。 回到DiT。DiT刻意不追求创新,只把最成熟的Vision Transformer(ViT)和Latent Diffusion Model(LDM)一拼,只加了个AdaLN-Zero。所以,当他们说既能涨点又能规模化(scale up),结论就很可信 二、营销 A神曾经跟我说过,做研究,追求的是工作的impact(影响力);而影响力中最重要的,是思想的传播 一条能传播的思想必须简单,应该让人一听就懂。同时它必须足够极致,极致才有穿透力 我依稀记得高中的时候,听吴恩达的网课。吴恩达让我们去看resnet的论文,说给半个小时,我5分钟就看完了。当时我觉得,residual connection(残差链接),如此简单的东西,难道不是是个人都该能想到? 多年后,回过头来看,才知道根本不是这么一回事。我能看懂不是我聪明,而是恺明的写作天下第一,把问题研究的极为透彻,又以最简单的方式将其写了出来。其直觉(intuition)之直观,逻辑之缜密,句子与句子之间一点缝隙都没有,所以让人看完之后觉得显然,仿佛深度学习天然就该如此 但是现实是这样吗?resnet有这么简单显然吗?当然不是。不然,前面的那么多深层模型的训练就不会跑崩,VGGNet也没必要训一层叠一层了。 我曾听说(也可能是我的想象),恺明他们为了让模型不训崩,做了很多尝试。比如为什么不用highway net,为什么residual的系数一定是1。然而,跑出来一条稳定的训练后,他不断地跑消融实验(ablation),不停地删减,只留下那最核心的机制,一看哦与残差的概念颇为相似。他也不去声称创新性,还叫残差。大家一听就懂,好传播了,他才满意 关于写作简单与否,还有个好玩的现象: 越是没什么创新的文章——比如我若搞了个新的agent系统——就越会采取复杂的写作手法,将自己的创新点写得越多越好 五颜六色的流程图,详尽的实验报告,再旁征博引一堆概念,加入各种NP-Hard的图论结构,做一堆评测,才好让审稿人看在苦劳的面子上给个高分 说句屎上雕花稍微过分,但称其无病呻吟绝不为过 可若是我在做某种很基础的研究,要对某种底层的机理做创新。那么,光是让读者接受其想法已经很难了,就不能复杂问题更复杂化,而是追求简单 正所谓把书从薄读到厚,从厚读到薄 从写作上有一点需注意,是声称方法有创新,还是复用一个已有的名称来描述它,诚实地报告其来龙去脉 如果复用名称,读者读起来就好理解,也可以联系起关于此技术的之前的研究,以对这篇文章能有更多的看法,可审稿人就会觉得创新不够 不复用,审稿人看着觉得创新,但读者理解起来就会有额外的困难 譬如ResNet。恺明当然可以说它搞了个什么新东西,叫highway也好还是叫KaimingNet也好,大家还是会接受。但他还是选择将其连回残差的概念,以减少复杂度 讲个身边挺好笑的例子 我们组的实习生之前写了一篇评测评测集(benchmarking benchmarks)的文章(这不是重点。我也觉得出发点挺奇怪),里面用到了一个类似pagerank的迭代法,不过不是任意图,而是在Bipartite Graph(二分图)上的周期为二的随机游走 这篇文章也是历经挫折,连续投稿三次,ICML,NeurIPS,直到最近这次ICLR才中稿 我问,为啥分忽然高了? 他俩说,之前投稿的时候,他们都管算法叫bipartite pagerank。审稿人虽然没写,但或许一看,“啊,pagerank”,觉得创新不够。这次他们全文没提pagerank,于是审稿人不明觉厉,都说很创新,于是纷纷打高分 我听完真的很难绷,跟他们说,camera ready的时候还是改回来吧。毕竟审稿人不算人,可以这么干。面对读者还是真诚一点 传播学另一个考虑的问题就是,你的观众是谁? 如果你觉得自己的论文是传世论文,你不会只想写给小同行看的,而是要整个领域的人都看看 而看论文的读者里,会有新入门的学生、一线的工程师、外行的风投、企业的老板、甚至高中老师。写太难了他们就看不懂了,所以反而要往简单了写 总之,论文越简单,其思想才能传播越广。就像乔布斯时代的苹果手机一样,极简的设计,表面上要不停做减法,让傻子上手都能用,背后是无数技术的突破和打磨 这样的文章,读者看完,不应该直呼精妙,而是觉得: 啊,就这么简单?不会吧不会吧,不会真有人想不到吧 我想,让读者发出如上感叹,文章就算写成了 三、工程实践 小时候很喜欢看纪录片里讲大国重器的发展,飞机、火箭、高铁、对撞机 里面常常提到一个概念,叫系统工程 比如他们会说,每一代大工程都要有先期研发,关键技术突破;确定了关键技术指标,就要技术冻结,新技术不能上 每一代最多上30%新技术。像长征五号就因为上了70%的新技术,所以就崩了,debug了两年多才修好 从小我就记得这些话,但从来不理解其中的含义 直到最近,真的做了工程,听了些访谈里讲大模型的开发,与一些技术人员交流,我才明白管理复杂度的重要性 其实其中道理就跟上面说的一样,一个最优配方的搜索空间虽变量的数量成指数增长。如果每一代上2-3个新技术,其搜索空间大约在2^3,尚还可控。倘若像llama 4 一样,一次上一堆,每个技术又没仔细跑通小规模的实验和消融,那必然会崩 当然,有些部分的技术风险是可以分隔的 比如infra的系统加速好多时候就没事,只要精度对齐了,kernel(算子/核函数?)加速和并行策略并不会太互相干扰(这也难说其实) 亦或者,后训练的时候,因为可以试很多次,一次也就最多烧个几万刀无所谓。这一代模型发布了,下次更新还可以改。那配方你就试去吧,爱试多少试多少,训成了拿这个checkpoint合成数据并到主模型,训崩了也没事 对于能分离的风险,复杂度随新技术数量线性增长,也就还好 好,想象你是大模型的总工程师,要定下一代模型的架构。 底下研究员会纷纷拿出自己的方案—— A说:我提议上某简单技术A,原理简单,实践也简单好用 你:成 B说:我提议上某成熟方案B,DeepSeek和Nvidia都跑通了,那么多公司验证过肯定没问题 你:也行 C说:我在顶会上看到一篇文章,说如果CDEFGHI,几个trick一起用,能比baseline涨足足十个点!太精妙了,太创新了! 你:额…… B其实风险最低,A把消融跑清楚了风险也可控。可你要听了C的,整代模型的所有复杂度的容错冗余就被这一个(一坨?)技术用光了,必会带来意想不到的惊吓 Sora用DiT为什么成功,也是类似的道理。非常成熟的ViT和非常成熟的LDM,怎么跑崩?由此余出来的复杂度可以用来探索视频声称的一些其他技术,比如flexible aspect ratio(可变宽高比)之类的 那么,如何在论文写作中实践呢? 首先,跑出好的实验结果,要刨根问底,探究原理 做消融实验绝不能偷懒,对极简有极致的要求,把能砍的东西一定全砍了 每当觉得自满的时候,不妨想想,我真研究清楚了吗?敢把这稿子给恺明老师看吗?不敢就接着改 当然,这样的研究风格是要比一般做法耗费精力的,不好的工作不值得这样 但问题是,如果你已经知道当前工作不好,那除非是为了交差(基金、公司考核),不然为何要做呢? 而如果是好工作,你甘心只有少数人看过吗? 我觉得如此做学问,可能花的功夫只多大约三倍左右,但收益至少是千倍 至于投稿,这么写确实可能加大拒稿的可能,毕竟DiT当年投CVPR真被拒了。 但是,如果一篇极简的论文,科学上严谨,思想上广为流传,工程上真的应用到了今天的模型里,为人类造福,那拒不拒稿又有什么影响呢?