MM1: Methods, Analysis & Insights from Multimodal LLM Pre-training¶
会议: ECCV 2024
arXiv: 2403.09611
代码: 无(Apple 内部实现,使用 AXLearn 框架)
领域: 多模态VLM
关键词: 多模态大语言模型, 预训练, 消融实验, 视觉编码器, 数据配方, Mixture-of-Experts
一句话总结¶
Apple 系统性地消融了 MLLM 构建的三大轴(架构、数据、训练),得出关键设计准则:图像分辨率 > 模型大小 > 训练数据;VL 连接器类型影响甚微;caption/interleaved/text-only 三类数据的精细混合至关重要,最终构建了 3B-30B dense 和最高 64B MoE 的 MM1 模型族,在 few-shot 预训练评测上达到 SOTA。
研究背景与动机¶
现有 MLLM 的透明度严重不足:闭源模型(GPT-4V、Gemini)几乎不公开任何架构/数据细节;开源模型虽然发布权重,但鲜少揭示设计决策的过程——即为何选择某种架构、数据配比或训练策略。作者认为,提炼可复现的设计准则(design lessons)比任何具体组件实现都更有持久价值。
MM1 的核心贡献不是提出新架构,而是通过大规模系统消融回答三个关键问题: 1. 视觉编码器怎么选?分辨率、模型大小、预训练目标哪个更重要? 2. 如何将视觉特征接入 LLM?连接器架构 vs token 数量 vs 分辨率? 3. 预训练数据怎么配?caption、interleaved、text-only 各占多少?
方法详解¶
整体框架¶
MM1 采用标准 decoder-only MLLM 架构:图像编码器 → 视觉-语言连接器(VL Connector) → LLM 解码器。输入图像经编码器提取特征后,通过连接器映射为一组视觉 token,与文本 token 拼接后送入自回归 LLM。
消融基线配置: - 图像编码器:ViT-L/14(CLIP loss,DFN-5B + VeCap-300M,336×336) - VL 连接器:C-Abstractor,144 个 image token - 预训练数据:caption 45% + interleaved 45% + text-only 10% - LLM:1.2B transformer decoder
关键设计 1:图像编码器选择¶
作者对比了两类视觉编码器预训练目标(使用 2.9B LLM 确保足够容量):
对比学习(Contrastive,CLIP 系列):在大规模图文数据上训练,语义理解强,但密集预测弱。
重建损失(Reconstructive,AIM 系列):自回归重建损失,能捕获图像全局细节,理论上有利于 VQA 等需要精细理解的任务。
| 编码器 | 架构 | 分辨率 | 预训练数据 | 0-shot | 4-shot | 8-shot |
|---|---|---|---|---|---|---|
| AIM | ViT/600M | 224 | DFN-2B | 36.6 | 56.6 | 60.7 |
| AIM | ViT/1B | 224 | DFN-2B | 37.9 | 59.5 | 63.3 |
| AIM | ViT/3B | 224 | DFN-2B | 38.9 | 60.9 | 64.9 |
| CLIP | ViT-L | 224 | DFN-5B+VeCap | 36.9 | 58.7 | 62.2 |
| CLIP | ViT-H | 224 | DFN-5B+VeCap | 37.5 | 60.0 | 63.6 |
| CLIP | ViT-L | 336 | DFN-5B+VeCap | 39.9 | 62.4 | 66.0 |
| CLIP | ViT-H | 336 | DFN-5B+VeCap | 40.5 | 62.6 | 66.3 |
| CLIP | ViT-H | 378 | DFN-5B | 40.9 | 62.5 | 66.4 |
编码器准则:图像分辨率影响最大(224→336 约 +3%),模型大小次之(ViT-L→ViT-H 仅 <1%),训练数据(加 VeCap 合成 caption)再次之(few-shot +1%~2%)。CLIP 与 AIM 在控制变量后差距不大,但 CLIP 整体略优。
关键设计 2:视觉-语言连接器¶
作者对比了三种 VL 连接器架构:
- Average Pooling:n×n 平均池化 + 线性投影(类似 Emu2)
- Attention Pooling:k 个可学习 query 做交叉注意力
- C-Abstractor:基于 ResNet 块的卷积映射(Honeybee 提出),保留局部信息 + 自适应池化
在 64 和 144 token、224 和 336 分辨率四种设置下的完整消融表明:
连接器准则:视觉 token 数量和图像分辨率最重要,连接器架构类型影响甚微。三种架构在 336px/144 token 设置下性能几乎相同。这与 Honeybee 论文的结论相矛盾——在更大规模训练下,连接器架构差异被抹平。最终选择 C-Abstractor 仅因为它在某些设置下略好。
关键设计 3:预训练数据配方¶
作者使用三类数据,总结了四条关键数据准则:
| 数据类型 | 数据源 | 规模 |
|---|---|---|
| Captioned Images | CC3M, CC12M, HQIPT-204M, COYO, Web Image-Text-1B | 20 亿图文对 |
| Synthetic Captions | VeCap | 3 亿图文对 |
| Interleaved Image-Text | OBELICS + 内部数据 | 6 亿文档 |
| Text-only | 网页、代码、社交媒体、百科、数学 | 2T tokens |
数据准则 1:Interleaved 数据对 few-shot 和纯文本性能"不可或缺",caption 数据提升 zero-shot。caption 占比从 0%→100%,zero-shot 从 25.8%→39.3%;但 interleaved 低于 50% 时,8-shot 从 61% 骤降至 45%。
数据准则 2:Text-only 数据辅助 few-shot 和文本理解。caption + text-only 组合显著提升 few-shot;interleaved + text-only 组合提升幅度较小但保持文本能力。
数据准则 3:精细混合可兼顾多模态和文本性能。最优比例为 caption:interleaved:text = 45:45:10(约 5:5:1)。
数据准则 4:合成 caption 数据(VeCap)虽仅占 7%,但对 few-shot 贡献显著(+2.4%~4%)。
训练策略¶
预训练配置: - 所有参数完全解冻(图像编码器 + LLM) - 序列长度 4096,每序列最多 16 张图(378×378),batch size 512 - 训练 200k 步(约 100B tokens) - 学习率通过小模型(9M→1.2B)grid search + log 空间线性回归外推 - 外推公式:\(\eta = \exp(-0.4214 \ln(N) - 0.5535)\) - 权重衰减:\(\lambda = 0.1\eta\) - Cosine decay,warmup 2000 步,衰减到峰值的 10% - 最终 3B/7B/30B 实际 LR:6e-5 / 4e-5 / 2e-5
MoE 扩展: - 3B-MoE:64 experts,每隔 2 层替换,总参数 64B - 7B-MoE:32 experts,每隔 4 层替换,总参数 47B - Top-2 gating + load balance loss (0.01) + router z-loss (0.001) - 仅替换 LLM decoder 的 FFN 层,图像编码器和 VL 连接器不变
SFT 配置: - 约 145 万条样本(LLaVA-Conv/Complex、ShareGPT-4V、学术 VL 数据集等) - 10k 步,batch size 256,序列长度 2048 - AdaFactor,LR 1e-5,cosine decay - 图像编码器和 LLM 均解冻 - 高分辨率:位置 embedding 插值 + 子图分解(SPHINX 方法) - 默认 SFT 分辨率 1344×1344(5 张 672×672 子图,共 720 tokens/image)
实验关键数据¶
预训练主结果(few-shot SOTA)¶
| 模型 | Shot | COCO | NoCaps | TextCaps | VQAv2 | TextVQA | VizWiz | OKVQA |
|---|---|---|---|---|---|---|---|---|
| Flamingo-3B | 0 | 73.0 | – | – | 49.2 | 30.1 | 28.9 | 41.2 |
| Flamingo-3B | 8 | 90.6 | – | – | 55.4 | 32.4 | 38.4 | 44.6 |
| MM1-3B | 0 | 73.5 | 55.6 | 63.3 | 46.2 | 29.4 | 15.6 | 26.1 |
| MM1-3B | 8 | 114.6 | 104.7 | 88.8 | 63.6 | 44.6 | 46.4 | 48.4 |
| Flamingo-9B | 8 | 99.0 | – | – | 58.0 | 33.6 | 39.4 | 50.0 |
| Emu2-14B | 8 | – | – | – | 59.0 | – | 43.9 | – |
| MM1-7B | 8 | 116.3 | 106.6 | 88.2 | 63.6 | 46.3 | 45.3 | 51.4 |
| Flamingo-80B | 8 | 108.8 | – | – | 65.6 | 37.3 | 44.8 | 57.5 |
| IDEFICS-80B | 8 | 114.3 | 105.7 | 77.6 | 64.8 | 35.7 | 46.1 | 55.1 |
| Emu2-37B | 8 | – | – | – | 67.8 | 49.3 | 54.7 | 54.1 |
| MM1-30B | 8 | 123.1 | 111.6 | 92.9 | 70.9 | 49.4 | 49.9 | 58.3 |
MM1 在所有对比中 few-shot 性能领先。注意 MM1-30B 比 Flamingo-80B(2.7倍参数)和 IDEFICS-80B 表现更好。
SFT 主结果(12 个 benchmark)¶
| 模型 | VQAv2 | TextVQA | SQA-I | MMMU (v/t) | MathV | MME-P | MME-C | MMB | SEED | POPE | LLaVA-W | MM-Vet |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MM1-3B-Chat | 82.0 | 71.9 | 69.4 | 33.9/33.7 | 32.0 | 1482 | 279 | 67.8 | 63.0/68.8 | 87.4 | 72.1 | 43.7 |
| MM1-3B-MoE | 82.5 | 72.9 | 76.1 | 38.6/35.7 | 32.6 | 1469 | 303 | 70.8 | 63.9/69.4 | 87.6 | 76.8 | 42.2 |
| LLaVA-1.5-7B | 78.5 | 58.2 | 66.8 | –/– | – | 1511 | 316 | 64.3 | 58.6/66.1 | 85.9 | 63.4 | 31.1 |
| LLaVA-NeXT-7B | 81.8 | 64.9 | 70.1 | 35.8/– | 34.6 | 1519 | 332 | 67.4 | –/70.2 | 86.5 | 81.6 | 43.9 |
| MM1-7B-Chat | 82.8 | 72.8 | 72.6 | 37.0/35.6 | 35.9 | 1529 | 329 | 72.3 | 64.0/69.9 | 86.6 | 81.5 | 42.1 |
| MM1-7B-MoE | 83.4 | 73.8 | 74.4 | 40.9/37.9 | 40.9 | 1597 | 395 | 72.7 | 65.5/70.9 | 87.8 | 84.7 | 45.2 |
| MM1-30B-Chat | 83.7 | 73.5 | 81.0 | 44.7/40.3 | 39.4 | 1638 | 431 | 75.1 | 65.9/72.1 | 87.6 | 89.3 | 48.7 |
MoE 模型在几乎所有 benchmark 上均优于对应 dense 模型,展现 MoE 在 MLLM 中的巨大潜力。
关键发现汇总¶
- 分辨率 >> 模型大小 >> 训练数据:编码器选择的优先级明确
- 连接器类型无关紧要:Average Pooling、Attention Pooling、C-Abstractor 效果几乎相同
- token 数量很重要:64 → 144 tokens 带来显著提升
- Interleaved 数据是 few-shot 能力的关键来源:其结构天然类似 few-shot 输入
- 预训练时长直接影响 SFT 性能:更多预训练 step → 更好的下游表现(Figure 7c)
- SFT 高分辨率的收益递减:1344px 最优,1792px 反而轻微下降
- 预训练准则可迁移到 SFT:caption-only 预训练提升 SFT zero-shot;连接器差异在 SFT 后同样消失
- SFT 后仍保留 few-shot 能力:MM1-30B-Chat 在 MathVista 上 0-shot 39.4 → 4-shot 41.9 → 8-shot(混合分辨率)44.4
亮点与洞察¶
- 系统性消融的价值:MM1 最大贡献不是模型本身,而是可复用的设计准则。这种"recipe paper"对社区的价值可能超过任何单一 SOTA
- "连接器不重要"的颠覆性发现:直接挑战了 Honeybee、BLIP-2 等工作对 VL connector 的重视,说明在足够大规模训练下,简单方法足矣
- 数据配方的精细平衡:45:45:10 的比例并非随意选择,而是通过系统消融得出的最优解。这暗示多模态预训练中数据工程的重要性被严重低估
- MoE 的高效扩展:3B-MoE(64B 总参数)在仅激活少量参数的情况下接近甚至超越 7B dense 模型,为 MLLM 的高效部署提供了方向
- 混合分辨率 few-shot:子图分解在 few-shot 场景下 token 开销巨大,提出的混合分辨率策略(仅最后 N 个样本高分辨率)是实用的工程创新
局限与展望¶
- 消融规模受限:架构消融使用 1.2B/2.9B LLM,数据消融 200k 步——更大规模下准则是否仍然成立存疑
- 编码器对比不完全公平:AIM 的训练数据量不到 CLIP 的一半,结论需谨慎解读
- 闭源数据依赖:Web Image-Text-1B、内部 interleaved 数据等不可复现
- 无视频/音频模态:仅限图文多模态,未涉及更通用的多模态场景
- SFT 数据较传统:主要沿用 LLaVA-1.5 的 SFT 配方,未深入探索 SFT 数据的消融
- 每张图仅 144 tokens:相比 LLaVA-NeXT 的 2880 tokens 显著更少,细粒度理解可能不足
- 未探索 RLHF/DPO:仅有 SFT 阶段,缺少偏好对齐训练
相关工作与启发¶
- Flamingo:最早的大规模 interleaved 预训练 MLLM,MM1 的直接对比对象和灵感来源
- IDEFICS/OpenFlamingo:Flamingo 的开源复现尝试,但缺少设计消融
- LLaVA-1.5/NeXT:SFT 配方的主要参考,MM1 的 SFT 数据混合直接沿用
- VILA:同样研究预训练组件,但未提供优化细节和预训练评测
- Emu2:提供预训练细节但缺少消融,MM1 在 few-shot 上全面超越
- Honeybee:提出 C-Abstractor,但 MM1 证明其优势在大规模下消失
对后续工作的启发:MM1 的消融方法论具有通用参考价值——在小规模消融确定组件后外推到大规模训练。学习率外推公式是一个可直接复用的实用工具。
评分¶
| 维度 | 分数 (1-5) | 说明 |
|---|---|---|
| 创新性 | 3.5 | 架构无新意,但系统消融方法论和设计准则有创新价值 |
| 实验充分性 | 5 | 极其充分,三轴消融 + 多尺度验证 + SFT 迁移验证 |
| 工程价值 | 5 | 数据配方、LR 外推公式、混合分辨率策略均可直接复用 |
| 写作质量 | 4.5 | 结构清晰,准则总结简明,附录信息丰富 |
| 综合推荐 | ⭐⭐⭐⭐⭐ | MLLM 领域必读 recipe paper,消融结论的参考价值远超模型本身 |
相关论文¶
- [ECCV 2024] Omniview-Tuning: Boosting Viewpoint Invariance of Vision-Language Pre-training Models
- [CVPR 2025] Multi-Layer Visual Feature Fusion in Multimodal LLMs: Methods, Analysis, and Best Practices
- [CVPR 2025] Multimodal Autoregressive Pre-training of Large Vision Encoders
- [ICCV 2025] SCAN: Bootstrapping Contrastive Pre-training for Data Efficiency
- [ECCV 2024] MathVerse: Does Your Multi-modal LLM Truly See the Diagrams in Visual Math?