Files
note_sync/大模型/deepseek/05-多模态/01-DeepSeek-VL-2403.05525.md
T

117 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DeepSeek-VL:面向真实世界视觉语言理解的开源多模态大模型
> **原文标题**:DeepSeek-VL: Towards Real-World Vision-Language Understanding
> **arXiv**:[2403.05525](https://arxiv.org/abs/2403.05525) | **发布**:8 Mar 2024(最后修订 11 Mar 2024, v2)
> **作者/机构**:Haoyu Lu、Wen Liu、Bo Zhang(共同一作,Bo Zhang 为项目负责人)等 15 人,DeepSeek-AI(深度求索)
> **原文 PDF**:[01-DeepSeek-VL-2403.05525.pdf](./01-DeepSeek-VL-2403.05525.pdf)
## 一、摘要(全文翻译)
我们提出 DeepSeek-VL,一个面向真实世界视觉与语言理解应用的开源视觉语言(Vision-Language, VL)模型。我们的方法围绕三个关键维度展开:
- **数据构建**:力求数据多样、可扩展并广泛覆盖真实场景,包括网页截图、PDF、OCR、图表以及知识型内容(专家知识、教科书)。此外,我们从真实用户场景出发构建用例分类体系(use case taxonomy),并据此构建指令微调数据集,该数据集显著提升了模型在实际应用中的用户体验。
- **模型架构**:考虑到效率与大多数真实场景的需求,DeepSeek-VL 采用混合视觉编码器(hybrid vision encoder),能在固定 token 预算内高效处理高分辨率图像(1024 × 1024),同时保持相对较低的计算开销,确保模型在各视觉任务中捕捉关键的语义与细节信息。
- **训练策略**:我们认为优秀的视觉语言模型首先应具备强大语言能力。为确保预训练期间 LLM 能力不被破坏,我们研究了一种有效的 VL 预训练策略:从训练一开始就纳入语言模型训练,并谨慎管理视觉与语言模态间的竞争关系。我们以文本为起点,逐步调整比例,以促成两种模态的均衡融合。
DeepSeek-VL 系列(1.3B 与 7B 模型)在真实应用中展现出作为视觉语言聊天机器人的优越用户体验,在同等规模下于广泛视觉语言基准上取得最先进或具竞争力的性能,同时在语言类基准上保持稳健表现。我们已将两个模型公开,以促进基于该基础模型的创新。
## 二、核心贡献
1. **真实场景数据与用例分类体系**:针对开源模型多以学术数据集拼接微调、benchmark 分数好看但真实体验不佳的问题,把预训练数据划分为图文交错、图像描述、表格图表、Web 代码、场景文字 OCR、文档 OCR、纯文本七大类,并从网上收集 GPT-4V 与 Gemini 的真实测试用例,整理成覆盖识别、转换、分析、推理、评估、安全、多图的分类体系,据此构造含中文的自研 SFT 数据与评测集。
2. **固定 token 预算下的混合视觉编码器**:单用 SigLIP 这类 CLIP 系编码器既有「CLIP 盲对」(CLIP-blind pairs)的语义编码歧义,又受限于 384 × 384 等低分辨率、难以应付密集 OCR 与视觉定位;故并联 SigLIP-L(384 × 384,语义)与 SAM-B(1024 × 1024,细节),把 1024 × 1024 图像压到 576 个 2048 维视觉 token。
3. **保语言的联合 VL 预训练策略**:发现直接以多模态数据训练 LLM 会造成灾难性遗忘,遂引入大体量语言数据联合训练(语言:多模态约 7:3),并提出「模态预热」(modality warm-up)以使两模态均衡发展。
4. **打通三阶段流水线并可扩展到 7B**:适配器预热 → 联合 VL 预训练 → 监督微调;针对 1.3B 生成式指标剧烈波动、无法监督训练的问题,改用多选题选项困惑度并在预训练中混入少量 SFT 数据,形成「小模型试错、结论迁移到大模型」的路径。
5. **开源 1.3B 与 7B 双规模模型**:7B 在同规模开源模型中于 MMB 73.2、MMC 72.8、SEED 70.4、MathVista 36.1 领先,SeedBench 70.4 逼近 GPT-4V 的 71.6;1.3B 以不足一半参数(1.3B vs 2.7B)在 MMB 上超过同量级开源模型,语言基准亦基本不退化(MMLU 52.4 高于 DeepSeek-LLM-7B 的 49.4)。
## 三、方法与技术要点
### 3.1 混合视觉编码器与视觉语言适配器
痛点是:CLIP 系(含 SigLIP)编码器面向语义级表示且存在编码歧义——视觉上明显不同的图像可能被编码得相似,即「CLIP 盲对」;其分辨率也偏低(224/336/384/512),难以支撑密集 OCR 与视觉定位这类细粒度低层任务。故模型并联两个编码器:**SigLIP-L** 以 384 × 384 输入提供语义特征,输出 $576 \times 1024$ 特征图;**SAM-B** 是以 ViTDet 为预训练主干的纯视觉自监督编码器,接收 1024 × 1024 输入得到 $64 \times 64 \times 256$ 特征图,适配器先插值到 $96 \times 96 \times 256$,再经两层 stride 为 2 的卷积得到 $24 \times 24 \times 1024$ 并 reshape 为 $576 \times 1024$,用卷积下采样把高分辨率分支对齐到低分辨率分支的长度。
两路特征沿嵌入维度拼接成 576 个 2048 维视觉 token,经 GeLU 激活后接入语言模型;取 576 个 token 是为兼顾表征丰富度与 token 经济性,使图文交错与多轮推理可行。适配器是**两层的混合 MLP(hybrid MLP)**:高、低分辨率特征各先过一个独立单层 MLP,拼接后再经一层 MLP 变换到 LLM 输入空间。
### 3.2 语言模型与并行训练基础设施
语言模型基于 DeepSeek LLM,微观结构沿用 LLaMA:Pre-Norm + RMSNorm,FFN 用 SwiGLU、中间层维度 $\frac{8}{3}d_{model}$,位置编码用旋转位置嵌入,与 DeepSeek-LLM 共用 tokenizer。为做语言与多模态联合预训练,论文不从零训练语言模型,而是**从 DeepSeek 预训练模型的中途 checkpoint 继续预训练**:1B 版本来自约 5000 亿文本 token 的 DeepSeek-LLM-1B,7B 版本来自约 2 万亿文本 token 的 DeepSeek-LLM-7B。
训练与评测使用 HAI-LLM 框架:把视觉编码器与文本嵌入视为单一模块作为第一层以复用流水线并行;该层不适合标准张量并行,但计算量远小于上层 Transformer 块,故在所有张量并行 rank 上重算其前向;又因各层耗时不均,重新划分各 rank 的层分配以改善均衡与吞吐。上层与 DeepSeek-LLM 一致,可照搬 Megatron 式 3D 并行与计算通信重叠。开销为:7B 在 64 节点 × 8 张 A100 上训练 5 天,1B 在 16 节点 7 天。
### 3.3 三阶段训练流水线
训练分三阶段:适配器预热、联合视觉语言预训练、监督微调(论文 Figure 3);全流程只做视觉理解,且只在语言部分计算下一 token 预测损失。
**阶段 1(适配器预热)**:目的是建立视觉与语言元素在嵌入空间中的概念连接。与 LLaVA、Instruct-BLIP 一致,冻结视觉编码器与 LLM,只训练适配器,数据为 ShareGPT4V 的 125 万图文对加 250 万文档 OCR 渲染对。论文还质疑「数据规模定律在此阶段是否成立」:因适配器容量远小于 LLM,实验显示扩大数据规模无收益甚至更差,故在阶段 2 解冻 LLM。
**阶段 2(联合 VL 预训练)**:冻结视觉编码器,优化语言模型与适配器。直接用纯多模态数据(多模态:语言 = 100%:0%)时,多模态指标缓慢上升而语言指标急剧下降;论文归因于多模态语料过于简单、与语言数据分布差异大,加上两模态存在竞争关系,使 LLM 灾难性遗忘。对策是混入大比例语言数据,实验(1B)给出三条结论——加入语言数据显著缓解语言能力下滑;且不明显损失多模态性能;各模态表现与其数据占比强相关,印证竞争关系。最终取语言:多模态约为 7:3。
**阶段 2 的规模化**:7B 直接迭代成本过高,故先在 1.3B 上试错再放大,并发现 1.3B 的相当一部分结论(如编码器设计)可通过 SFT 迁移到 7B。但 1.3B 生成式指标波动剧烈,根因是容量有限且数据中没有 SFT 数据——模型即使「知道」正确选项也难以准确生成。对策有两条:用多选题选项困惑度(Multi-choice PPL)监控进度,即把 prompt、图像与各候选答案一并输入,算各答案位置(A/B/C/D)的困惑度取最低者为预测;同时在数据中以极小比例引入 SFT 数据,获得基本指令跟随能力。
**阶段 3(监督微调)**:用 SFT 数据优化语言模型、适配器与混合视觉编码器(受显存限制 SAM-B 保持冻结),仅监督答案与特殊 token、掩蔽 system 与 user prompt;数据中混合纯文本对话数据以兼顾对话通用性,得到交互式 DeepSeek-VL-Chat。
**关键超参**:阶段 1 学习率 $1.0\times10^{-3}$(Cosine),阶段 2 为 1B 用 $3\times10^{-5}$、7B 用 $4.2\times10^{-5}$(Step),阶段 3 为 $2.0\times10^{-5}$(Cosine);优化器 AdamW($\beta_1=0.9,\beta_2=0.95$),权重衰减 0.0,梯度裁剪 1.0;训练步数 1B 为 15000/96000/10000、7B 为 15000/42000/10000;batch size 为 256/1024/256(1B)与 256/2304/256(7B);序列长度阶段 1 为 512、阶段 2 与 3 为 4096,仅阶段 2 启用序列打包,仅 7B 的阶段 2、3 启用流水线并行。
### 3.4 消融实验中的设计取舍
- **模态分组训练**:batch 级别混合两种模态会因反向传播等待最慢样本而大幅降低效率,纯语言数据被迫等待多模态样本。改为在每个全局步按模态分组采样(一个 batch 要么全是语言、要么全是多模态),性能不降而效率提升 20%。
- **模态预热**:一开始就按固定比例混入多模态数据会让模型不稳定,故把语言比例初始设为 1 再逐步降到目标值(如 0.7)。该策略既防止训练初期语言能力大幅下滑,又让后期语言与多模态表现都更好。
- **视觉编码器选择**:把阶段 2 步数减到 8000 后比较训练损失,加入纯视觉自监督编码器可显著降低损失,故采用 SigLIP + SAM。
- **视觉特征融合与适配器结构**:沿序列维度拼接可能更好但序列变长;序列长度不变时,把特征沿图像宽、高堆叠以缩短序列(Token Pooling - W/H)在多数指标上不如沿嵌入维度合并。适配器上,独立 MLP 可更精确调整特征分布、训练更平滑,共享 MLP 利于特征融合;论文采用「先各自单层、再拼接后共享一层」的混合策略,平均分 55.9,优于 Shared MLP 的 55.2 与 Separate MLP 的 54.5。
## 四、主要实验结果
| 基准 / 任务 | 本模型 | 对比对象 | 说明 |
|---|---|---|---|
| MMMU(综合理解) | 7B: 36.6;1.3B: 32.2 | GPT-4V 56.8;Gemini Pro 48.9;LLaVA-Next 7B 35.8 | 明显落后专有模型 |
| CMMMU(中文综合) | 7B: 37.9;1.3B: 27.4 | GPT-4V 42.5;Yi-VL 6B 35.8;CogVLM 7B 24.8 | 同规模开源中领先 |
| MMBench (MMB) | 7B: 73.2;1.3B: 64.6 | LLaVA-Next 7B 67.4;Qwen-VL-Chat 7B 60.6;GPT-4V 75.0 | 同规模开源最优 |
| MMBench-CN (MMC) | 7B: 72.8;1.3B: 61.3 | Qwen-VL-MAX 76.4;LLaVA-Next 7B 60.0 | 中文能力突出 |
| SeedBench (SEED) | 7B: 70.4;1.3B: 66.7 | GPT-4V 71.6;LLaVA-Next 13B 71.9 | 逼近专有模型 |
| OCRBench | 7B: 456;1.3B: 409 | GPT-4V 659;LLaVA-1.5 13B 331 | 远低于 GPT-4V,但高于 13B 开源 |
| POPE(幻觉) | 7B: 88.1;1.3B: 87.6 | LLaVA-Next 13B 86.7;VILA 13B 84.2 | 开源对比中最高 |
| MathVista | 7B: 36.1;1.3B: 31.1 | GPT-4V 47.8;LLaVA-Next 13B 35.3 | 开源第一但差距明显 |
| MMVet | 7B: 41.5;1.3B: 34.8 | Qwen-VL-MAX 61.8;GPT-4V 49.9 | 落后专有模型 |
| HellaSwag(语言) | 7B Chat: 68.4 | DeepSeek-LLM-7B Chat: 68.5 | 基本持平、无退化 |
| MMLU(语言) | 7B Chat: 52.4 | DeepSeek-LLM-7B Chat: 49.4 | 多模态训练后反而更高 |
| GSM8K(数学) | 7B Chat: 55.0 | DeepSeek-LLM-7B Chat: 63.0 | 数学能力有下降 |
| MBPP(代码) | 7B Chat: 35.2 | DeepSeek-LLM-7B Chat: 35.2 | 完全持平 |
| AGIEval(考试) | 7B Chat: 27.8 | DeepSeek-LLM-7B Chat: 19.3 | 明显提升 |
| 三阶段消融(平均分) | 阶段 1+2+3: 62.4 | 仅阶段 1+3: 57.4;仅阶段 2+3: 61.7 | 联合预训练有效,适配器预热亦有价值(MMB 64.3 / MMC 61.3 / SEED 66.7 / POPE 87.6 / MMMU 32.2) |
| 阶段 1 数据规模化 | 2K 步平均 57.5 | 8K: 55.1;20K: 55.5;80K: 55.6 | 扩数据无收益,证明适配器容量受限 |
| 人评(100 题、7 大类) | DeepSeek-VL-7B | InternLM-XComposer2-VL、CogVLM、GPT-4V | GPT-4V 在多数维度最强,开源模型在逻辑推理上差距大;DeepSeek-VL-7B 整体更好,在识别、转换与常识推理上接近 GPT-4V |
| GPT-4V 作为裁判(99 样本) | DeepSeek-VL | Fuyu-8B、CogVLM-17B、InternLM-XComposer2-VL、GPT-4V | 对比开源多模态模型时超过 60% 的样本被判更优,与专有模型相比相当 |
综合来看,DeepSeek-VL-7B 在多数同规模开源模型中领先,其中 MMB、MMC、SeedBench 等自然图像理解基准甚至逼近专有模型(SeedBench 70.4 vs GPT-4V 71.6),数学逻辑类基准则超过全部开源对比模型但仍明显落后 GPT-4V(MathVista 36.1 vs 47.8),论文归因于基座模型规模差异。1.3B 以接近一半的参数在 MMB 上超过同量级开源模型,MathVista 也接近 7B 开源模型。语言侧基本不退化,MMLU 与 AGIEval 甚至超过纯文本的 DeepSeek-LLM-7B,但 GSM8K 下降,说明两模态仍存在竞争关系。
## 五、结论、局限与影响
- **结论**:论文提出 1.3B 与(结论处写作 6.7B 参数的)7B 两个规模的多模态大语言模型系列,揭示主流「投影器式」预训练范式的局限,转而以联合视觉语言预训练为核心,通过预热数据比例与混合视觉编码器,在不损害 LLM 语言能力的前提下高效处理 1024 × 1024 图像,视觉基准表现优异且语言基准强健;模型已公开。
- **局限性**:论文自述三处——1.3B 容量有限,阶段 2 生成式指标波动大、难以监督训练;7B 在 GSM8K 等数学任务下滑,论文归因于容量限制,称「更大的模型可能显著缓解该问题」;阶段 1 适配器容量受限,扩数据不带来收益。此外,阶段 3 因显存有限无法解冻 SAM-B。
- **影响**:DeepSeek-VL 以「真实世界可用性」为设计标尺(网页截图、PDF、图表、OCR、知识型内容与用例分类体系驱动的 SFT 数据),提供了「预训练优先 + 保语言能力 + 固定 token 预算高分辨率」的可复制路线,并开源 1.3B/7B 权重。论文宣布将引入混合专家(Mixture of Experts, MoE)扩展到更大规模。
## 六、关键术语对照表
| English | 中文 |
|---|---|
| Vision-Language Model (VLM) | 视觉语言模型 |
| Large Multimodal Model (LMM) | 大型多模态模型 |
| Hybrid Vision Encoder | 混合视觉编码器 |
| Vision-Language Adaptor / Projector | 视觉语言适配器/投影器 |
| CLIP-blind pairs | CLIP 盲对 |
| SigLIP | SigLIP(Sigmoid 损失训练的 CLIP 类视觉编码器) |
| SAM (Segment Anything Model) | 分割一切模型 |
| ViTDet | ViTDet 图像编码器 |
| Visual Token | 视觉 token |
| Interleaved Image-Text Data | 图文交错数据 |
| Use Case Taxonomy | 用例分类体系 |
| Supervised Fine-Tuning (SFT) | 监督微调 |
| Modality Warmup | 模态预热 |
| Modality Group Training | 模态分组训练 |
| Catastrophic Forgetting | 灾难性遗忘 |
| Multi-choice Perplexity (PPL) | 多选题困惑度评测 |
| Visual Grounding | 视觉定位 |
| Sequence Packing | 序列打包 |
| Mixture of Experts (MoE) | 混合专家 |
(注:论文摘要与正文均以 1.3B / 7B 称呼该系列,仅第 5 章结论处写作「1.3B 和 6.7B 参数」;本文正文统一使用 7B。)