A Decade of CVPR
2016 年是我第一次参加 CVPR. 我以 FAIR 实习生的身份注册, 在会场和旷视的伙伴们 Tim, 舒畅汇合, 一起搭起了旷视的展台. 那一年, 旷视是 CVPR 的最高等级赞助商, 展台上展览了我参与的量化 CNN 工作 DoReFa-Net, Scott Gray 还来交流了里面的量化 kernel 要怎么写. DoReFa-Net 是旷视第一次在 FPGA 芯片上跑起 CNN, 这些技术积累成了十年后上市的爱芯元智的雏形. 我们隔壁, 是侯晓迪带着同事们在布置图森的展台.
在那一年的拉斯维加斯, 华人圈子里讨论最多的 gossip 是:"听说孙剑要去旷视了". 孙剑中途来旷视的展台跟我们打了个招呼, 懵懂的我当时还并不了解这个名字的含金量. 那一年, ResNet 毫不意外的获得了最佳论文奖. 在 CVPR 后的一个月, 恺明加入了 FAIR, 在公司安排的公寓里和我做了一段时间邻居. 再往后的几年中, 以恺明、Ross、Piotr 等人为核心的这个叫做 "win vision" 的团队, 是 CV 界的 best team in the world.
2026 年, 许久不参加 CVPR 的我来了丹佛, 短暂的呆了两天. 在会场中行走, 已不像往年一样能遇到很多熟人, 整个 CV academia 也已经与我熟悉的样子大不一样.
"Old tasks" 已经不再有人关心: 遇到 FAIR 的同事 Georgia, 我跟她说, I feel like I don't belong to this community. I'm like a ... "detection person". 毕竟, 当年我们努力的各种 image understanding 任务, 包括 detection, 都被 Ross 在 CVPR2024 的 talk 中称为 "parsers", "fake tasks", 他亲自把自己多年的工作埋葬进了历史书. 今年的 CVPR 上, 在 video gen model 的巨大成功下, 有人开始把 3D 任务也视为 "fake tasks", 感慨 computer vision as we know it is about to go away. The bitter lesson 在每个经历过这个变革的人心中都是切实的苦涩, 大家想要做 "real tasks".
"Real tasks" 又有多少轮得到 academia 做贡献: academia 看得到 bitter lesson, 却没有先进的认知去理解如何做 scaling, 判断什么方法是 scalable 的, 更遑论有足够的人才和算力去做真正的 scaling. 试图提出 "新范式", "统一架构" 的工作, 不少无非是对 bitter lesson 的拙劣解读, 在并不重要的问题下扑棱一下翅膀. 在今天 frontier labs 的 scale 下, academia 已经基本失去了在 real tasks 上 "评价一个方法是否有效" 的话语权.
"New tasks" 本应是 academia 继续创新的方向. 然而, 在今天工业界为 AI 人才开出的巨额薪水下, 有几个人真的想做 "new tasks"? 做出的创新的工作, 最终大多也只是去大厂打杂的一张门票罢了.
我们做研究的方式也在变: Georgia 对我们说, "Ross is like Ross-2.0 now" -- 从前爱写代码的 Ross, 现在几乎不写代码, 实验都在 slack 里让 agent 去做. 恺明说他也差不多是这样. 我也变了: 我没有立刻听出来 Georgia 这些话并不是一个夸奖 -- 她其实并不信任 agent. 毕竟, 在 research 中永远怀疑代码, 怀疑实验设置, 怀疑一切的精神, 正是恺明教会我们的. "炼丹就是修 bug", "devil's in the details" 的道理, 我们一直秉持, 在今天我还会反复跟团队强调. 然而 agent 做事的速度如此之快, 人类对它们的工作到底应该给予多少的 trust 和 scrutiny, 才能得到效率和质量的平衡?
Test-of-time¶
今年, ResNet 毫不意外的获得了时间检验奖 (Test-of-time award). 能 "经受住时间的检验" 是对一个研究工作最高的评价. 尽管十年里这个领域改变了许多, 在这个重量级的奖项背后, 它的不少特质也经受住了时间的检验, 在今天仍然值得学习.
-
理解 "为什么": ResNet 项目早期的一个重要 motivation 是" 理解 GoogleNet 为什么 work", 并由此找到了 GoogleNet 中的"1x1 shortcut" 这一关键因素, 并进一步得到了 residual shortcut. 另一个 motivation 是 "为什么 VGG 增加深度后不 work".
历史经验告诉我们, 本质的改进无一不是基于对 "为什么" 的深刻理解, 只追求 "效果好" 的盲目优化会得到复杂, 不泛化, 无法经受时间检验的方法. 整个领域在 Neural Architecture Search 这个方向上浪费的时间就是最直接的例子.
-
简洁:ResNet 研究的一个中间结果是一个超级多 stream 的形式, 类似于后来的 DenseNet / FractalNet, 由于太复杂, 最后被简化成了 ResNet 的形式.
好的方法的最重要特质是简洁, 这一点从来没变.
-
工程: 在开源深度学习代码只有 caffe 和 cuda-convnet 的时代, 从中关村电脑城里抱回几块 GTX 580 训练 ResNet-152 的工程挑战不亚于如今的大模型训练. 不仅用上了 activation checkpointing, model parallel, operator fusion 等等当时还不存在这些名词的技术, 还需要拿着扇子对着显卡扇风降温.
今天, 除了硬件的制约外, 软件也越发 overfit 已有的学习范式. 而非凡的创新从来都需要非凡的工程能力来突破软硬件的限制.
-
Devil's in the details: 我第一次震惊于 details 的重要性, 是恺明向我展示 ResNet 的 loss curve 要怎么 smoothing. 在合理的 median-smoothing 下, 我们能看到以 epoch 为周期的 overfitting 现象, 在多年后被其他人称为 epochal sawtooth phenomenon: 每个 epoch 的 train loss 会缓慢上升, 再在下一个 epoch 开头骤然下降.
多年后, 在对 Kimi 的第一版 LLM 做 multi-epoch SFT 的时候我们看到了一样的现象, 我告诉团队 "这是正常的".
-
研究过程是不停的迭代: paper 把 ResNet 写成了 "在 VGG 上加了 shortcut" 的样子. 只看 paper, 人们或许会以为好的研究工作就是 "想到了一个好的 idea, 加在 baseline 上发现 work 了". 事实上这个世界并没有这么多神来之笔. 恺明在 港中文的 talk 最后 说: "research 中有 95% 的时间是 disappointment, 如果不是, 说明你没有在做最好的 research". 大部分的尝试不 work, 带领我们逐渐把背后的原因找到的, 是扎实的实验迭代.
-
实验设计: 我在 How To Do Ablation Experiments 中分析过 ResNet 使用 training error 这个指标的原因. 虽然是个很小的点, 但背后的实验设计的精神值得学习.
一个好的文章往往有不止一种实验设计: 除了 "效果好" 相关的实验之外, 能回答 "为什么" 的实验, 是最考验实验设计能力, 也体现文章深度的.
-
写作: Deep Learning Experiments and Claims 从如何 make claims 的角度评价过 ResNet 的写作. 同一个方法, 靠写作可以从完全不同的视角被呈现出来, 而改变了看问题的视角又能引导出新的实验发现. 赛宁在 podcast 中也提到过, 恺明每篇论文都在 deadline 前一个月就基本写完了. 写作并不是对工作的 "总结", 写作其实是实验迭代的不可分割的一部分.
上面不少故事, 在祥雨讲述的 ResNet 的研究历程 中也有提及. 这些特质也持续体现在随后几年的 Training ImageNet in 1 Hour, Mask R-CNN, GroupNorm, MoCo 等工作中.
Research Taste¶
CVPR2017, 在夏威夷海边的晚宴上, 孙剑关于 research taste 给过这样一个建议: 遇到一个新问题 / 新方法, 你要去想, "如果我是恺明, 我会不会对这个问题 / 方法感兴趣?"
当时的我觉得这个说法有点好笑, 但后来渐渐开始理解这句话: 一方面, 这个标准的确能过滤掉很多不那么好的研究工作. 另一方面, 好的 taste 到底是什么, 又实在难以完整的描述. 赛宁的 podcast 中讲述的各种轶闻趣事, 以及前面提到的 ResNet 的种种特质, 都是 taste 的一个个微小的投影.
在 agent 能做的事情越来越多的今天, 作为指挥者的人需要亲自做的事情越来越少, 人的 taste 也越来越重要. Taste 是关于 "我要实现什么价值" 的 vision, 是关于 "我想要做什么" 的 motivation, 是关于 "做成什么样是好的" 的 judgement, 是关于 "为什么可以这样做" 的 curiosity.
今年 CVPR, 有些意外的是, 与 ResNet 一同获得时间检验奖的还有 YOLO. 和 ResNet 相比, YOLO 远远不算是一个 taste 好的工作, 不客气的说, YOLO 的论文里可能没有一个称得上 "经受住时间检验" 的 claim. 我和 Georgia, 昊祺在知道 YOLO 获奖的消息的时候, 都有些失望. 尽管 Ross 是 YOLO 的作者之一, 他通常也并不掩饰自己对 YOLO 系列的不喜欢.
Ross 开玩笑说, 希望自己没有得这个奖. Georgia 说: "Even Ross-2.0 still doesn't like YOLO." 听到这, 我感到某种释然: 尽管这个领域改变了太多, 总还是有些东西没有变.