MoE-ViE:面向高效图像与视频理解的混合专家视觉编码器 MoE-ViE: Mixture of Experts Vision Encoder for Efficient Image and Video Understanding
细粒度MoE+核优化+防遗忘视频微调,稀疏CLIP视觉编码器追平1.7倍大的SOTA稠密模型
前置知识
Mixture-of-Experts(MoE,混合专家)
用 $N$ 个并行的 FFN“专家”替换 Transformer 中的稠密 MLP 层。一个路由器为每个 token 计算打分 $s=W_r x$,选出 top-k 个专家,输出为被选专家输出的加权和 $y=\sum_{e\in\mathcal{T}(x)} g_e(x)E_e(x)$。总参数量随 $N$ 增长,但每个 token 的计算量只与 $k$ 成正比,从而把模型容量与计算成本解耦。
本文所有贡献都围绕“如何把 MoE 正确搬进 CLIP 式视觉编码器”展开:专家粒度、负载均衡、kernel 实现与多阶段训练,不懂 MoE 的路由机制就无法理解论文的设计动机。
CLIP 对比预训练
在数亿到数十亿图文对上训练视觉塔与文本塔组成的双塔模型,用 InfoNCE 对比损失拉近匹配图文对的嵌入、推远不匹配对,得到可与自然语言零样本对齐的视觉表征;下游 VLM 通常直接复用该视觉塔作图像编码器。
MoE-ViE 就是一个 CLIP 式编码器,论文的零样本分类/检索、视频基准、以及与 LLM 对齐的整个评估体系都建立在对比预训练框架上。
细粒度专家设计与共享专家
传统 MoE 把原 MLP 等宽复制 $N$ 份;细粒度设计让每个专家隐藏宽度缩为原来的 $1/c$,在总容量近似不变时放入 $cN$ 个更小的专家,使单个 token 可以由更多专家组合表达。共享专家则是每个 token 都必然通过的固定通路,负责携带全局上下文,路由专家只负责条件性的、token 特异的变换。
这是论文最核心的结论:细粒度拓扑是 MoE 视觉编码器超越稠密模型的关键,正文 Table 1 与附录的专家宽度、top-k、共享专家数量消融全围绕它展开。
负载均衡与无损均衡(loss-free balancing)
路由器若总把 token 送给少数专家,其余专家得不到训练。常见做法是加辅助均衡损失与主损失联合优化;无损均衡则不改损失函数,而是给路由打分加一个偏置 $b$,每步按批内各专家实际收到的 token 数 $t_e$ 与均值 $\mu_t$ 的偏差反向微调 $b_e$,把利用率控制与优化目标解耦。
论文把原版 loss-free 更新中的 $\mathrm{sign}(\cdot)$ 换成 z-score 缩放,是其四大贡献之一,Table 8 的消融直接比较了这些策略的优劣。
灾难性遗忘与知识蒸馏
模型在新任务上继续训练时旧任务性能大幅下降称为灾难性遗忘。知识蒸馏通过让学生模型输出对齐一个冻结的教师模型输出(本文用余弦距离 $\mathcal{L}_d=1-\cos(S,T)$)来“锚住”旧知识,是一种无需旧数据标签的正则化手段。
第 3 节的帧级蒸馏+冻结机制正是用这一思想解决“视频微调毁掉图像能力”的问题,是理解本文训练流程的关键。
Grouped GEMM 与算子融合
Grouped GEMM 把所有专家的矩阵乘打包为一次 GPU 启动内的批量任务,按专家分段(jagged layout)处理不均匀的 token 负载,避免 CPU-GPU 反复同步;算子融合把矩阵乘与非线性激活(如 SwiGLU)合并进一个 kernel,减少对高带宽显存 HBM 的读写往返。
MoE 理论上省算力,但朴素实现反而更慢(论文实测慢约 4 倍);本文的 Triton kernel(>2.5× 加速)是把算法效率变成实际低延迟的关键,附录 B 全在讲这个。
研究动机
视觉编码器是视觉语言模型(VLM)的基石,持续扩容是提升 VLM 能力的可靠路径,但稠密缩放会线性推高计算量与推理延迟,且在高分辨率图像和长视频场景下被成倍放大。MoE 在 LLM 中已证明可解耦容量与算力,但此前把它搬进 CLIP 式视觉编码器的尝试(LIMoE、CLIP-MoE、CLIP-UP 等)没有一个在核心视觉基准上追平 SOTA 稠密编码器:如 Table 3 中 CLIP-MoE-L/14 的 ImageNet 零样本精度仅 74.6,远低于同期稠密模型(SigLIP2-L 85.0、PEcoreL 86.1)。此外还有两大现实障碍:其一,MoE 的理论低算力常被 memory-bound 的低效实现吞噬——朴素 PyTorch 循环实现下 MoE-ViE-H 编码 576 个 token 需 318.76ms,反而远慢于 1.1B 的稠密模型 SigLIP2-g-opt(76.39ms);其二,图像预训练后做朴素视频微调会发生严重遗忘,ImageNet 精度随视频训练持续下滑,混入图像数据只能部分挽回且会压缩视频收益。
本文的目标是本文要把 MoE 视觉编码器从“追不上稠密 SOTA”推向“全面超越”,并系统回答三个设计问题:(i) 什么样的专家拓扑最适合视觉表征;(ii) 如何在不扰动对比训练目标的前提下保证专家负载均衡;(iii) 如何把 MoE 的理论效率兑现为实际低延迟。具体目标包括:训练 B/L/H 三档 MoE-ViE,使其在同等激活参数量下于零样本图像与视频基准上全面超越 SigLIP2 与 PE 系列编码器;最大模型追平激活参数 1.7 倍的 PEcoreG 并把延迟压到其 76%;作为视觉塔接入 Llama 3.1 8B 与 Qwen 2.5 VL 7B 后,在图像问答、视频问答和 captioning 上保持领先;同时建立统一的图像+视频编码器训练流程,让视频能力增强不以遗忘图像能力为代价。
与已有工作不同的是,论文的切入点是“系统研究+全栈协同设计”,每个环节都给出了与既有工作不同的选择。结构上,不同于先前 CLIP MoE 工作把稠密 MLP 等宽复制为 N 个专家,本文采用细粒度专家(宽度为稠密 MLP 的 1/4、共 32 个)外加一个始终激活的共享专家,并把 Softmax 门控换成 Sigmoid 以避免专家间竞争——这套组合在 LLM 中已被验证,但首次在 SOTA 级 CLIP 编码器上被系统证明有效。均衡策略上,不同于 LIMoE 等的辅助损失路线,本文改造 loss-free balancing:把其 sign(·) 偏置更新替换为按 z-score 缩放的幅度感知更新,让负载控制完全不干扰主损失。系统层面,作者用 Triton 定制了 Grouped GEMM+核融合的专用 kernel,把“算法稀疏”翻译成“硬件高效”。训练流程上,不同于往视频数据混图像防遗忘的常规做法,本文从优化冲突的根源入手:帧级蒸馏拉住视觉塔、冻结 MoE 专家保留逐帧视觉词表、再冻结文本塔 MLP 消除两塔更新方向的矛盾。
核心方法
直觉上,视觉信息高度异质——颜色、形状、纹理、文字、空间布局等不同维度的特征需要不同的变换;如果让每个 token 只经过少数与之匹配的小专家,就能用近似恒定的每 token 算力换取大得多的总参数容量。技术路线上,MoE-ViE 保持标准 CLIP ViT 骨架(基于 OpenCLIP 实现:去掉 class token、用注意力池化输出、视觉塔采用 2D RoPE、FFN 换成 SwiGLU),只把视觉塔中除第一个 transformer block 外的所有 MLP 替换为 MoE 层:每层共 32 个专家,每个专家宽度为稠密 MLP 的 1/4,其中 1 个是所有 token 都通过的共享专家(权重 $\lambda=1$),其余由 Sigmoid top-k 路由选择(B/L 档激活 4 个,H 档激活 8 个);文本塔保持稠密不变,因为下游 VLM 对齐只使用视觉塔。训练分两阶段:先在 3.5B 图文对(2B MetaCLIP + 1.5B 私有数据)上做渐进分辨率的对比预训练,再在视频-文本对上做带帧级蒸馏与冻结机制的微调,最终得到统一的图像+视频编码器。
三个环环相扣的创新。其一,细粒度专家拓扑是收益主源:常规等宽 MoE 只是微弱提升(ViT-L/16 上 78.0→78.5),细粒度设计相同预算下显著更强(→79.6);消融显示专家宽度从 c=1 收细到 c=4 把分类平均从 80.2 提到 83.5,而 top-k 从 8 增到 16 仅 +0.1——“粒度”比“激活数量”更本质。其二,幅度感知的无损负载均衡:不向对比损失加均衡项,而是给路由打分加偏置 $b$,按批内负载以 $b_e \leftarrow b_e - \alpha(t_e-\mu_t)/\sigma_t$ 更新——用 z-score 取代原方法的 $\mathrm{sign}(\cdot)$,修正幅度随不均衡程度缩放、消除接近均衡时的振荡,比辅助损失路线高 3.3 个点。其三,把防遗忘从数据层面移到参数层面:基于“MLP 存储知识、注意力负责交互”的发现,视频微调时冻结视觉塔 MoE 专家与文本塔 MLP(消除 $\mathcal{L}_c$ 与 $\mathcal{L}_d$ 作用于两塔的优化冲突),只让注意力与路由适应时序聚合,配合随机帧蒸馏 $\mathcal{L}=\mathcal{L}_c+\beta\mathcal{L}_d$。
方法步骤详情
第一步,架构搭建:基于 OpenCLIP 去掉 class token、用注意力池化与 2D RoPE、FFN 换 SwiGLU;从第二个 block 起把视觉塔 MLP 换成 32 专家(各 1/4 宽度)+1 共享专家的 MoE 层,得到 B(0.46B 总参/0.10B 激活)、L(1.67B/0.31B)、H(3.50B/1.06B)三档。第二步,路由与均衡:门控 $g(x)=\text{top-k}(\mathrm{Sigmoid}(s)+b)$ 并重归一化被选分数,训练中按 z-score 规则更新偏置 $b$。第三步,对比预训练:InfoNCE 损失,LAMB 优化器、batch 262144、学习率 $10^{-3}$ 余弦衰减;渐进分辨率(B:112→224,L 至 384,H 98→448),消耗 48.1B/48.2B/60.9B 样本。第四步,kernel 优化:两个 Triton kernel 分别融合 gate/up 投影+SwiGLU 与 down 投影+路由权重缩放+scatter-add,GPU 端 Sort/CumSum 完成路由,前向仅 2 次启动。第五步,视频微调:每视频采 8 帧,$\mathcal{L}=\mathcal{L}_c+0.5\,\mathcal{L}_d$($\mathcal{L}_d=1-\cos(S,T)$,教师为图像预训练副本),冻结视觉塔 MoE 专家与文本塔 MLP,学习率 $10^{-6}$、约 20.5M 视频样本。
技术新颖性
相对 LIMoE(首个对比式 MoE)与 CLIP-MoE/CLIP-UP(把稠密 CLIP upcycle 成 MoE),新颖性不在“用了 MoE”,而在四个设计决策的组合首次把 MoE 视觉编码器推到 SOTA:(1)细粒度+共享专家+Sigmoid 门控此前只在 LLM 中验证,本文给出视觉域的系统证据,包括 c=4 的宽度甜点、仅 1 个共享专家的极简配置与 k=8 后的收益递减(Table 10–13);(2)把 loss-free balancing 首次引入 CLIP 训练并改进为 z-score 更新——改动很小却比辅助损失路线高约 3 个点,且不干扰对比目标;(3)针对视觉 token 量大(高分辨率+tiling 下单图可达数万 patch token)、patch 空间相关导致路由天然不均的特点定制 kernel:jagged 分段+按专家 early-exit 明确服务这种负载分布;(4)帧级蒸馏+双塔冻结为帧级编码器量身定制——正因视觉塔逐帧编码视频,无需改逐帧视觉词表、只需改聚合方式,冻结专家因此合理而非保守。
实验结果
零样本视频(Table 2):全档 SOTA——B/16 分类平均 67.5(PEcoreB 65.9),L/16 73.4(PEcoreL 72.9),H/14 76.5 超过激活参数 1.7 倍的 PEcoreG(76.0),UCF101 92.8 vs 90.7。零样本图像(Table 3):B 档 ImageNet 79.3、ImageNet-A 68.0(较 PEcoreB +5.6);H 档平均 88.3 略低于 PEcoreG 的 88.6,但 ImageNet-A 93.2 反超 0.6。细粒度与 OCR(Table 4):H 档 83.9 vs 83.8,Aircraft 80.1 vs 78.2。VLM 对齐(Table 5/6):配 Llama 3.1 8B 时图像平均 75.2(最强基线 AIMv2 69.8)、视频 58.9(基线最高 49.9);配 Qwen 2.5 VL 7B 时 74.0/59.2,激活参数仅 1.1B(基线最高 5.5B)。数据缩放(Table 17):42M 对齐样本达 81.3/63.1/132.6,超过 1.7× 激活参数的 PElangG(79.3/60.0/123.4)。延迟(Table 7/18):Triton kernel 加速 >2.5×(bsz16 下 318.76→82.59ms),编码器延迟为 PEcoreG 的 76%,端到端 433.3ms 与同规模稠密模型持平、远低于 PEcoreG 的 493.2ms。均衡消融(Table 8):z-score 版 63.2 > 原版 62.6 > 辅助损失 59.9;线性探测 88.85 也超 PEcoreG 88.80(Table 15);路由熵随深度下降(VTAB Flowers 3.20→2.30)印证专家特化。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 零样本图像分类(ImageNet/V2/A/R/ObjectNet 等 5 项平均) | Top-1 平均准确率 (%) | MoE-ViE-B/16:76.8 | PEcoreB/16:74.6(SigLIP2-B/16:74.0) | +2.2 个百分点 |
| ImageNet-A 零样本分类 | Top-1 准确率 (%) | MoE-ViE-B:68.0;MoE-ViE-H:93.2 | PEcoreB:62.4;PEcoreG(激活参数 1.7×):92.6 | B 档 +5.6;H 档 +0.6 |
| 零样本视频分类(K400/K600/UCF101/HMDB 平均) | Top-1 平均准确率 (%) | MoE-ViE-H:76.5 | PEcoreG:76.0 | +0.5(激活参数仅 1/1.7) |
| UCF101 零样本视频分类 | Top-1 准确率 (%) | 92.8 | PEcoreG:90.7 | +2.1 |
| 编码器推理延迟(576 tokens,bsz=16,H100) | 延迟 (ms) | 82.59(优化 Triton kernel) | 朴素 MoE 实现:318.76;PEcoreG:101.21 | 对朴素实现约 3.9× 加速(各 batch size 均 >2.5×);仅为 PEcoreG 延迟的 76% |
| VLM 对齐图像问答(Llama 3.1 8B,AI2D/TextVQA/ChartQA/DocVQA/Info 平均) | 平均分 (%) | 75.2 | AIMv2 3B:69.8;PEcoreG:69.2 | +5.4 |
| VLM 对齐视频问答(Qwen 2.5 VL 7B,VideoMME/MVBench/EgoSchema 平均) | 平均分 (%) | 59.2 | PEcoreG:54.1 | +5.1 |
| ImageNet-1K 线性探测 | Top-1 准确率 (%) | 88.85 | PEcoreG:88.80 | +0.05(激活参数少 42%) |
| 42M 对齐样本数据缩放(图像/视频/captioning 三轴平均) | 平均分 | 81.3 / 63.1 / 132.6 | PElangG(>70M 中训样本、1.7× 激活参数):79.3 / 60.0 / 123.4 | +2.0 / +3.1 / +9.2 |
局限与改进
作者未设专门局限章节,但结果与附录暗示:H 档在部分通用图像基准仍略逊 PEcoreG(ImageNet 85.1 vs 85.4、ObjectNet 87.0 vs 88.2、COCO T→I 74.6 vs 75.4),captioning 平均(127.5/129.7)不及 AIMv2 的 130.6;专家数取 32 是资源约束的折中,附录 C 显示扩到 128 专家仍在涨点;预训练混入 1.5B 私有数据,绝对数字难以完全复现。我的补充观察:(1) 编码器完全逐帧处理、无内置时序建模,时序推理被推给 LLM,冻结专家的前提“视频无需新逐帧词表”对运动密集任务可能限制上限——EgoSchema 52.0 明显低于 MVBench 63.6 即是信号;(2) 蒸馏权重 β=0.5、共享专家权重 λ=1 等超参靠“不敏感”的经验选定,缺乏自适应机制;(3) 延迟评测限于 H100 与固定 token 数,未报告训练吞吐与 3.5B 总参数的显存驻留成本;(4) 专家特化仅有可视化与熵统计,未做因果验证;(5) 视频仅 8 帧均匀采样。
独立分析的弱点
独立分析四点弱点。其一,时序建模缺位:编码器逐帧处理、靠 LLM 聚合时序,对需要跨帧运动理解的任务是结构性短板,EgoSchema 52.0 落后于 MVBench 63.6 即是信号;改进方向是在视觉塔引入少量时序 token 或专用“运动专家”,让路由机制学习时间维度特化。其二,冻结策略过于保守:完全冻结 MoE 专家意味着遇到与预训练分布差异大的视频域(医疗影像、遥感视频)时逐帧表征无法适配,只能靠注意力重排补偿;改进是给专家加低秩适配(LoRA)或仅解冻深层专家。其三,均衡机制的统计脆弱性:z-score 更新依赖批内 $t_e$ 的均值与标准差,专家数很大或 batch 较小时统计噪声放大,且步长 $\alpha$ 固定;改进是用 EMA 平滑负载统计或自适应步长。其四,系统评测不完整:延迟只在 H100 与固定 token 数下测,未覆盖移动端/量化场景与训练吞吐;改进是补充 INT8/FP8 kernel 与显存-延迟联合曲线。另外 captioning 略弱提示对比目标主导的专家特化偏判别式任务,可引入 CoCa 式 caption 损失补足生成能力。
未来方向
作者提出的方向:继续放大专家规模——附录 C 显示专家从 16 扩到 128 时各基准单调涨点,32 只是资源折中;把该 Triton kernel 作为适配不同 MoE 拓扑的 drop-in 组件推广;更大规模的 MoE-ViE 与更高分辨率/更长视频输入是自然延伸。基于其成果可延伸的方向:把文本塔同样 MoE 化,实现双塔联合稀疏并研究跨塔专家的语义对齐;将细粒度专家思想推广到注意力层(如 mixture-of-attention);结合 upcycling 从稠密 PE 模型初始化 MoE 以省去从零预训练的成本;在专家层面引入时序/运动特化,让教师-学生蒸馏结构同时传递图像语义与运动知识;与量化、剪枝协同做端侧部署;从理论上分析 z-score 偏置更新的收敛性与最优步长 $\alpha$;用因果干预(如禁用特定专家测试性能下降)验证专家特化与细粒度基准优势之间的因果关系。
复现评估
代码已开源(github.com/facebookresearch/moe_vie),基于 OpenCLIP 实现,含 Triton MoE kernel;评估依赖开源的 CLIP benchmark 框架与 lmms-eval,协议描述详细(提示模板沿用 PE、检索重加权、center-crop 双预处理取最大分)。数据是主要复现障碍:2B MetaCLIP 公开可得,但 1.5B 私有图文对与部分视频数据管道不公开,SOTA 级数字无法完整复现;不过正文 Table 1 与附录大量消融仅用 12.8B/10.9B MetaCLIP 样本,社区可以完整复现其设计结论。算力门槛高:batch size 262144、LAMB 优化器、H 档渐进到 448 分辨率共消耗 60.9B 样本,属 Meta 级集群规模(估计数十 GPU-月);延迟测量在单张 H100 上完成。综合评估:复现趋势与消融结论=中等难度(单节点多卡可做 B/32 档);复现 H 档绝对 SOTA 数字=难(受数据与算力双重限制)。
论文图表
优化 MoE 前向的完整流程:Phase 1 在 GPU 端用 Sort/CumSum 完成按专家分段的路由(无 CPU-GPU 同步);Phase 2 一个融合 kernel 完成 gate/up 投影与 SwiGLU 激活(中间量留在寄存器,gather 折进 GEMM);Phase 3 第二个融合 kernel 完成 down 投影、路由权重缩放与 atomic-add scatter,直接写出输出。
是延迟加速(Table 7 的 >2.5×)的具体实现依据:仅 2 次 kernel 启动、jagged 分段处理不均负载,展示了从算法到硬件的完整协同设计。