China 3DV上和教授的谈话记录
一、短期融合与长期原生统一
提问者:视频生成后面会继续走混合式自回归,还是走您报告里讲的原生多模态统一?
Professor:我觉得短期内会走融合。AR 和 diffusion 各有偏向,AR 更擅长建模因果,diffusion 更擅长表达结构。比如眼睛对称、前后结构这些信息,AR 也能表达,但它的强项还是因果;diffusion 则反过来,对结构更自然。所以短期内大家会把二者结合起来,autoregressive diffusion Transformer 这类架构可能会成为视频生成的重要路线。
但长期看,我还是认为多模态原生统一是更高性能模型的方向。这里不是说原生统一里没有 diffusion,而是 diffusion 更可能放在连续模态、结构性模态的 decoder 上,承担解码或结构补充的角色。真正关键的是中间不能还是一个纯语言模型。如果中间只是 LLM,然后前后接视觉、图像、视频模块,那还是搭积木,不是原生多模态。原生统一一定要有一个多模态原生 backbone,diffusion 只是对连续模态进行解码。
提问者:那 diffusion language model 呢?语言推理未来会不会也变成 diffusion?
Professor:纯语言模型用 diffusion 建模,我认为不合适,完全不合适。语言建模追求的核心更多是因果,而 diffusion 的目标和成本都不一样。但在 VLA 里情况不同,因为 VLA 的核心重点是 action。L、V、A 这些模态性质不同,diffusion 可能更适合发挥在 action 或连续控制上,而不是纯语言上。
二、什么是真正的原生多模态
提问者:您讲原生多模态时说,不同模态在 backbone 里要被同等对待。那不同模态的 encoder 进来后体量不一样,怎么做到同等?
Professor:首先取决于前面的视觉 token encoder 怎么做,它给 backbone 留下多少信息。现在很多视觉 token,尤其是用 CLIP encoder 的,本质上是先对齐到语言空间,再输入语言模型。这样视觉就变成了语言的 token,或者说语言里的“图”。
这会带来一个典型问题。比如一张图里有 6 个手指,模型为什么会数成 5 个?因为 visual encoder,尤其 CLIP encoder,把视觉信息提取出来后转成语言 token。语言模型接收到的是“这是手,这是人的手”,而不是完整的 pixel-level 细节。这已经是不可逆压缩。手的像素级信息丢掉以后,模型就只剩语义先验:人的手有 5 个手指。你继续追问它 5 个手指叫什么,它还能讲得很清楚,但那只是语言层面的清楚,视觉信息已经没了。
所以原生多模态的第一点,是视觉不要被语言那层头压扁。不能把视觉完全对齐到语言空间,而是要保留视觉模态自己的信息。第二点,不同模态进入 backbone 后,要有 modality embedding。position embedding 告诉模型位置,modality embedding 告诉模型这个位置上的 token 属于哪个模态。这样 decoder 输出时,才知道该交给视觉 decoder、语言 decoder,还是 action decoder。
提问者:那是否应该把不同模态的信息取并集,而不是取交集?
Professor:对。取交集会丢掉非交集的部分,而那些部分恰恰可能是视觉模态、听觉模态或 action 模态特有的信息。真正的多模态空间应该是各个模态平等的并集空间,而不是把所有模态压成语言能理解的那部分。
提问者:encoder 和 decoder 要不要统一?
Professor:我反而觉得 encoder 和 decoder 不需要统一。不同模态有不同数据特征,应该允许不同 encoder。不同任务也应该有不同 decoder。比如输出 action 的 decoder 和生成 RGB 像素空间的 decoder 肯定不同;语言 decoder 和 action decoder 也不同。多模态原生不是在编解码器阶段强行统一,而是在 backbone 阶段实现原生和平权。编解码器是为模态和任务服务的,backbone 才是融合和推理发生的地方。
三、个人经历:为什么坚持视觉和原生多模态
提问者:您是怎么从早期视觉研究走到原生多模态这条路线的?这部分我挺想听,因为 CLIP 也就是 2021 年左右才出来,原生多模态更是近几年才被反复讨论。
Professor:这其实是学术信仰的问题。如果你相信一个方向,就要能在它还不是共识的时候坚持。商业上也有例子。两年前 coding 还是非共识路线,大语言模型公司更愿意打榜、刷数学题、刷奥赛,因为这些有 PR 效果。但 Anthropic 坚持 coding,最后把能力打穿,OpenAI 反而被 Claude Sonnet 的 coding 能力打到了。OpenAI 一边走多模态,一边做 coding,两边都没有完全站稳,后来又回到 coding。这里说明的是,真正有价值的路线,一开始不一定是共识。关键是你要找到真正正确的非共识。
学术上更典型的是 Jeff Hinton。他坚持神经网络几十年。神经网络当年也是非共识,被 SVM 和统计学派压得很厉害。但如果没有这种坚持,就没有后来的深度学习,也没有今天的大模型。所以做学术要能找到核心问题,并在它还不是共识时坚持。
我为什么坚持原生多模态?因为我视觉出身。现在多模态其实被语言压制得很严重。大家讲 physical AI,但你想想,真正接触 physical world 的模态是视觉,不是语言。宏观物理空间里本来不存在语言,语言是人为了高效沟通创造出来的。人在创造语言时,已经对世界做了编码和标注。所以语言不是完全自监督,语言里本身已经有大量人的标注。我们说的每句话都是人在标注世界。
视觉不一样。视觉真正面对物理世界,它的挑战更大,但它现在被整体低估。很多估值最高的大模型公司本质上还是语言公司。所以我讲原生多模态,很大一部分原因是希望视觉模态和语言模态能有共同地位,能共同进入 backbone 学习,而不是永远被语言压制。
提问者:这个判断和您早年的研究经历有关吗?
Professor:有很大关系。2018 年我对视觉领域,甚至整个 AI 领域都有一段时间很失望。当时大家隐隐觉得 AI 可能又要进入一个小寒冬,尤其做视觉的人会觉得落地很难,很多业务不好做。2019 年我去了一段时间哈佛,但我没有选 AI 实验室,而是去了一个脑科学实验室。那个实验室的老师是 Margaret Livingstone,在 Harvard Medical School。她这条线往上就是 David Hubel。
Hubel 和 Wiesel 做过很经典的视觉实验,在猫的视觉皮层插电极,采视觉神经信号。今天很多关于 receptive field 的概念,都跟这条线有关。第一代视觉神经网络,包括福岛邦彦的工作,也受到这套视觉系统研究的启发。Hubel 和 Wiesel 后来拿了 1981 年诺贝尔生理学或医学奖。
我去看这条源头线路时,Hubel 已经去世了。能接触到并且继承这条视觉研究路线的人,就是 Margaret Livingstone。我给她写信,说我想去学习一段时间,想看看视觉研究的源头现在发展到什么程度。
结果去了以后,我对脑科学更失望。因为我发现脑科学很多地方还在原地踏步,甚至很多发展还要借助我们的 ANN。但我在那里得到一个很重要的启发:当时我们采猴脑的一些数据,我试图用这些数据去训练神经网络,训练不成功;但我发现用神经网络去拟合这些脑信号是可以的。更重要的是,我发现 Transformer 拟合大脑神经信号,比 CNN 更好。
这件事让我在 2019 年坚定地从 CNN 转向 Transformer。因为我是做视觉的,所以我转向视觉 ViT。我在 2018、2019 年其实已经在做类似 ViT 的东西,只是没有做成功,主要是因为数据和算力不够。后来 2020 年 10 月 ViT 出来,我发现它的方法很简单,本质是大力出奇迹。它给我的启发是:视觉 Transformer 是有希望的,只是需要 scale。
所以我很快做了 T2T-ViT。T2T-ViT 的思路,就是希望在 ImageNet 上从头训练 Vision Transformer,同时引入 inductive bias,让它不需要那么夸张的数据量。我没有像 Swin、PVT、PVTv2 那样走 hierarchical vision transformer,因为我认为层次化会把 backbone 改成纯视觉结构,它为了视觉优化,但不利于未来接入语言。我的想法是,前面的 T2T 可以看作带 inductive bias 的编码器,后面的 Transformer backbone 要为未来语言和多模态融合保留空间。那时候我其实已经在为原生多模态铺路。
我当时还跟 Wenhai 说,PVT 是邪路,不要走。但从纯视觉角度看,PVT 更高效,引用也会更高。今天看,PVT 引用可能是我的两倍。但我依然坚持不碰 hierarchical vision transformer,因为它不符合我未来想走的多模态统一路线。学术追求有时候就是这样,你明知道某条路短期收益更高,但如果它不通向你认为正确的长期方向,就不能选。
提问者:所以 ViT 在出来前,对您来说其实已经是一个非共识方向?
Professor:对,是非共识。我当时跟老板颜水成老师说想做这个。他问我 ImageNet 刷到多少点,我说 40% 左右。当时 CNN 动不动 70 多,差 30 个点。他就问,你这不是白耗算力吗?而且开销还更大。你确定要搞?我说我坚信它是对的。
我确实没有在 ViT 之前把它做出来,因为在学校,没有那么多数据和算力。但 ViT 2020 年 10 月出来后,我发现我的 codebase 已经有了,之前做的东西跟它很像。别人可能认为我 follow ViT,但实际上我之前就在做,只是没资源做成功。所以我 12 月就有一版,1 月初就放出来了。不是我手快,而是前面已经在坚持做。非共识路线就是这样,短期可能得不到资源,也会被质疑,但你坚持下来,等它成为共识时,你的坚持就有意义。
四、世界模型:推理应该发生在 decoder 之前
提问者:如果世界模型不应该只是纯视频生成模型,那它需要什么?是不是应该有推理能力?
Professor:纯生成和纯理解都不能称为完整 world model。单模态 world model 其实早就有,比如语言模型就是语言模态的 world model。但真正的世界模型不应该是单模态,也不应该是单维度。人的下一个状态既有动作,也有语音输出,还有其他模态输出。所以 world model 的基础仍然是多模态原生。没有多模态原生,世界模型就是缺模态,残缺的。
提问者:现在有些模型的推理固定在某个输出模态里,比如语言通过 chain-of-thought 推理,视频通过预测下一帧。真正多模态 world model 是否应该把推理放在 decoder 之前?
Professor:对。多模态原生时,这件事就很好做。你先不要看 decoder,先看 backbone 输出的那一层。decoder 是为了完成某种目的,比如输出 action、视频或图像。但如果在 decoder 之前,backbone 出来的 token 是多模态 token,所有模态都在这个序列里,那么在这一层做推理完全没问题。真正的多模态联合推理,不应该主要依赖 decoder。
decoder 参与的是单任务推理或单模态推理。多模态联合推理应该发生在 decoder 之前、backbone 输出空间里。语言模型看起来没有额外 decoder,或者说输出层很轻,核心能力仍在前面的 backbone / MLP 里。未来多模态推理也应该这样:架构做好以后,推理在统一的 backbone 空间里发生。
五、Memory、TTT 与参数本身作为记忆
提问者:刚才提到 TTT,也就是 test-time training。把模型参数作为记忆本身,这种方式是不是更合理?
Professor:参数本身就是记忆,但要想清楚你说的是 static memory 还是 dynamic memory。Transformer 里很多参数本质上是 FC 或 MLP,但 attention 和 MLP 的核心差别在于:attention map 是 data-dependent 的。Q 乘 K 得到 attention map,如果你把 attention map 矩阵里的每个数当成 FC 参数,那这个“参数”每次输入数据不一样都会变。它是在构建一种动态的、和数据相关的记忆。
attention map 乘 V,其实就像一层 FC。区别是这层 FC 的“参数”不是固定训练出来的,而是从输入数据生成出来的。MLP 和 FFN 则是静态的,训练完 FC 参数就固定了。所以 attention 更像 dynamic memory,FFN 更像 static memory。
提问者:那 MoE 呢?
Professor:FFN 切成 MoE 后,在 inference 时也可以看成一种 memory 检索。它不是让所有 memory 都激活,而是找和当前任务相关的 memory,把相关 expert 组合起来。它本质上还是静态 memory,但具备了一定动态组合能力。
还有一种路线是 memory module 或 memory bank,把信息存在外部“银行”里,生成或理解时再取。但问题是,如果 memory 作为额外检索模块,很容易又回到检索范式,本质没有变化,只是把 memory 从 token 换到另一个空间,而且它仍然会无限增长。
工业界现在更简单:直接增大参数,让神经网络本身成为记忆载体。这其实符合奥卡姆剃刀,不额外增加实体。如果你能让 memory 发生在参数里面,就不需要额外 memory 模块。当然这件事怎么落地,还需要具体方案。
六、Action、VLA 与具身
提问者:action 也是一种模态。现在 VLA 往往后面加一个 action head,但没有把 action 当成和其他模态对等的东西。您怎么看?
Professor:action 是原生多模态里非常重要的一种模态。也可以把 robotic state 和 action 绑定成一种模态。但现在的问题是,VLA 还没有真正原生的规模化训练。很多 vision 和 action 都是在后面 fine-tuning 阶段加进去的,本质上还是 L 为主体,V、A 是后接模块。如果不是原生的,action 始终是附属模块。
action 的最大卡点是数据。语言数据太丰富,而且很多互联网语言数据天然带标注。视觉领域做得早,也有很多数据。action 数据少,这是具身最大的卡点之一。action 和 video 很像,都有时间维度;但 action 又和 video 不一样,它的数据规模更小,冗余度也更低。如果采集现实 action 数据,质量可能更高,编码也更简单。只要数据量足够,action 模态可以做起来。当 action 数据足够多时,原生训练会比后训练好很多。
提问者:您会做机器人吗?
Professor:我没有把具身作为主要方向。很多人劝过我去做,但我还是认为当前最大的卡点是多模态原生。视觉和语言如果能原生搞定,action 作为某种模态被融合进来,反而是小问题。现在它的卡点主要在数据上。
七、MoE、模态专家与统一空间
提问者:MoE 能不能理解成一种 Modality of Experts?
Professor:其实很早之前就有类似思想。MoE 原始论文不是从语言模型来的,而是音频相关问题,1991 年 Hinton 那条线。它当时解决的是语音里的不同任务、不同人的元音识别,类似鸡尾酒会问题。所以 MoE 不是新东西。
我认为 MoE 在原生多模态里的价值很大,因为它相当于构建脑分区。有些 expert 是单模态 expert,比如视觉 expert、语言 expert;有些 expert 是跨模态融合 expert。人脑也是这样,不同脑区有分工,但也有 overlap。原生多模态里,MoE 比很多架构更重要,因为它天然支持模态分工和平权。
提问者:那多模态统一到底应该发生在编码阶段,还是 backbone 阶段?
Professor:核心是在 backbone 阶段。不同模态的 encoder 可以不同,decoder 也可以不同。你不需要强行统一编解码器,只要它们最终进入一个可以融合的 backbone 空间。现在很多多模态理解用 CLIP encoder 接语言模型效果好,是因为 CLIP 提前把视觉和语言空间对齐了。搭积木时,这当然有帮助,因为语言模型本身没有重新训练,还是语言空间。但这不是本质的原生多模态。真正的原生多模态,不应该依赖这种提前对齐好的 encoder 来弥补语言模型的局限。
RAE 这类工作讲了一个很好的故事,但实测尤其在生成里,还没有变成像 ViT 或 CLIP encoder 那样可以大规模使用、哪怕不完美也能将就用的基础组件。所以它是很好的学术工作,但还不是最终答案。多模态的卡点不只是某个 architecture 或某个 encoder,而是要不要在 backbone 层面真正实现模态平权和联合学习。
八、蒸馏后的主线
提问者:如果把今天的讨论压缩成一句话,您最想强调什么?
Professor:短期技术会融合,长期方向是原生多模态。不要把视觉、action、video 都压进语言空间,也不要只做搭积木式对齐。真正走向 AGI 的模型,需要不同模态带着自己的信息进入一个共同 backbone,在那里平权、融合、推理、记忆。encoder 和 decoder 可以不同,任务头可以不同,但 backbone 必须是真正多模态的。
我个人坚持这条路线,不是因为它短期最容易发论文,也不是因为它引用一定最高,而是因为从视觉、脑科学、Transformer、ViT、T2T-ViT 到今天的大模型发展,我越来越确信:非共识路线如果指向真正核心的问题,就值得长期坚持。视觉不能永远被语言压制,世界模型不能只是单模态生成,memory 不能只靠外部检索,action 也不应该永远是附属模块。原生多模态是把这些问题连起来的一条主线。