2019年,南京大学的一个团队发布了COIN数据集,这是一份收集了近12万段教学视频的数据集,专门用来考验AI能不能看懂"人在做什么"。
(资料图片)
七年后的今天,再看这个赛道会发现一件挺有意思的事:能看懂视频的AI越来越强,但让同一个AI回答不同类型的问题,反而成了一个没解决好的难题。
你可能会问,这有什么难的?视频语言模型不是早就能回答"这个人在干什么"了吗?问题在于,教学视频里藏着的任务远不止"识别当前动作"这一种。同一段切土豆的视频,你可以问"现在在做什么"(识别),可以问"接下来会做什么"(预测),可以问"整个视频在完成什么任务"(目标识别),还可以问"请列出接下来三个步骤"(流程预测)。这些问题看起来都是"看视频回答",但背后需要的能力完全不同:有的只看当前帧就够了,有的需要理解整个流程的因果链条,有的需要结合目标反推步骤。
这就是这篇论文要解决的核心矛盾。
一个模型脑子里打架:任务越多,越容易顾此失彼
现在主流的做法是这样的:训练一个视频语言模型,把所有任务的训练数据混在一起喂给它,指望它能自己学会区分"现在该做哪种任务"。
这套思路听起来合理,毕竟大语言模型的发展史某种程度上就是"数据越多越通用"的历史。但问题出在一个细节上:模型内部处理这些不同任务时,用的是完全相同的一套参数。
论文里提到一个概念叫
前馈神经网络*:Transformer解码器里负责对每个词元做非线性变换的模块,通常紧跟在注意力层之后,是模型参数量的大头。
不管你问的是"现在在干什么"还是"接下来三步是什么",这些问题的答案都要经过同一套前馈网络的计算。这就像一个全科医生同时要看骨科、内科和精神科的病人,他确实什么都懂一点,但每个专科领域他都没法钻得很深。更麻烦的是,如果骨科病人和内科病人的诊断逻辑本身就有冲突(比如同一个症状在不同科室有不同解读),这个全科医生的判断反而会被互相干扰,拿不准主意。
学术上这个现象有个名字,叫负迁移。研究者早就发现,把差异很大的任务塞进同一套共享参数里训练,效果有时候反而会比单独训练还差。这在图像视频领域的研究里已经被反复验证过。
混合专家模型:听起来是解药,但粒度不对
既然共享参数会打架,那把参数拆开分给不同任务不就行了?
这个想法早就有人做了,叫
混合专家(MoE)模型*:一种让模型在多组"专家"参数里,根据输入内容动态选择激活哪几组的架构设计,目的是在扩大模型容量的同时不增加计算量。
从2017年Google提出稀疏门控MoE开始,到后来的Switch Transformer、GShard,再到视觉领域的V-MoE,这套技术已经相当成熟。核心思路都是:模型不再是"一条路走到黑",而是准备好很多组专家参数,来一个输入,让一个"门控网络"决定该激活哪几组专家去处理它。
但这里有个关键问题:这些经典MoE方法的路由粒度是词元(token)级别或图像块(patch)级别的。
也就是说,门控网络决定的不是"这句话该用哪个专家",而是"这个字该用哪个专家"。对于语言模型扩容,这套逻辑没什么问题,因为你要的就是海量参数容量,不在乎路由跟具体任务对不对得上号。可是放到程序化视频理解这个场景里,问题就出来了:一段视频、一个用户问题,应该整体被送到"识别专家"还是"预测专家",而不是这段视频里第一帧去识别专家、第二帧去预测专家。
这就好比你去医院,挂号台不应该是"你的左手去骨科,右手去皮肤科",而应该是"你今天挂的是骨科号,那从头到尾都是骨科医生给你看"。词元级路由恰恰在做前者这种事,把一次完整的任务拆得七零八落,反而破坏了任务本身的完整性。
如果继续用词元级路由,会发生什么?论文里的对照实验给出了答案:在完全相同的专家数量和结构下,词元级路由(论文里叫VideoLLM-MoE-Top1-token)的COIN五项任务平均准确率只有61.4%,比不路由、直接全部专家一起算的密集模型(61.5%)还略低一点。这说明词元级的碎片化路由不仅没帮上忙,反而拖了后腿。
MoTE:让"任务身份"直接决定走哪条路
论文提出的解法叫
MoTE(Mixture of Task Experts,任务专家混合)*:一种解码器架构,把大语言模型里原本共享的前馈网络,按任务类型转换成多个独立的"任务专家",同时保留一个所有任务都要用的"共享专家"。
这个设计的关键突破在于路由粒度:MoTE不是按词元路由,也不是靠模型自己学一个隐藏的路由规则,而是直接用已知的任务标签来决定"这个样本该走哪条专家路径"。
具体来说,整段视频加上对应的文字提示,作为一个完整的样本,从头到尾只走一条专家路线,固定不变。训练的时候,任务标签本身就是路由的监督信号,不需要额外设计门控损失函数去教模型怎么选专家,因为"选哪个专家"这件事根本不需要学,标签已经告诉你了。
再看一眼这个架构怎么拼起来的。视觉编码器把视频帧转成特征向量,一个两层的MLP投影器把这些特征映射到语言模型能处理的维度,这部分叫共享骨干,所有任务通用,不做任何改动。真正变化的地方,只有解码器里每一层的前馈网络。原来只有一个前馈网络,现在变成了"一个共享专家+五个任务专家"(在COIN的实验设置里,五个专家分别对应识别当前步骤、预测下一步、识别整体任务、预测后续流程、结合目标预测流程这五种任务)。
每一层里,输入先经过共享的注意力计算,得到中间结果后,再分别送进共享专家和被选中的任务专家,两者的输出相加,构成这一层最终的输出。
这个共享专家的存在特别值得说一说。它不属于任何具体任务,但每个样本都会经过它。你可以把它理解成医院里的"分诊台护士",不管你是骨科病人还是皮肤科病人,进医院第一件事都是量体温、测血压,这些是所有科室都需要的基础信息。共享专家负责的就是这类"所有任务都要用得上"的通用视觉语言变换,而任务专家负责的是"只有这个任务才需要"的特殊逻辑,比如预测流程需要考虑时间上的因果链条,识别当前动作只需要看准当下这一帧。
如果没有共享专家会怎样?每个任务专家都得从零学一遍最基础的视觉理解能力,这不仅浪费参数,还会让每个专家在训练数据量有限的情况下学得更差。共享专家相当于把"通用能力"这部分成本摊到所有任务头上,让专门的任务专家可以轻装上阵,只专注于自己那部分特殊逻辑。
专家怎么造出来的:复制,而不是拆分
一个有意思的细节是,MoTE的专家参数不是随机初始化的,而是直接从预训练模型的前馈网络复制过来的。
这个做法有个名字,叫
密集到稀疏升级(dense-to-sparse upcycling)*:把一个已经训练好的普通模型的某个模块复制多份,当作MoE架构里的多个专家的初始化方式,而不是让专家从随机参数开始学。
论文做了一个对照实验,验证这个选择到底有没有必要。他们试了另一种做法:把原始前馈网络的神经元直接切成六等份(一份共享、五份任务专属),而不是整个复制六份。这种"切分"方式的参数总量明显更省,但实验结果显示,切分版本(VideoLLM-MoTE-8B+5E-Split)的COIN平均准确率只有60.3%,比完整复制版本的62.9%低了整整2.6个百分点。
这说明什么?每个任务专家,哪怕最后要专攻某个窄领域,起手时也需要一整套完整的前馈变换能力打底子,而不是从一开始就被砍掉一部分容量。这就像培养专科医生,不能一入学就只教他骨科知识,他得先完整学过一遍基础医学,再往专科方向深入。如果一开始就把知识砍掉大半,后面专精的上限也会被拖累。
没有任务标签的时候怎么办:让提示词自己"报科室"
训练阶段有任务标签当路由依据,这没问题。但真实用户提问时,谁会先告诉AI"我现在问的是预测类问题"?
论文给出的解法是:给每个专家配一段自然语言描述,比如"识别现在正在执行的动作"对应识别专家,"预测紧接着的下一步动作"对应预测专家。用户输入一句话提示词后,系统先把这句话和所有专家描述分别转成向量,计算余弦相似度,谁的相似度最高就路由到谁。
这套机制的好处在于灵活性。传统的学习型门控网络,输出维度是训练时就定死的,你要新增一个任务类型,整个门控网络都得重新训练。而这套基于文字描述匹配的方案,你只需要往"专家描述注册表"里加一条新描述就行,不用碰任何模型参数。
研究团队为了验证这套匹配机制靠不靠谱,专门找GPT生成了每种任务的50条不同说法的提示词,拆成训练、验证、测试三部分。结果显示,一个仅有2270万参数的小型文本编码器(MiniLM-L6-v2),在测试集上对五种任务意图的识别达到了100%的准确率,单条提示词的匹配耗时只有4.35毫秒。这意味着在这个受控评测场景下,不知道任务标签时的路由选择效果,和直接给定标签时完全一样。
不过论文也很坦诚地说明了这套评测的局限:它测的是相对清晰、边界明确的五种意图,像那种"这个问题到底该算识别还是预测"的模糊或者组合型提问,不在这次评测范围里。
五个专家加起来激活多少参数:2B,不是全部
这里要澄清一个可能的误解:很多人以为专家越多,推理时的计算量就越大。MoTE恰恰要打破这个直觉。
论文给出了具体的参数核算。以1B参数量级的Llama-3.2作为骨干,五个任务专家加一个共享专家,总参数量涨到了约5.3B,但每次处理一个样本,实际激活的参数只有约2.0B,因为一个样本从头到尾只走一条任务专家的路径,加上始终激活的共享专家。
存储的专家数量可以随着任务种类增加线性增长,但每次实际计算需要的参数量始终保持不变。这个特性用图书馆来打比方会更直观:图书馆的藏书量(存储容量)可以一直往上加,今天加一柜历史书,明天加一柜科学书,但你每次去借书,最多也就借那几本要看的(激活容量),不会因为图书馆藏书变多了,你借书的负担也跟着变重。如果不这样设计,而是像密集模型那样每次都要"翻遍全馆",那专家越加越多,计算成本只会跟着线性膨胀,最终撑不住。
实验结果:小模型也能打赢大模型
论文在COIN数据集的五项标准任务上做了系统对比,结果如下表所示(数值为准确率百分比):
| 方法 | 步骤识别 | 下一步预测 | 流程预测 | 任务识别 | 目标流程预测 | 平均 |
| VideoLLM-online-8B-v1+ | 63.1 | 49.1 | 49.8 | 92.7 | 54.1 | 61.8 |
| VideoLLM-MoD (8B) | 63.4 | 49.7 | 49.8 | 92.8 | 53.3 | 61.8 |
| VideoLLM-online-1B-v1+(同源对照) | 57.7 | 47.4 | 48.1 | 92.1 | 50.8 | 59.3 |
| **VideoLLM-MoTE-1B+5E(本文方法)** | **65.1** | **50.3** | **50.5** | **94.4** | **54.2** | **62.9** |
这里最值得注意的对比,是MoTE和"同源1B对照组"之间的差距。为什么要专门做这个对照?因为直接和8B模型比,存在骨干规模、视觉编码器、训练配方等多个变量同时不同的问题,不能算是干净的架构对照。而1B对照组用的是完全相同的Llama-3.2和SigLIP2初始化,唯一的区别就是有没有MoTE的专家化改造。在这个公平对照下,MoTE把平均准确率从59.3%拉到了62.9%,提升了3.6个百分点,这个提升可以完全归功于任务专家路由这个设计本身。
效率方面的数据同样值得展开说说。相比8B的VideoLLM-online,MoTE把单次请求的计算量从98.7 TFLOPs降到28.9 TFLOPs,延迟从2.8秒降到1.8秒,解码速度反而从27.8 tokens/s提高到37.7 tokens/s。用不到三分之一的激活参数,拿到了更高的准确率,这个交换比是相当划算的。
消融实验:证明是"任务对齐"在起作用,而不是别的
光看主实验结果,还不能完全排除一种可能:也许提升不是来自"任务对齐路由"这个思路本身,而只是因为多了几组专家参数,模型容量变大了而已。
为了把这个疑点排除,论文设计了一组严格控制变量的消融实验,专家拓扑结构完全相同,只改变路由方式:
| 方法 | 路由方式 | 平均准确率 |
| VideoLLM-1B+5E-Dense | 不路由,所有专家全部激活 | 61.5 |
| VideoLLM-MoE-Top1-token | 词元级学习路由 | 61.4 |
| VideoLLM-MoE-Top1-sample | 样本级学习路由(路由本身靠模型自己学) | 62.1 |
| **VideoLLM-MoTE-1B+5E** | 样本级任务标签路由(本文方法) | **62.9** |
这组数据讲了一个很清楚的故事。密集全激活(相当于把所有专家的输出都加起来,不做任何选择)反而是最差的选项之一,说明"专家共存但不做取舍"并不能带来更好的效果,该分开处理的任务混在一起算,依然会互相干扰。词元级路由甚至比密集激活还略差一点,进一步印证了前面说的,把任务打碎到词元粒度反而破坏了任务的连贯性。
样本级的学习路由(模型自己去猜该走哪个专家)比密集激活和词元路由都要好,这说明"整个样本走一条路"这个大方向本身是对的。但即便如此,它依然不如直接用任务标签做路由的MoTE。差距最大的地方出现在流程预测类任务上,这类任务需要模型理解一段较长的因果链条和更复杂的输出格式,恰恰是最需要"专家真正术业有专攻"的场景。这说明当任务边界本身就是有意义、有区分度的,直接把这个边界信息告诉模型,比让模型自己去猜、去学,效果更扎实。
模块化的另一面:专家可以加,也可以删
如果一个系统只能整体训练、整体部署,那增加新能力或者砍掉旧能力都会牵一发动全身。MoTE想解决的另一个问题,是让"扩展能力"和"收缩能力"都变成局部操作,不影响其他已经训练好的部分。
论文设计了一组连续实验来验证这一点。先只训练"步骤识别"这一个专家,然后依次加入"下一步预测""流程预测""任务识别""目标流程预测"四个专家,每加一个新专家时,只训练这个新专家,其余已经训练好的专家和共享骨干全部冻结不动。
结果显示,每次新增专家之后,之前已经训练好的任务准确率一分未变。比如第一阶段训练出来的"步骤识别"准确率是63.1%,后面无论加几个专家,这个数字始终稳定在63.1%。这验证了一个很朴素但很重要的性质:添加新任务不会覆盖已经学到的旧任务能力。
反过来,移除专家的实验同样按相反顺序把专家依次拿掉,剩下的专家准确率也是纹丝不动。这就像给一栋大楼加装电梯,加装的过程不需要把整栋楼推倒重建,原来住在楼里的人生活照常进行。如果不这样设计,而是要求整个模型联合重新训练才能新增一个任务,那随着任务种类越来越多,每次扩展的成本会越滚越大,最后谁也扩展不动。
不过这里也有代价。冻结式扩展的最终平均准确率是61.0%,比联合训练所有专家的62.9%要低将近两个百分点。这暴露了一个稳定性和灵活性之间的取舍:冻结旧专家保住了旧任务的稳定表现,但也让共享部分和专家之间失去了协同优化的机会,峰值性能因此打了折扣。
专家真的学到了不同的东西吗:一次"故意搞砸"的测试
前面说的都是正向证据,证明加专家有用。但研究者还想反过来验证一件事:这些专家参数,是不是真的各自专精不同任务,而不是碰巧长得差不多、随便换一下也没差?
他们做了一个挺"损"的实验:把两个训练好的专家的权重整体互换,比如把"步骤识别"专家的参数和"下一步预测"专家的参数对调,但提示词和路由标签保持不变,也就是说,系统仍然认为自己在用"步骤识别专家"处理识别任务,但实际权重已经被换成了预测专家的。
结果非常戏剧化。互换步骤识别和下一步预测这两个专家后,步骤识别的准确率从65.1%暴跌到21.5%,下一步预测从50.3%跌到17.4%,而其余没被动过的三个任务准确率完全不受影响,分毫未变。类似的崩塌模式在其他几组互换实验里也重复出现,尤其是流程预测和任务识别互换、任务识别和目标流程预测互换时,受影响的两列数字都跌到了个位数或十几。
这个结果其实挺有说服力的。它说明专家权重和任务之间不是"随便哪个专家上都差不多",而是深度绑定的,专家A的参数放在专家B的岗位上是完全不管用的。这就好比你把心脏外科医生临时调去皮肤科出诊,虽然他还穿着白大褂,挂的号也还是"专科门诊",但真正诊断的时候,他脑子里那套知识体系根本不对路,病人的病情自然判断不准。
换个赛道试试:从视频跨到文档理解
如果MoTE这套思路只在COIN这一个数据集上管用,说服力终归有限。论文额外做了一组挺有意思的迁移实验,把整套改造方法搬到了完全不同的领域:文档图像理解。
他们拿一个叫GLM-OCR的0.9B参数光学字符识别模型做底座,给它加装了MoTE结构:一个共享专家,加上原本就有的OCR识别专家,再新增一个专门做
关键信息抽取(KIE)*:从票据、发票等结构化文档图像中,直接提取出商家名称、日期、金额等关键字段的任务,这次实验专门针对收据场景。
的专家。这个新增专家在SROIE和CORD两个收据数据集上训练,任务是直接从原始图像预测出结构化字段,中间不经过任何文字提取的中间步骤。
结果相当亮眼。转换后的GLM-OCR-MoTE-0.9B+2E模型,在SROIE的关键信息抽取任务上拿到87.90%的准确率,原本的基线模型只有55.04%,提升了32.86个百分点。在CORD数据集上,提升更夸张,从原本的20.07%直接跳到95.79%,涨了75.72个百分点。
更值得关注的是另一半结果:新增了KIE专家之后,原来的OCR识别路由完全没有受到影响,在OmniDocBench这个标准评测集上的各项指标和转换前一模一样。这再次印证了前面在COIN实验里看到的模式:添加新能力不会侵蚀已有能力。这也从侧面说明,MoTE这套"共享骨干加任务专家"的设计原则,并不局限于视频这一种输入形态,只要任务边界够清晰,换成图像文档同样能生效。
局限性:这套方法不是万能钥匙
论文自己也很坦诚地列出了几处边界。
第一个局限在于,任务边界必须相对清晰稳定,MoTE才能发挥作用。前面提到的提示词路由评测,测的是五种界限分明的意图,但真实世界里用户提问经常是模糊的、混合的,甚至一句话里同时想问好几件事。这种情况下,单纯靠余弦相似度去匹配一个固定的专家描述,可能就不够用了,论文里也承认这类模糊或组合型请求超出了当前评测的覆盖范围。
第二个局限在于扩展新任务时那个稳定性和灵活性的权衡。冻结旧专家能保住旧任务的表现,但代价是新任务学起来"束手束脚",没法和共享骨干一起深度调整,最终整体表现会比联合训练差一截。要解决这个问题,可能需要更精细的机制,比如允许共享部分做有限度的、受控的更新,而不是完全冻死。
Q&A
Q1:MoTE是什么?
A:MoTE(Mixture of Task Experts,任务专家混合)是一种解码器架构,它把大语言模型里原本所有任务共享的前馈网络,按任务类型拆分成多个独立的"任务专家"加一个所有任务都要用的"共享专家",每个视频加提示词的样本整体只走一条固定的专家路径,而不是像传统MoE那样按词元级别路由。
Q2:MoTE和普通的混合专家模型(MoE)有什么区别?
A:最大区别在于路由粒度和路由依据。传统MoE(比如Switch Transformer、V-MoE)按词元或图像块级别用学习到的门控网络做路由,不考虑任务边界;MoTE直接按已知的任务标签,让整个视频提示词样本走同一条专家路径,论文实验显示这种任务对齐的路由比词元级学习路由和样本级学习路由效果都更好,COIN五项任务平均准确率达到62.9%。
Q3:VideoLLM-MoTE用了多少参数,效果怎么样?
A:VideoLLM-MoTE-1B+5E总共存储约5.3B参数,但每次处理一个样本只激活约2.0B参数。它在COIN基准的五项任务上平均准确率达到62.9%,超过了参数量大得多的8B模型VideoLLM-online-8B-v1+(61.8%),同时计算量从98.7 TFLOPs降到28.9 TFLOPs,推理延迟从2.8秒降到1.8秒。
