DeepSeek-VL / DeepSeek-VL2:面向真实世界的开源多模态模型详解(架构 × 数据 × 训练)

目标读者:想系统理解 DeepSeek-VL 与 DeepSeek-VL2 “为什么这样设计、怎么训练、解决了哪些真实世界问题”的研究与工程读者。


1. 为什么需要 DeepSeek-VL:真实世界多模态的三类硬问题

许多开源 MLLM 在“真实世界输入”(网页截图、PDF、扫描件、密集 OCR、信息图、复杂图表)上体验不稳定,常见瓶颈集中在三点:

  1. 高分辨率输入不经济
    传统 ViT/CLIP 风格视觉编码器通常以 224×224224\times224224×224384×384384\times384384×384 为主,强行提升分辨率会导致 token 数爆炸、推理延迟显著上升;但真实文档/网页任务又高度依赖细节(小字号、表格边界、坐标刻度、图例等)。

  2. 视觉增强常伴随语言能力退化
    直接用大量图文数据继续训练 LLM,很容易让语言侧出现“灾难性遗忘”:对话能力、逻辑表达、指令跟随质量下降。

  3. 训练数据“脱离使用场景”
    如果预训练/微调数据主要来自自然图像 caption 或简单 VQA,模型在网页、PDF、图表、OCR 上的泛化会很脆弱,因为这些场景的视觉分布和任务需求完全不同。

DeepSeek-VL 的核心思路就是围绕上述三点,分别用 真实场景数据体系混合视觉编码器训练阶段的模态竞争平衡 来系统解决。


2. DeepSeek-VL:整体框架与核心目标

2.1 模型定位与规模

DeepSeek-VL 是 DeepSeek 在 2024 年 3 月开源的视觉-语言模型系列,提供 1.3B 与 7B 两个规模,并面向“真实世界多模态理解”做了系统优化:网页截图、PDF 文档、OCR、图表/表格等。

2.2 “老三样”主干:Vision Encoder + Adaptor + LLM

DeepSeek-VL 的主干非常典型:

  • 视觉编码器(Vision Encoder):将图像转为视觉 token / 特征序列
  • 视觉-语言适配器(Vision-Language Adaptor):将视觉特征映射到 LLM 可消费的嵌入空间
  • 语言模型(LLM):进行多模态对话、推理与生成

关键差异不在“是否三段式”,而在 视觉编码器如何兼顾细节与语义、以及 训练策略如何避免语言能力退化


3. DeepSeek-VL 的架构设计:混合视觉编码器(SigLIP + SAM-B)

3.1 为什么要“混合编码器”

真实世界任务往往同时需要两类信息:

  • 高级语义:判断这页在讲什么、图表主题是什么、对象之间语义关系
  • 低层细节:OCR 字符、表格线、坐标刻度、图例符号、局部定位

单一 CLIP/SigLIP 在低分辨率输入上容易“看不清细节”;而单一高分辨率编码器又可能缺少强语义对齐能力或成本过高。因此 DeepSeek-VL 采用“双路融合”:

  • SigLIP 编码器:偏语义、对齐能力强
  • SAM-B(基于 ViTDet 系列)编码器:偏细节、支持更高分辨率输入(如 1024×10241024\times10241024×1024

3.2 SigLIP 路径:语义表征与“CLIP-blind pairs”

SigLIP/CLIP 一类对比预训练模型擅长把“图像整体语义”映射到与文本相近的空间,但在密集细节任务上存在两类典型问题:

  1. 低分辨率导致细节缺失:如小字号 OCR、复杂表格单元格、曲线图的细小刻度
  2. CLIP-blind pairs:视觉上不同的图像可能得到相近嵌入(尤其当差异集中在局部细节)

示例(理解 “blind pairs”):
两张网页截图整体布局相似,但某一处价格从 “$199” 变为 “$299”。CLIP 可能认为二者语义相近;但真实任务(比价、核对)要求模型稳定捕捉这类局部变化。


3.3 SAM-B 路径:高分辨率细节特征

SAM-B 路径的目标是“把细节保留下来”。典型流程包括:

  • 将图像缩放到 1024×10241024\times10241024×1024
  • 生成类似 64×64×25664\times64\times25664×64×256 的高密度特征图
  • 通过插值、卷积下采样等操作变换到适合 token 化的形态(例如得到与 SigLIP 相近 token 数量尺度的序列)

直观理解:SAM-B 提供“像素级更细”的信息通道,让模型在 OCR、视觉定位、图表读取等任务中更稳。


3.4 双路融合:在有限 token 预算下兼顾语义与细节

DeepSeek-VL 的融合要点是:把高分辨率与低分辨率特征对齐到可拼接的序列表示,再投影到 LLM 输入空间。

一个典型实现形态(概念层面):

  • SigLIP 输出:576×1024576\times1024576×1024(例如 24×2424\times2424×24 token 网格展平)
  • SAM-B 输出经过处理也对齐到:576×1024576\times1024576×1024
  • 拼接后得到:576×2048576\times2048576×2048
  • 经过激活与嵌入映射:得到 LLM 可消费的视觉 token 序列

关键点:融合不是“堆更大分辨率”,而是“用两路互补信息在相近 token 规模内增强表达”。


4. DeepSeek-VL 的 Vision-Language Adaptor:两层混合 MLP 的意义

视觉编码器的输出特征空间与 LLM 的词嵌入空间并不天然一致。Adaptor 的职责是:

  1. 第一层:分别处理来自高分辨率(细节)与低分辨率(语义)两路特征,做初步对齐与尺度校正
  2. 第二层:把拼接后的特征映射到 LLM 的输入嵌入维度,使视觉 token 能像“特殊词”一样进入 Transformer 进行跨模态注意力融合

直观上,Adaptor 是“跨模态接口层”,决定了视觉信息能否以稳定、可控的方式注入语言模型。


5. DeepSeek-VL 的 LLM:沿用 DeepSeek-LLM 的语言能力底座

DeepSeek-VL 的语言模型基于 DeepSeek-LLM(结构借鉴 LLaMA 范式):

  • Pre-Norm / RMSNorm:提升训练稳定性
  • SwiGLU:增强 FFN 表达与训练效率
  • RoPE:长上下文位置建模
  • 一致的 tokenizer:保持语言侧能力与生态一致

规模与文本预训练量(概念):

  • 1.3B:约 5×10115\times10^{11}5×1011 文本 token 级别
  • 7B:约 2×10122\times10^{12}2×1012 文本 token 级别

这一点非常关键:真实世界多模态能力想要“可用”,语言侧必须足够强,否则会出现“看懂了但说不清 / 指令跟随差 / 推理表达不稳定”。


6. DeepSeek-VL 三阶段训练:从对齐到泛化再到可交互

DeepSeek-VL 的训练通常可理解为“三步走”:

6.1 阶段 1:Adaptor Warm-up(只训接口层)

目标:让 LLM 在嵌入空间“认识视觉 token”,建立概念对应关系。

  • 冻结视觉编码器与 LLM,仅训练 Adaptor
  • 用图文对与 OCR 渲染数据做对齐

重要观察:Adaptor 参数量远小于 LLM,承载能力有限。单纯扩大数据规模并不一定提升,甚至可能出现对齐不充分或表征瓶颈。

这也解释了为什么后续阶段要 解冻 LLM,让语言模型参与多模态适配。


6.2 阶段 2:Joint Vision-Language Pretraining(全模型联合训练 + 模态平衡)

直接用多模态数据训练容易伤害语言能力,因此 DeepSeek-VL 引入 模态竞争平衡 的策略:训练中同时喂入大量纯文本数据,确保语言能力不退化。

一个典型比例选择是:

  • 语言数据占比不低于 70%70\%70%
  • 多模态数据约 30%30\%30%

也就是常说的 7:37:37:3 混合策略。

为什么语言数据要占大头?
因为多模态数据往往“表面复杂但语言复杂度低”(例如短 caption、简单 QA),如果纯靠它继续训练 LLM,很容易让 LLM 的长链路语言能力被稀释。

示例:
如果训练数据大量是“图中是什么?A 是猫”,语言侧会趋向短、模板化回答;而纯文本对话与复杂推理数据能维持语言表达、逻辑结构与指令跟随能力。


6.3 阶段 3:SFT(指令微调到可交互聊天模型)

目标:让模型变得“会用”,包括对话、指令遵循、复杂场景问答等。

常见策略要点:

  • 优化语言模型 + Adaptor + 视觉编码器(部分模块可冻结以节省显存)
  • 只监督答案与必要的特殊 token,掩码 system/user prompt(减少对提示词形式的过拟合)
  • 混合多模态指令数据与纯文本对话数据,提升通用对话质量

7. DeepSeek-VL 的数据体系:真实场景覆盖为什么重要

DeepSeek-VL 的数据设计强调“贴近真实用户输入”。一个典型的预训练数据组成可以包括:

  • 交错图文(网页、百科、教程类)
  • 图表表格(结构化视觉 + 文本解释)
  • Web 代码/渲染(网页结构、截图-文本对齐)
  • OCR 场景文本与文档渲染(论文 PDF、扫描件渲染)
  • 大比例纯文本(维持语言能力)

其直观收益是:模型不仅能“看图说话”,还能稳定处理 文档理解、表格解析、图表读数、网页交互式理解 这些高频真实任务。


8. DeepSeek-VL2:从“固定高分辨率”到“动态分块 + MoE LLM”的升级

DeepSeek-VL 的混合编码器已能处理 1024×10241024\times10241024×1024,但仍会遇到两类现实问题:

  1. 极端宽高比输入:长条网页截图、横向信息图、超长 PDF 页面
  2. 更高分辨率需求:信息图、密集 OCR、精细定位任务常要求更细粒度的局部观察

DeepSeek-VL2 的升级聚焦两点:

  • 动态分块编码(dynamic tiling):自适应不同宽高比与分辨率
  • DeepSeekMoE + MLA 的 LLM:在更高吞吐与更低 KV 成本下提升生成与推理效率

整体仍是三段式:Vision Encoder + Adaptor + LLM,但每一段都更“面向高效高分辨率”。


9. DeepSeek-VL2 的动态分块编码:机制、公式与直观解释

9.1 核心思想:把一张大图拆成“全局 + 局部块”

对复杂页面,单次缩放到固定分辨率会丢失局部细节;而直接用超高分辨率编码又会导致 token 数和计算量爆炸。

VL2 的策略是:

  • 用一个 全局缩略图块 捕捉整体语义与布局
  • 用多个 局部 tiles 捕捉细节(OCR、表格、局部图形)

每个 tile 采用固定分辨率(例如 384×384384\times384384×384),确保视觉编码器在固定成本下处理局部细节。


9.2 候选分辨率集合:用离散网格覆盖不同宽高比

VL2 通过候选集合 CRCRCR 来选择最适合输入图像宽高比的“分块网格”:

CR={(m⋅384,n⋅384)∣m∈N,n∈N,1≤m,n,mn≤9} CR = \{(m \cdot 384, n \cdot 384) \mid m \in \mathbb{N}, n \in \mathbb{N}, 1 \leq m, n, mn \leq 9\} CR={(m384,n384)mN,nN,1m,n,mn9}

其中:

  • mmm 表示水平方向 tiles 数
  • nnn 表示垂直方向 tiles 数
  • 约束 mn≤9mn \le 9mn9 控制 tiles 总数上限(避免 token/算力爆炸)

直觉:把页面映射到最多 9 个局部块 + 1 个全局块的预算内,同时尽量贴合原始宽高比。


9.3 如何选择最合适的候选分辨率:最小填充面积原则

输入图像尺寸为 (H,W)(H, W)(H,W)。对于某个候选分辨率 (m⋅384,n⋅384)(m\cdot384, n\cdot384)(m384,n384),通常需要把原图缩放后再做 padding 才能对齐到该候选尺寸。

一个常见选择准则是最小化 padding 面积(或等价的无效区域):

(m∗,n∗)=arg⁡min⁡(m,n)∈S PadArea(H,W;m,n) (m^*, n^*) = \arg\min_{(m,n)\in \mathcal{S}} \ \text{PadArea}(H, W; m, n) (m,n)=arg(m,n)Smin PadArea(H,W;m,n)

其中 S\mathcal{S}S 表示满足 mn≤9mn \le 9mn9 的候选集合,PadArea(⋅)\text{PadArea}(\cdot)PadArea() 表示将输入图像适配到候选分辨率所需的填充面积。

示例(直观理解):
一张长条网页截图更适合 mmm 大、nnn 小(例如 3×13\times13×14×14\times14×1 一类),而不是 1×31\times31×3。最小 padding 的选择会自动偏向更贴合原宽高比的网格。


9.4 分块后 token 数为何可控:token 压缩与“像素混洗”

VL2 对每个 tile 用 SigLIP-SO400M-384 编码,得到 token 网格(例如 27×27=72927\times27=72927×27=729)。

随后通过 2×22\times22×2 的“像素混洗/重排压缩”把 token 网格从 27×2727\times2727×27 压缩到约 14×14=19614\times14=19614×14=196,显著降低后续跨模态注意力的成本。

示例:
如果不压缩,9 个局部 tile 就是 9×729=65619\times729=65619×729=6561 个 token,仅视觉侧就会非常重;压缩到 9×196=17649\times196=17649×196=1764 则更可控。


9.5 特殊 token:让 LLM “读懂”二维布局

VL2 会引入类似以下结构标记:

  • 行结束标记:<tile_newline>
  • 视图分隔符:<view_separator>(区分全局块与局部块)

其目的不是“增加信息”,而是为 LLM 提供稳定的二维结构边界,让语言模型在序列上仍能感知“这是按行/列排列的视觉块”。

最终视觉序列长度的一个表达式(概念形式)可以写为:

Nvis=210+1+m×14×(n×14+1) N_{\text{vis}} = 210 + 1 + m \times 14 \times (n \times 14 + 1) Nvis=210+1+m×14×(n×14+1)

其中:

  • 210210210 可对应全局缩略图块展开后的 token 规模(含换行标记)
  • 111 可对应 <view_separator>
  • 后一项对应 m×nm\times nm×n 个局部块按二维排布展开,并插入行末换行标记的序列长度

直观理解:
mmm 越大(更宽),序列更长但更贴合宽屏页面;nnn 越大(更高),更贴合长文档页面。约束 mn≤9mn\le9mn9 保证上界。


10. DeepSeek-VL2 的 LLM:DeepSeekMoE + MLA 的意义

VL2 的语言模型采用 DeepSeekMoE,并支持 多头潜在注意力(MLA)MoE 稀疏激活

10.1 MoE:用稀疏计算提高容量/效率比

MoE 的核心是:每个 token 只激活少量专家(而不是整网全算),从而在接近稀疏成本下获得更大的有效容量。

工程收益通常体现在:

  • 更高吞吐
  • 在相近成本下提升语言/推理能力上限

10.2 MLA:压缩 KV 缓存,提高推理效率

MLA 的直觉是:把注意力中的 Key/Value 表示压缩到潜在向量空间,从而降低 KV cache 的体积与带宽压力。对于多模态长序列(视觉 token 很多)场景,这类优化尤其关键。


11. DeepSeek-VL2 三阶段训练:与 VL 的差异点

VL2 训练同样可概括为三阶段,但“谁冻结谁解冻”的选择更强调高分辨率适配与效率:

  1. Vision-Language Alignment

    • 冻结语言模型,仅优化视觉编码器与 Adaptor
    • 目标:先把视觉侧对齐好,尤其是动态分块策略带来的新输入形态
  2. Vision-Language Pre-training

    • 解冻全部参数,全模型联合训练
    • 大规模视觉-语言 token + 纯文本 token 混合(例如 70%70\%70% 图文 + 30%30\%30% 文本的一类方案),用于提升多模态综合能力同时维持语言能力
  3. SFT

    • 指令微调到可交互对话模型
    • 监督答案与关键特殊 token,掩码提示词,混合多模态与纯文本对话数据

12. DeepSeek-VL vs DeepSeek-VL2:核心差异总结(按“问题—机制”对齐)

维度 DeepSeek-VL DeepSeek-VL2
高分辨率策略 固定 1024×10241024\times10241024×1024 + 混合编码器(语义+细节) 动态分块(tiles + 全局缩略图),自适应宽高比与分辨率
视觉编码器 SigLIP + SAM-B(混合) SigLIP-SO400M-384(多块编码) + token 压缩 + 布局标记
结构提示 主要靠融合后的序列 <tile_newline> + <view_separator> 显式建模二维布局边界
语言模型 DeepSeek-LLM(1B/7B) DeepSeekMoE(多规模)+ MLA(KV 压缩)
主要解决痛点 在 token 预算内兼顾语义与细节;提升真实世界稳健性 更强的宽高比/超高分辨率适配;更高效的多模态长序列推理

13. 用真实任务场景理解两代设计取舍

13.1 网页截图问答(长宽比极端)

  • 难点:页面很宽或很长,关键信息在角落;缩放到固定方形分辨率会把小字压没
  • VL 的优势:混合编码器能增强细节,但固定方形输入在极端宽高比上仍可能牺牲信息
  • VL2 的优势:动态分块让页面被切成局部块,角落的小字仍以 384×384384\times384384×384 的局部分辨率进入编码器,信息保真更强

13.2 PDF 表格解析(结构化 + OCR)

  • 难点:表格线与单元格内容都要读清,还要理解行列关系
  • VL 的路径:SAM-B 提供细节通道,SigLIP 提供语义通道
  • VL2 的路径:局部 tiles 保真细节,<tile_newline> 把二维结构边界显式编码进序列,帮助 LLM 在序列注意力中更好建立“行/列”概念

13.3 信息图与图表(图例、刻度、局部标注密集)

  • 难点:图例与刻度往往极小,且需要把局部读数与全局语义结合
  • VL 的优势:双路语义+细节融合能增强读图能力
  • VL2 的优势:全局缩略图提供整体语义与布局,局部 tiles 提供可读细节,二者组合更贴合“先看全局再看局部”的人类读图过程

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐