跳转至

Dynamic-DINO: Fine-Grained Mixture of Experts Tuning for Real-time Open-Vocabulary Object Detection

会议: ICCV 2025
arXiv: 2507.17436
代码: https://github.com/wengminghe/Dynamic-DINO
领域: 目标检测 / 开放词汇 / MoE
关键词: Mixture of Experts, open-vocabulary detection, Grounding DINO, 细粒度专家分解, 动态推理

一句话总结

首次将Mixture of Experts引入实时开放词汇目标检测器,通过MoE-Tuning将Grounding DINO 1.5 Edge从dense模型扩展为动态推理框架,提出细粒度专家分解和预训练权重分配策略,仅用1.56M开源数据超越使用20M私有数据训练的原版模型。

背景与动机

MoE已在大型VLM(如MoE-LLaVA)中取得成功,但在实时开放词汇检测器中的应用尚未被探索。现有实时检测器(YOLO-World、Grounding DINO 1.5 Edge)使用dense模型,每层的单个FFN需要处理所有pattern(不同类别、属性、空间关系),导致梯度冲突和长尾问题。MoE的"不同输入激活不同专家"机制与此需求天然匹配,但如何高效地将MoE集成到已有的compact检测模型中是核心挑战。

核心问题

如何将MoE的优势引入小型实时开放词汇检测器,在不增加推理计算量的前提下扩大模型容量和搜索空间,并解决有限数据下的训练效率问题?

方法详解

整体框架

Dynamic-DINO基于复现的Grounding DINO 1.5 Edge(EfficientViT-L1 + BERT-base + 6层decoder)。MoE仅应用于decoder的FFN层(因为经过Language-guided Query Selection后只剩900个token,计算开销小)。训练分两阶段:先正常预训练base model 7 epochs → MoE-Tuning扩展+微调10 epochs。

关键设计

  1. 细粒度专家分解(Granularity Decomposition):不是简单复制N个完整FFN作为专家,而是将每个FFN的中间维度均分为k份,得到k个更小的专家。这样在总参数不变的约束下,每层有k×N个专家,搜索空间从\(C_{N}^{k}\)扩展为\(C_{kN}^{k}\)。推理时只激活k个专家(相当于一个完整FFN的激活参数量)。这在不增加参数的情况下指数级扩大了子网搜索空间。

  2. 预训练权重分配策略:关键创新——将预训练FFN的参数物理分配给每个专家初始化:\(W_1\)按行分割、\(W_2\)按列分割、\(b_2\)除以\(k\),确保k个专家的输出之和等于原始FFN的输出(\(\text{FFN}(x) = \sum_{j=1}^{k} E_j(x)\))。配合Router初始化(复制每个router权重行k次),保证MoE-Tuning开始时等价于原始dense模型,实现增量式性能提升而非从头开始。

  3. 专家协作模式的发现:通过分析专家共选频率,发现有趣的层级差异——浅层中专家倾向于与多样的伙伴合作(扩大搜索空间),而深层中形成固定的2-3个伙伴的协作结构,不同专家组合专门处理不同的视觉pattern(如"冰箱相关token"vs"服装相关token")。

损失函数 / 训练策略

  • 检测损失:L1 + GIoU + Focal Loss(权重2.0/5.0/2.0)
  • MoE辅助损失:load balancing loss(α=0.01),确保专家负载均衡
  • MoE-Tuning只解冻:Feature Enhancer中的Cross-Attention + MoE层 + Detection Head
  • 8卡RTX 3090训练,MoE-Tuning比预训练快1.87x(7.5h vs 14h)

实验关键数据

方法 训练数据 COCO AP LVIS-mini AP LVIS-val AP
GDINO 1.5 Edge (官方) 20M私有 42.9 33.5 27.3
GDINO 1.5 Edge* (复现) 1.56M开源 42.6 31.1 25.4
Dynamic-DINO 1.56M开源 43.7 33.6 27.4
Dynamic-DINO (800×1333) 1.56M开源 46.2 36.2 29.6
  • 用1.56M开源数据超越20M私有数据训练的官方模型
  • LVIS rare类提升显著:APr从33.8→37.0(+3.2),有效缓解长尾问题
  • 推理速度:98 FPS vs 109 FPS(A100),仅10%减速
  • 边缘设备Jetson Orin NX:+0.24M FLOPs,-0.8 FPS,+1.87 AP
  • RefCOCO上也有提升(+4.1/+4.0/+3.8在val/testA/testB上)
  • 仅+6M参数就能带来+0.73 AP提升,性能随参数继续增长

消融实验要点

  • 专家分解k=2最优,过度分割(k=4)因数据有限导致过拟合
  • 总专家数N越大越好:N=16 > N=8 > N=4
  • 初始化策略至关重要:有初始化+0.6 AP
  • MoE也可扩展到image encoder(+0.5 AP),但本文主要在decoder
  • Detection head微调贡献最大(LVIS-val +1.1 AP)

亮点

  • 首次在实时OV检测中验证MoE:填补了MoE在compact多模态模型中的空白
  • 细粒度分解极具创意:在不增加总参数的情况下扩大搜索空间,是一种"免费午餐"的思维
  • 预训练权重分配保证增量学习:从数学上保证初始化时MoE等价于原始模型,消除训练不稳定
  • "以小博大"的数据效率:1.56M开源数据 vs 20M私有数据,MoE带来的模式分工使有限数据更高效
  • 专家协作模式的分析很有洞察:浅层探索、深层专精的层级结构与人类认知的层级处理一致

局限性 / 可改进方向

  • 当前MoE实现是顺序循环各专家,未做并行优化,导致额外10%延迟
  • 仅在GDINO 1.5 Edge上验证,未测试更大的GDINO 1.5 Pro或其他检测架构
  • 受限于8卡3090,数据规模和计算探索不够充分
  • 专家过度分割(k>2)在有限数据下过拟合,说明方法对数据量有一定要求

与相关工作的对比

  • vs. YOLOE:YOLOE通过重参数化和多提示统一实现效率,Dynamic-DINO通过MoE动态推理路径实现。两者思路不同但互补——MoE可以应用在YOLOE架构上
  • vs. Grounding DINO 1.5 Edge:直接扩展版,用MoE-Tuning以更少数据超越原模型
  • vs. DeepSeekMoE/QwenMoE:它们用随机初始化+从头训练,Dynamic-DINO用预训练权重分配+增量微调,更适合小数据场景

启发与关联

  • MoE-Tuning的思路可以推广到其他需要在有限数据下高效fine-tune的视觉任务
  • 细粒度专家分解策略可以与模型压缩领域结合——训练时MoE探索,推理时固化最优子网
  • 专家协作模式的分析方法值得在其他MoE架构中复用

评分

  • 新颖性: ⭐⭐⭐⭐ MoE在compact OV检测中的首次应用,细粒度分解+权重分配初始化设计巧妙
  • 实验充分度: ⭐⭐⭐⭐ COCO/LVIS/ODinW/RefCOCO多benchamrk,专家协作分析深入,边缘设备验证
  • 写作质量: ⭐⭐⭐⭐ Figure 2/7/8的分析图极具说服力,方法描述清晰
  • 价值: ⭐⭐⭐⭐ 为实时开放检测引入MoE范式,但工程优化还需完善