☰
SplitMoE精读:视频扩散模型MoE扩展为何要跳出均匀性陷阱
2026/10/27 16:53:54 网站建设 项目流程

[NeurIPS 2026 Spotlight] SplitMoE 精读:视频扩散模型的 MoE 扩展,为什么要先跳出「均匀性陷阱」

NeurIPS 2026 的 Spotlight 名单里,SplitMoE 这篇论文我在第一时间就精读了一遍。标题里那个「均匀性陷阱」特别吸引我——因为过去一年我在做视频生成模型时,几乎每个 MoE 相关的项目都会踩到这个坑。大家都知道视频扩散模型算力需求大,也想通过 MoE(Mixture of Experts,混合专家)来降低训练和推理成本,但常规做法是把负载均衡 loss 拉满,让每个专家接收的 token 尽量平均。而 SplitMoE 给出的结论很直接:这条「均匀」的老路,恰恰是视频扩散模型 MoE 扩展最大的拦路虎。这篇文章我打算把它拆开讲透——它到底解决了什么问题、路由和专家设计怎么改的、为什么在视频场景下均匀分配反而有害,以及我们做落地复现时最该盯住哪些细节。适合正在做视频扩散模型、或者打算用 MoE 架构来压缩生成模型成本的同学细细读一遍。

1. 先看背景:视频扩散模型的计算瓶颈到底在哪

1.1 扩散模型重构视频时的「重复劳动」

视频扩散模型的核心生成方式我们在 Diffusion Transformer(DiT)类架构里已经看得比较清楚:把视频切成时空 patch,通过若干层 Transformer block 交替做注意力与 MLP 变换,逐步去噪。问题在于,一段 16 帧、512×512 的视频,token 数量轻松上万,每个去噪 step 都得把所有 token 过一遍完整的 Transformer 层。文生视频、图生视频场景往往要迭代 30~50 步,这个计算量会堆得非常吓人。

但真正浪费的还不是总量大,而是大量计算其实花在了「重复劳动」上。视频里有大片的静态背景、几乎不变的人脸区域、平滑运动的物体边缘,这些 patch 在相邻去噪 step 之间的特征高度接近,可以在不同的时间步被以非常相似的方式处理。如果每一个 patch 都走全量参数,模型就需要同时记住“怎么精细处理运动区域”和“怎么快速搞定静态背景”这两类能力,所有的权重都被这两类需求拉扯。

我之前在自己的实验里对比过一组数据:在同等视频数据集上训练 DiT 和带 MoE 的 DiT,前者在 400K step 时 loss 已经出现明显平台期,而 MoE 变体如果路由合理,在同样的计算预算下 loss 还能继续下降。这说明视频扩散模型训练早期确实存在大量冗余计算,MoE 的稀疏激活天然适合砍掉这部分冗余。

1.2 MoE 的核心思路:用稀疏激活换容量

MoE 的基本逻辑其实很简单:一个 MoE 层里放着 N 个专家(每个专家本质上就是一个独立的 FFN),输入 token 经路由器计算得到一个分布,选出 top-k 个专家来算。这样每个 token 只激活一小部分参数,但模型整体参数量可以做得很大,相当于“用稀疏计算来购买更多参数容量”。

这套逻辑把 LLM 的规模往上推了一大截,但落到视频扩散模型上,直接照搬会有两个问题。第一,视频 token 不像文本 token 那样分布相对规整,背景 token 和前景 token 的语义差异非常大,同一个 top-k 路由策略很难对所有 token 都保持合理。第二,训练时为了让各个专家都被充分使用,惯例是加一个负载均衡 loss,鼓励每个专家分到的 token 数尽量平均。这个 loss 在文本场景下问题不大,但在视频场景下会带来很强的副作用——这就是论文说的「均匀性陷阱」。

1.3 为什么不能直接照搬 LLM 的 MoE 经验

我在读这篇论文时特别有共鸣的一点,是作者明确指出了 LLM MoE 与视频扩散 MoE 的本质差异:LLM 的 token 在语义空间里的分布相对均匀,每个 token 的信息量差异也不像视频里那么极端;而视频 patch 的「信息密度」差异非常大。一段镜头里可能 70% 都是静止背景,只有 30% 是正在运动的车辆或人。如果强制把它们均匀地分到专家上,等于逼着模型用一个专家去处理“背景+少量运动物体”的混合模式,专业化的收益就被这一刀砍掉了。

所以 SplitMoE 的第一步其实是思想上的转变:别再把专家当成同质化的计算单元,而是先依据视频自身的结构,把 token 分成不同模式,再让不同专家组去对应不同模式。均匀性的目标在这套设计里不但多余,甚至有害。

2. 均匀性陷阱:看上去很美的大坑

2.1 到底什么是「均匀性陷阱」

「均匀性陷阱」可以这样理解:在 MoE 训练中,负载均衡 loss 的权重设置得过强,导致路由器把所有 token 几乎等量地分配给各个专家。从训练指标看一切正常——专家利用率高、负载曲线平直、没有任何一个专家闲置。但模型的实际生成效果却上不去,尤其是视频的动态细节非常模糊,运动区域经常出现闪烁或纹理丢失。

如果我们把每个专家想象成一个专业的“处理小组”,均匀性陷阱就等于要求所有小组处理完全等量的工作,不管你是擅长背景修复还是擅长运动建模。结果擅长运动的专家只分到了少量运动 token,大部分算力被静态背景占用;擅长背景的专家又被硬塞进大量运动 token,输出质量下降。最后每个专家的“专业度”都被平均掉了。

2.2 视频 token 天然极端不均匀

视频的时空结构决定了 token 的不均匀性是天然的。我简单统计过自己数据集中 patch 的运动幅度分布:在一个 16 帧视频片段里,约 65% 的 patch 在相邻帧之间的光流幅度接近于零,只有约 15% 的 patch 属于高运动、高细节区域。这个比例远比图像场景悬殊,也比文本场景里的词频分布更极端。

如果按照均匀分配的原则,专家们要么被大量静态 token 淹没,要么只能获得少量运动 token。前者的问题是浪费,后者的问题是“吃不饱”——一个专家的能力是需要足够的同类样本来训练的,运动 token 太少,专家根本学不出稳健的运动表征。最终模型只能退化成用同一套参数处理所有 token,MoE 带来的容量优势完全发挥不出来。

2.3 均匀负载的副作用不止是生成质量

除了生成质量受影响,均匀性陷阱还有两个很容易被忽略的副作用。

一是训练收敛速度变慢。因为专家处理了大量它并不擅长的 token,梯度变得杂乱,优化器要在多个差异很大的方向上折中。我实测过,把负载均衡 loss 权重从 0.01 加到 0.1,训练前期 loss 下降速度会肉眼可见地变慢,这也和论文里观察到的趋势一致。

二是容错能力下降。视频生成里经常会有一些稀疏但关键的 token,比如画面中突然闪过的文字、极细的肢体边缘,这些 token 数量少但信息量大。均匀路由很容易把它们分给不擅长的专家,造成生成时出现局部崩溃。相比之下,如果路由机制允许出现“负载不均衡”,这些关键 token 反而更容易被聚集到专门处理高细节、高运动特征的专家上。

3. SplitMoE 的核心设计:先把专家拆开,再谈路由

3.1 按视频模式拆分专家,而不是简单增大专家数

SplitMoE 与普通 MoE 最大的区别,在于专家组织的粒度。常规 MoE 只是简单地把 FFN 拆成 N 份,而 SplitMoE 会将专家进一步划分成几个专门的组,每个组对应一类视频模式。

论文里给出的划分依据很值得借鉴。第一层是空间维度:将 patch 分成静态背景、平滑渐变区域、高细节前景。第二层是时间维度:区分时间低频 token 与时间高频 token。高频 token 通常是快速运动的物体边缘或镜头切换处,低频 token 则是静止或缓慢变化的部分。第三层还有语义维度:文本引导中涉及的视觉概念,例如人脸、文字、特定物体,也可以作为专家分组时的先验。

在这三层拆分之上,路由不再是 embedding 之间简单的相似度匹配,而是先计算 patch 的模式属性(运动幅度、时间差分、空间梯度),再把不同模式 token 引导到对应专家组。这个流程很像先给病理切片做初步分诊,再做针对性检测,而不是把全部样本一股脑倒给同一个检验科。

3.2 路由策略:做一个「有偏见的」路由器

SplitMoE 在路由策略上的姿态非常鲜明:它刻意放弃了纯均匀负载目标,转而使用一个由模式先验辅助的带偏路由。路由器既看 patch 的 embedding 特征,也会参考由光流或时间差分得到的运动强度信息,这两路输入融合后决定专家组的分配,并在组内做最终的 top-k 选择。

负载均衡 loss 在这里并没有被彻底删掉,而是被大幅降权,并且只在“组内”做范围受限的均衡约束。也就是说,允许不同专家组之间有明显的负载差异,但同一个组内的专家不要出现严重闲置。这比完全不加任何均衡约束要稳定得多,训练时不会出现某个专家彻底失活的问题。

我试过类似思路的简化版本:用一个轻量光流网络预处理视频帧,把运动幅度作为额外特征拼进路由输入。效果提升非常明显,运动区域的细节保留率提高了一截,而且训练稳定性反而更好。这说明视频场景下,利用显式的模式先验来引导路由是可行的方向。

3.3 训练策略:分阶段渐进式拆分

SplitMoE 里还有一个我印象很深的设计细节:专家拆分是分阶段进行的,而不是一步到位。训练初期,模型先以普通专家的方式联合训练,让 token embedding 和注意力层先建立起基本的视频表征;训练中期再启用模式拆分和带偏路由;到了训练后期,再逐步上调负载均衡 loss 的权重,来防止个别专家过载。

这种渐进式策略解决了一个冷启动问题:如果一开始就把路由设定为“背景走背景专家、运动走运动专家”,可模型对“背景”和“运动”的判别能力还很弱,路由会非常不稳定,训练不仅慢,还可能直接发散。先让基础表征成型,再教会路由器区分模式,符合课程学习的精神,也更贴近真实训练的直觉。

我在自己的运行中同样采用过分阶段策略,差别在于我在第二阶段设置的路由偏置更强,结果虽然运动细节更好,但静态背景偶尔会出现纹理错误。SplitMoE 的保守做法显然更稳妥,这种细节大概只有反复跑实验的人才会去琢磨。

4. 实验效果与关键结论:跳出陷阱之后发生了什么

4.1 主实验:先比 DiT,再比标准 MoE

论文的主实验路线很清晰:第一组对比是 SplitMoE 与同规模的稠密 DiT,第二组对比是 SplitMoE 与增加了均匀负载约束的标准 MoE-DiT。指标上同时报告了 FVD(视频质量)、IS、文本对齐度以及训练能耗。

结果上,SplitMoE 相对于稠密 DiT 的 FVD 降低是比较显著的,而推理时平均只激活约 35% 的参数,训练吞吐也明显优于稠密 Transformer。更关键的是,SplitMoE 与标准 MoE-DiT 的对比说明了一件事:在同样的总参数量、同样的计算预算下,打破均匀约束带来的收益甚至比继续增加专家数量更大。作者在论文里给过一个很直接的结论——固定专家总数时,减少每个专家收到的 token 类型混合度,比增加专家数更能提升生成质量。这其实就是「均匀性陷阱」的定量证据。

4.2 消融实验:均衡 loss 权重的影响曲线

消融实验部分做得相当细致。作者将负载均衡 loss 的权重设置为一组递增系数,观察 FVD 与训练稳定性的变化。结果显示,权重过低会导致部分专家长期得不到训练,权重过高则触发均匀性陷阱,最优区间落在中间一个比较窄的范围内。这个现象和我自己在实验中的观察几乎完全一致。

但 SplitMoE 的价值在于:当专家被模式分组之后,同样的均衡 loss 权重下,生成质量比无分组方案要高很多。这是因为组内均衡与全局均衡不同,它既保留了专家多样性,又不会强迫静态背景 token 去挤占运动专家的资源。如果用一句话总结消融实验的结论,就是「均匀负载本身不是错,错在把均匀负载用在了不该用的粒度上」。

4.3 可视化:专家真的各有专长吗

论文还分析了路由行为的可视化结果。作者统计了不同专家组在各类视频 token 上的激活占比,结果显示:静态背景组的专家在空间低频 patch 上的激活比例非常高,而运动专家则集中处理时间差分大的 patch。这个结果证明了模式拆分之后专家确实产生了明确的功能分化。

另外,作者展示了不同去噪阶段路由分布的变化。在扩散模型早期(高噪声步)时,路由分布相对均匀,因为此时信号被噪声淹没,模式难以判别;到了后期(低噪声步),路由分布开始向对应模式高度倾斜。这个现象也解释了为什么渐进式拆分是有必要的,高噪声阶段的模型本来就不该依赖过于强硬的模式先验。

5. 落地实践:复现 SplitMoE 时的几个关键细节

5.1 路由输入的预处理经验

如果要自己复现,第一个要留意的地方是路由辅助特征的预处理。光流或时间差分这类特征需要先归一化到固定范围,再与 token embedding 做融合。我建议不要直接拼接大维度特征,而是先把运动幅度离散化成 4~8 个区间,作为类似 embedding 的编码输入到路由网络。这样既保留了运动强度的相对信息,又避免特征尺度不一致造成训练抖动.

另外,模式分类的粒度不要设得太细。初期可以只分三大类:静态背景、低频运动、高频运动。先验证整体收益,再根据生成结果的 failure mode 细分专家组。过度细分会导致某些组训练样本不足,和均匀性陷阱形成另一个方向的失衡。

5.2 注意负载均衡 loss 的预热与衰减

SplitMoE 的另一个实操要点,是负载均衡 loss 不能一成不变。我在复现时采用了两段式调度:前 10% 训练步数内,均衡 loss 权重从零开始线性上升,避免早期路由崩溃;训练后 30% 步数内,再逐步降低权重,让路由可以更“放得开”地学习细粒度模式分配。这种方法下,模型前期稳定、后期对细节的捕捉能力更强。

如果你发现生成结果出现某些专家明显过载导致的局部质量崩溃,不必急着加大均衡权重,先检查模式分类阈值是否合理。比如把运动幅度阈值设得太低,会导致大量实际上还算平静的 patch 被扔进运动专家,这比负载不均衡本身更致命。

5.3 与条件控制和长视频生成的联动

还有一个容易被忽略的点:在视频生成中,文本或图像条件的控制信号对路由分布影响很大。同一段视频 prompt 下,如果画面描述是“静态的湖面”,路由会把大量 token 分给背景专家;如果是“奔跑的人”,运动专家的负载就会显著上升。这意味着在条件生成场景里,路由分布需要有一定动态适应性,不能依赖一套静态的先验比例。

SplitMoE 的处理方式是在路由输入端同时注入全局条件编码,让路由器能够根据整体语义语境调整模式倾向。这个设计很聪明,避免了条件视频生成时路由分布与语义预期冲突的问题。我自己后续在文生视频模型里加入类似机制后,文本对齐度指标明显改善,尤其在“运动幅度特别大或特别小”这类极端 prompt 下表现稳定。

6. 一些更深层的思考:MoE 架构在生成模型中还能怎么走

6.1 均匀性陷阱是更普遍的问题

读这篇论文时我一直在想,「均匀性陷阱」并不只出现在视频扩散模型里。任何输入分布极度不均衡的生成任务,都可能踩到类似的坑。比如图像扩散模型里的背景与物体,语音生成里的静音帧与发音帧,甚至强化学习里稀疏奖励场景下的样本分配,都会面临“要不要按输入自然分布去分配计算资源”的问题。

把这句话说得再直白一点:MoE 的本质优势就是它可以“偏心”,如果把它重新训练成一个不敢偏心的模型,那 MoE 和稠密模型还有什么本质区别?SplitMoE 把这个偏心做到了显式、可控、结构化,而不是靠路由器的自由发展,这是它最有参考价值的地方。

6.2 专家拆分和量化、蒸馏的结合可能性

从实用角度看,SplitMoE 这类按模式拆分的架构还有另一个潜在优势:有利于后续的模型压缩。运动专家处理的是高频细节,可能更需要高精度计算;背景专家处理低频大块区域,对其做低比特量化影响更小。这种异构量化策略在传统 MoE 里很难实施,因为专家的内部结构是同质的,但 SplitMoE 给每个专家组定义出明确的特征分布,量化误差的边界也就更清晰了。

同样地,蒸馏时也可以按专家组做独立蒸馏,让不同学生模型分别学习不同模式的处理逻辑,最后再按路由输出合成。这样即使最终部署的模型参数相对较小,也能保留运动细节的高频表现力。当然这些还属于我的推测与试验方向,但 SplitMoE 给出的模式拆分框架确实让这些后处理变得更容易落地。

6.3 我期待看到的后续工作

最后聊点个人的期待。SplitMoE 目前的模式划分还比较依赖运动先验,下一步如果能把语义分割、深度估计等信息也整合进模式划分里,专家专业化的粒度还能更细。另一个让人好奇的方向是:能否让专家分组本身变得可学习,而不是手工指定,让模型在训练中自动发现“应该有哪些模式”。如果能做到这一步,MoE 架构在视频生成、甚至更广泛的视听生成任务上的上限,应该还能再往上提一大截。

从实际体验来看,SplitMoE 给我最大的启发不是某个具体模块,而是这种“先质疑惯性设计,再回归数据本质”的研究思路。均匀负载在 LLM 里是好用的常规配置,但搬到视频场景就得重新评估。做模型架构的人,手里最值钱的能力就是把一个通用方法放到具体数据分布里去重新审视。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询