Reading

DeepSeek OCR

DeeSeek-OCR

简介

  • 当前的大型语言模型(LLMs)在处理长文本时面临显著的计算挑战,其开销随序列长度呈二次增长。本文探索一种潜在的解决方案:将视觉模态作为高效的文本信息压缩媒介。
    • 单张包含文档文本的图像,能够用显著更少的 token 表达丰富信息,相比等量的数字文本更为紧凑;这表明,通过视觉 token 进行光学压缩有望实现更高的压缩比。
    • 本文关注视觉编码器如何提升 LLM 在处理文本信息时的效率,而非人类本就擅长的基础 VQA 任务
  • 当前主流 VLM 视觉编码器的问题
    • 第一类是以 Vary 为代表的双塔(dual-tower)架构,通过并行的 SAM 编码器来提升高分辨率图像处理时的视觉词表参数规模。该方法虽然在参数量与激活内存上更可控,但也存在显著缺点:需要对图像进行两套预处理,增加了部署复杂度;同时在训练中使编码器管线的并行化变得困难。
    • 第二类是以 InternVL2.0 为代表的切片(tile-based)方法,通过将图像划分为小块并行处理,在高分辨率场景下降低激活内存。尽管这种方法能够处理极高分辨率,但由于其原生编码器分辨率通常较低(低于 512×512),会导致大图被过度切分,产生大量视觉 token。
    • 第三类是以 Qwen2-VL 为代表的自适应分辨率编码,采用 NaViT 范式,在不进行切片并行的情况下,直接以补丁(patch)分割方式处理整幅图像。该编码器可灵活应对多种分辨率,但在处理大图时面临巨大的激活内存开销(可能引发 GPU 显存溢出),且在训练中的序列打包需要极长的序列长度。过长的视觉 token 序列会同时拖慢推理阶段的 prefill 与 generation。
PixPin_2026-03-05_11-30-39.png

DeepSeek-OCR 由两个组件构成:DeepEncoder 和作为解码器的 DeepSeek3B-MoE-A570M。具体而言,DeepEncoder 作为核心引擎,在高分辨率输入下保持较低的激活量,同时实现较高的压缩率,从而确保视觉 token 的数量既最优又可控。

DeepEncoder 通过 16× 卷积压缩器将窗口注意力与全局注意力编码组件串联

当文本 token 的数量在视觉 token 的 10 倍以内(即压缩率 < 10×)时,模型可实现 97% 的解码(OCR)精度;即使在 20× 压缩率下,OCR 准确率仍可保持在约 60%。这为诸如历史长上下文压缩、LLM 记忆遗忘机制等研究方向展现出相当可观的潜力。

在 OmniDocBench 的端到端模型中以最少的视觉 token达到SOTA水平。此外,我们还为模型赋予图表、化学式、简单几何图形与自然图像的解析能力,以进一步增强其实用性。在生产中,使用 20 个节点(每个 8× A100-40G),DeepSeek-OCR 每日可为 LLM/VLM 生成 3300 万页数据。

PixPin_2026-03-05_11-33-25.png

模型结构和方法

如下图所示,DeepSeek-OCR具有一个统一的端到端VLM架构,包括编码器和解码器。编码器(即DeepEncoder)负责提取图像特征、标记以及压缩视觉表示。解码器用于根据图像标记和提示生成所需的结果。DeepEncoder参数量约为380M,主要由80M的SAM-base和300M的CLIP-large串联组成。解码器采用3B MoE架构,激活参数量为570M。

PixPin_2026-03-06_10-14-33.png

DeepEncoder

为了探索上下文光压缩的可行性,我们需要一个具有以下特征的视觉编码器:

  1. 能够处理高分辨率;
  2. 在高分辨率下激活低;
  3. 视觉令牌数量少;
  4. 支持多分辨率输入;
  5. 参数量适中。

然而,当前的开放源编码器无法完全满足所有这些条件。因此,作者设计了一个新颖的视觉编码器,命名为DeepEncoder。

DeepEncoder 的架构

DeepEncoder 主要由两部分组成:

  • 以窗口注意力(window attention)为主的视觉感知特征提取组件;
  • 以稠密全局注意力(dense global attention)为主的视觉知识特征提取组件。

为继承既有预训练收益,我们分别采用 SAM-base(patch 大小 16) 与 CLIP-large 作为两部分的主干架构。对于 CLIP,由于其输入不再是原始图像而是上一阶段输出的 token,我们移除了第一层 patch embedding。在两组件之间,借鉴 Vary,使用 2 层卷积模块对视觉 token 做 16× 下采样:每层卷积核大小 3、stride=2、padding=1,通道数由 256 增至 1024

例如,若输入一张 \(1024×1024\) 的图像,DeepEncoder 会将其切分为 \(1024/16 × 1024/16 = 4096 \)个 patch token。由于编码器前半部分以窗口注意力为主且仅 80M 参数,激活量可接受;在进入全局注意力前,4096 个 token 经过压缩模块变为 \(4096/16 = 256\),从而使整体激活内存保持可控。

多分辨率支持

设有一幅包含 1000 个光学字符的图像,我们希望测试解码所需的最少视觉 token。这要求模型支持可变数量的视觉 token,即 DeepEncoder 必须支持多分辨率。我们通过位置编码的动态插值来满足这一需求,并设计了若干分辨率模式进行混合训练,使单个 DeepSeek-OCR 模型具备多分辨率能力。

PixPin_2026-03-06_10-50-14.png

如上图所示,DeepEncoder 主要支持两大输入模式:原生分辨率(native resolution)与动态分辨率(dynamic resolution),各自包含多个子模式。

  1. 原生分辨率含四个子模式:Tiny、Small、Base、Large,其分辨率与 token 数分别为:
    • 512×512(64),
    • 640×640(100),
    • 1024×1024(256),
    • 1280×1280(400)。

由于 Tiny 与 Small 分辨率较小,为避免浪费视觉 token,直接按原图比例缩放;而 Base 与 Large 为了尽量保留原始长宽比,对图像进行填充(padding)至对应尺寸。填充后有效视觉 token少于名义 token,计算公式为:

\[N_{\text{valid}} = \left\lceil N_{\text{actual}} \times \left[1 - \frac{\max(w,h)-\min(w,h)}{\max(w,h)}\right] \right\rceil \tag{1} \]

其中 \((w,h) \)为原始输入图像的宽与高。

  1. 动态分辨率可由两种原生分辨率组合而成。

例:“高达”模式(Gundam)由 \(n \times 640\times 640\) 的局部视图(tiles)与 \(1024×1024 \)的全局视图组成,切片方法参考 InternVL2.0。支持动态分辨率主要出于应用层面考虑,尤其面向超高分辨率输入(如报纸版面)。切片相当于一种二次窗口注意力,能进一步降低激活内存。需注意:由于原生分辨率较大,在动态分辨率下图像不会被过度切碎tile 数控制在 2–9)。 在“高达”模式下,DeepEncoder 的视觉 token 数为:\(n \times 100 + 256\),其中 (\(n\)) 为 tile 数。若图像的宽与高均小于 640,则设 (\(n=0\)),即 Gundam 退化为 Base 模式

Gundam 与四种原生模式联合训练,实现一模多能的目标。 Gundam-master 模式1024×1024 局部视图 + 1280×1280 全局视图)则在已训练完成的 DeepSeek-OCR 上继续训练得到,主要是出于负载均衡考虑:其分辨率过大,若与其他模式同时训练将拖慢整体训练速度。

PixPin_2026-03-06_11-01-38.png

MoE 解码器

我们的解码器采用 DeepSeekMoE,具体为 DeepSeek-3B-MoE。推理阶段,模型在 64 个路由专家中激活 6 个,外加 2 个共享专家,合计约 5.7 亿 激活参数。3B DeepSeekMoE 非常适合以特定领域为中心(本文为 OCR)的 VLM 研究:它具备 3B 模型的表达能力,同时享有约 5 亿参数小模型的推理效率

解码器从 DeepEncoder 压缩后的潜在视觉 token 重构原始文本表征:

\[f_{\text{dec}}:\ \mathbb{R}^{n \times d_{\text{latent}}}\ \rightarrow\ \mathbb{R}^{N \times d_{\text{text}}};\ \ \hat{X}=f_{\text{dec}}(Z),\ \text{其中 } n \le N \tag{2} \]

其中 \(Z \in \mathbb{R}^{n \times d_{\text{latent}}}\) 为 DeepEncoder 的压缩潜在(视觉)token\(\hat{X} \in \mathbb{R}^{N \times d_{\text{text}}}\) 为重构后的文本表征。函数 \(f_{\text{dec}}\) 表示一个非线性映射,可通过 OCR 风格训练紧凑型语言模型有效学习。合理推测,若进行定制化的预训练优化,LLM 将能更自然地整合此类能力。

数据引擎

我们为 DeepSeek-OCR 构建了复杂而多样的训练数据,包括:OCR 1.0 数据(以传统 OCR 任务为主,如场景图像 OCR 和文档 OCR);OCR 2.0 数据(以复杂人工图像的解析任务为主,如常见图表、化学式、平面几何解析数据);以及通用视觉数据(主要用于为 DeepSeek-OCR 注入一定的通用图像理解能力,并保留通用视觉接口)。

  • OCR 1.0 数据

文档数据是 DeepSeek-OCR 的重中之重。我们从互联网收集了 3000 万页涵盖约 100 种语言的多样化 PDF 数据,其中中文与英文约 2500 万页,其他语言约 500 万页。针对这批数据,我们构建了两类真值(ground truth):粗标注细标注

    • 粗标注:使用 fitz 直接从完整数据集中抽取,目标是教会模型识别光学文本,尤其是小语种
    • 细标注:包含中文与英文各 200 万页,利用先进的版面模型(如 PP-DocLayout )与 OCR 模型(如 MinerU 、GOT-OCR2.0 )生成检测—识别交错的数据。 对小语种而言,在检测部分我们发现版面模型具有一定的泛化能力;在识别部分,我们用 fitz 制作小块(patch)数据来训练一个 GOT-OCR2.0,随后在布局处理后用该模型为小块打标,通过“模型飞轮”共生产 60 万条数据样本。训练 DeepSeek-OCR 时,通过不同的提示词(prompts)区分粗标与细标。细标图文对的真值示例如下图。
PixPin_2026-03-06_11-04-18.png

此外,我们还收集了 300 万份 Word 数据,通过直接抽取内容构建无版面的高质量图文对,这类数据主要有利于公式与 HTML 表格。并选取部分开源数据作为补充。 对于自然场景 OCR,模型主要支持中英双语。图像来源于 LAION与 Wukong ,使用 PaddleOCR进行标注,中英各 1000 万条。与文档 OCR 类似,自然场景 OCR 也可通过提示词控制是否输出检测框

  • OCR 2.0 数据

沿用 GOT-OCR2.0的定义,我们将图表、化学式、平面几何解析数据统称为 OCR 2.0 数据。

    • 图表数据:参考 OneChart,使用 pyecharts 与 matplotlib 渲染 1000 万张图,主要涵盖折线、柱状、饼图与复合图。我们将图表解析定义为图像 → HTML 表格的转换任务(见下图(a))。
PixPin_2026-03-06_11-04-45.png


    • 化学式数据:从 PubChem 获取 SMILES 文本,用 RDKit 渲染为图像,构建 500 万对图文样本。
    • 平面几何数据:参考 Slow Perception 生成。具体而言,以感知标尺大小为 4 对线段建模。为增强渲染多样性,我们引入几何平移不变的数据增强:将同一几何图在原图中平移,对应于在坐标系中心位置绘制的相同真值。基于此共构建 100 万条平面几何解析数据(见上图 6(b))。
  • 通用视觉数据

DeepEncoder 能继承 CLIP 的预训练收益,且参数量足以容纳通用视觉知识。因此我们也为 DeepSeek-OCR 准备了相应的通用视觉数据。参考 DeepSeek-VL2,我们生成用于图像字幕(caption)检测(detection)指向/定位(grounding)等任务的数据。需注意,DeepSeek-OCR 不是通用 VLM,这部分数据只占总量的 20%。加入这类数据主要是为了保留通用视觉接口,方便对本模型与通用视觉任务感兴趣的研究者在未来继续推进相关工作。

  • 纯文本数据

为确保模型的语言能力,我们引入了 10% 的内部纯文本预训练数据,所有样本均处理为 8192 tokens(这也是 DeepSeek-OCR 的序列长度)。 总结:训练 DeepSeek-OCR 时,数据配比为:OCR 数据 70%通用视觉数据 20%纯文本数据 10%

训练流程

我们的训练流程非常简洁,主要包含两个阶段: a) 单独训练 DeepEncoder; b) 训练 DeepSeek-OCR。 需要说明的是,Gundam-master 模式是基于已训练好的 DeepSeek-OCR 模型,使用 600 万条采样数据继续训练得到的。由于其训练协议与其他模式相同,后文不再赘述。

  • 训练 DeepEncoder

参考 Vary,我们采用一个小型语言模型,并使用下一词预测框架训练 DeepEncoder。在该阶段,我们使用上述全部 OCR 1.0 与 2.0 数据,以及从 LAION采样的 1 亿条通用数据。所有数据训练 2 个 epoch批量大小 1280,优化器为 AdamW余弦退火调度器,学习率 5e-5,训练序列长度 4096

  • 训练 DeepSeek-OCR

当 DeepEncoder 就绪后,我们使用第 3.4 节的数据在 HAI-LLM 平台上训练 DeepSeek-OCR。 整个模型使用流水线并行(PP),分为 4 段DeepEncoder 占 2 段解码器占 2 段

    • 对于 DeepEncoder:将 SAM 与压缩器视为视觉分词器(vision tokenizer),放在 PP0 并冻结参数;将 CLIP 部分视为输入嵌入层,放在 PP1 并解冻进行训练。
    • 对于语言模型DeepSeek3B-MoE 共 12 层,在 PP2 与 PP3 各放 6 层

我们使用 20 个节点(每个节点 8× A100-40G)进行训练,数据并行(DP)= 40全局 batch size = 640。优化器为 AdamW分步(step-based)学习率调度器,初始学习率 3e-5

    • 纯文本数据时,训练速度约 900 亿 tokens/天
    • 多模态数据时,训练速度约 700 亿 tokens/天

DeepSeek-OCR 2

DeepSeek-OCR 2 是继原始 DeepSeek-OCR 之后的一次重大版本更新。初代模型通过将文本渲染成视觉图像并压缩到视觉 token,有效解决了大语言模型在处理超长文本时算力和内存消耗激增的问题。

DeepSeek-OCR 2 提出了一种名为 Visual Causal Flow(视觉因果流) 的新颖编码范式,旨在解决传统多模态模型中视觉 Token 扫描顺序(光栅扫描)与人类视觉认知顺序不匹配的问题。核心改进在于引入了 DeepEncoder V2,它使用一个参数量较小的 LLM(Qwen2-0.5B)作为视觉编码器,并通过通过定制化的注意力掩码(Attention Mask),结合了 ViT 式的双向注意力和 LLM 式的因果注意力。模型引入了可学习的 Causal Flow Queries,在编码阶段即对视觉信息进行语义重排序,实现了从 2D 空间结构到 1D 逻辑序列的软对齐。实验表明,该架构在仅使用 256-1120 个视觉 Token 的情况下,在文档理解基准 OmniDocBench v1.5 上取得了优于现有模型的性能,同时显著降低了计算开销。

模型结构和算法

DeepSeek-OCR 2 的整体架构主要由 DeepEncoder V2 和 DeepSeek-MoE Decoder 两部分组成。其中,DeepEncoder V2 是本次升级的核心。下图为模型的整体结构图

PixPin_2026-03-06_14-22-54.png

视觉分词器

DeepEncoder V2 沿用了前代 DeepSeek-OCR 的分词策略,采用了一个参数量约为 80M 的混合架构:SAM-base + 卷积层

  • 基础骨干:Segment Anything Model (SAM-base)。
  • 下采样:通过两层卷积层进一步压缩特征。
  • 压缩率:实现了相对于原始 Patch 的 \(16\times\) 压缩。

设计考量: 尽管目前的趋势是直接使用简单的 Patch Embedding 以保留更多细节,但作者保留这种压缩式 Tokenizer 是出于计算效率的考量。通过窗口注意力(Window Attention)机制,SAM-base 在保持较低参数量(~80M,与 LLM 的 Text Embedding 层相当)的同时,大幅降低了后续全局注意力模块的序列长度和显存占用。这种设计将进入编码器主体的 Token 数量控制在一个非常经济的范围内。

LLM as Vision Encoder:架构的统一化

这是 DeepEncoder V2 最显著的创新点。作者移除了前代中使用的 CLIP 组件,取而代之的是一个LLM 风格的架构(具体实例化为 Qwen2-0.5B)。

这一改动并非简单的模型替换,而是涉及对 Transformer 计算模式的根本性调整。在传统 VLM 中,Encoder 通常是双向注意力(如 BERT/ViT),而 Decoder 是因果注意力(如 GPT)。DeepEncoder V2 试图在一个 Encoder 内部同时融合这两者的特性

为什么选择 LLM 架构作为视觉编码器?

  1. 参数效率:Qwen2-0.5B (500M) 与 ViT-L (300M) 参数量级相当,但在大规模语言数据上预训练过的架构可能具有更好的通用序列建模能力。
  2. 统一模态的潜力:使用标准的 Transformer Decoder Block 作为编码器,为未来统一多模态(Omni-modal)编码打下基础。

视觉因果流(Visual Causal Flow)与注意力掩码设计

为了实现“视觉 Token 的语义重排序”,DeepEncoder V2 引入了一组可学习的查询向量,称为 Causal Flow Queries。模型在输入序列中将这些 Query 拼接在视觉 Token 之后。

为了让这组 Query 具备重排序能力,作者设计了一种特殊的注意力掩码(Attention Mask)。设 \(V\) 为视觉 Token 序列,\(Q\) 为 Causal Flow Query 序列。

这么设计其实就是引入了一个并行的视觉特征提取器,其中,视觉token利用双向注意力来保留CLIP的全局建模能力,而新引入的因果流查询采用因果注意力通过query和视觉token之间的数量相等,并基于因果attention的设计对视觉特征进行语义排序和提炼。最后,仅将因果查询输出输入到LLM解码器。

注意力掩码 \(M\) 由两个区域拼接而成:

\[M = \begin{bmatrix} \mathbf{1}_{m \times m} & \mathbf{0}_{m \times n} \\ \mathbf{1}_{n \times m} & \text{LowerTri}(n) \end{bmatrix} \\\]

其中:

  • \(m\) 是视觉 Token 的数量。
  • \(n\) 是 Causal Flow Query 的数量。
  • \(\mathbf{1}\) 表示全 1 矩阵(允许注意力)。
  • \(\mathbf{0}\) 表示全 0 矩阵(禁止注意力)。
  • \(\text{LowerTri}(n)\) 是一个 \(n \times n\) 的下三角矩阵(因果掩码)。
PixPin_2026-03-06_14-28-12.png

掩码的物理含义

  1. 左上区域 (\(m \times m\)) - 视觉内部的双向交互: 原始视觉 Token 之间保持全连接的双向注意力(Bidirectional Attention)。这保留了类似 ViT 的全局感受野,使得每个视觉 Patch 都能感知到整图的上下文信息。
  2. 右上区域 (\(m \times n\)) - 视觉对查询的不可见性: 视觉 Token 无法看到后序的 Query Token。这保证了视觉特征提取的纯粹性,不被特定的查询任务干扰。
  3. 左下区域 (\(n \times m\)) - 查询对视觉的全局感知: 所有的 Query Token 都可以看到所有的视觉 Token。这是信息提取的关键步骤,类似于 Cross-Attention,但在同一个 Transformer Block 中通过 Mask 实现。
  4. 右下区域 (\(n \times n\)) - 查询内部的因果交互: 这是核心创新点。 Query Token 之间采用因果注意力(Causal Attention)。即第 \(i\) 个 Query 只能看到第 \(i\) 个及之前的 Query,而不能看到第 \(i+1\) 个。

这种设计构建了一个两阶段的级联因果推理系统:

  1. 第一阶段(Encoder 内部):Causal Flow Queries 通过因果注意力机制,逐步从双向的视觉特征中提取信息。由于 Query 是可学习且有序的(Causal),它们可以学习按照语义逻辑(而非空间坐标)来“读取”图像。例如,第一个 Query 可能关注文档标题,第二个关注第一段,第三个关注右侧插图的说明文字。
  2. 第二阶段(LLM Decoder):经过重排序的 Query 输出(即编码后的视觉表征)被送入 LLM Decoder。由于这些表征已经具备了因果逻辑,LLM 可以更自然地进行自回归生成。

作者在论文中提到,曾尝试使用 mBART 风格的 Encoder-Decoder 交叉注意力架构(即 Query 在 Decoder 中通过 Cross-Attention 访问 Encoder 输出),但导致模型不收敛。作者假设这是因为将视觉 Token 隔离在单独的 Encoder 中导致交互不足。相比之下,DeepEncoder V2 的 Prefix-Concatenation(前缀拼接)模式使得视觉 Token 在所有层中都保持活跃,促进了更深层的信息交换。

Token 预算与多裁剪策略 (Multi-crop Strategy)

为了处理高分辨率文档,模型采用了多裁剪策略。Token 数量的计算公式如下:

\[\text{Total Tokens} = k \times 144 + 256 \\\]

其中:

  • Global View:固定分辨率 \(1024 \times 1024\),产生 \(16^2 = 256\) 个 Query Token。
  • Local View:裁剪分辨率 \(768 \times 768\),每个裁剪产生 \(12^2 = 144\) 个 Query Token。
  • \(k\) 是裁剪数量,范围从 0 到 6。

因此,输入 LLM 的视觉 Token 总数在 256 到 1120 之间。

PixPin_2026-03-06_14-34-20.png

对比分析

  • DeepSeek-OCR 2:最大 1120 Token。
  • OmniDocBench 中的其他 SOTA(如 Qwen2.5-VL-72B, InternVL3):通常使用 > 6000 个视觉 Token。

DeepSeek-OCR 2 以极低的 Token 预算实现了 SOTA 性能,这得益于 DeepEncoder V2 高效的信息压缩与重排序能力。它证明了“语义有序的少量 Token”可能比“空间有序的大量 Token”包含更高的有效信息熵

解码器:DeepSeek-MoE

解码器部分未做重大改动,沿用了 DeepSeek-OCR 的配置。它是一个 3B 参数的 Mixture-of-Experts (MoE) 模型,激活参数量约为 500M。

数学表达为:

\[O = \mathcal{D} (\pi_Q (\mathcal{T}^L (\mathcal{E}(I) \oplus \mathbf{Q}_0; \mathbf{M}))) \\\]

其中:

  • \(\mathcal{E}(I)\) 是 Vision Tokenizer 输出。
  • \(\mathbf{Q}_0\) 是可学习的初始 Query Embedding。
  • \(\mathcal{T}^L\) 是带有掩码 \(\mathbf{M}\) 的 Transformer 层(DeepEncoder V2)。
  • \(\pi_Q\) 是投影操作,只提取后 \(n\) 个 Query Token 的输出(视觉 Token 被丢弃,仅作为上下文)。
  • \(\mathcal{D}\) 是 DeepSeek-MoE Decoder。

值得注意的是,只有 Causal Flow Queries 的输出被送入 LLM Decoder。原始的视觉 Token 在 Encoder 结束后即完成了使命。这强制 Encoder 必须将所有关键视觉信息“蒸馏”到 Query 序列中。

训练策略与流程

为了让这个新颖的架构有效收敛,作者采用了三阶段训练管线。

训练数据

数据主要由 OCR 1.0/2.0 数据和通用视觉数据组成。针对文档布局的多样性,作者优化了采样策略,按 3:1:1 的比例平衡了纯文本、公式和表格页面。

训练阶段

  1. 阶段一:Encoder 预训练 (Encoder Pretraining)
    • 目标:让 Vision Tokenizer 和 LLM-style Encoder 获得基础的特征提取和压缩能力。
    • 配置:连接一个轻量级 Decoder(202M)。初始化自 SAM-base 和 Qwen2-0.5B。
    • 数据:100M 图文对。
    • 细节:仅保留 Encoder 参数进入下一阶段。
  1. 阶段二:查询增强 (Query Enhancement)
    • 目标:强化 Encoder 的 Token 重排序能力,并提升视觉知识的压缩质量。
    • 配置:连接 DeepSeek-3B-MoE Decoder。冻结 Vision Tokenizer(SAM 部分),联合优化 LLM-style Encoder 和 Decoder。
    • 策略:引入多裁剪策略(Multi-crop),统一分辨率输入。
  1. 阶段三:LLM 继续训练 (Continue-training LLM)
    • 目标:让 LLM Decoder 更好地适应 Encoder 输出的“重排序”特征,并专门化处理 OCR 任务。
    • 配置冻结 DeepEncoder V2 的所有参数,仅更新 DeepSeek-LLM 参数。
    • 效果:此阶段大幅提升了训练吞吐量(因为 Encoder 被冻结,不需要反向传播),同时进一步降低了 Edit Distance。

实验评估

实验主要在 OmniDocBench v1.5 上进行,这是一个包含 1355 张文档图像的综合基准,涵盖杂志、论文、报告等多种布局。

PixPin_2026-03-06_14-36-49.png
  • 总体性能:DeepSeek-OCR 2 达到了 91.09% 的整体得分,相较于 Baseline(DeepSeek-OCR 1)提升了 3.73%。
  • 阅读顺序(R-order):这是衡量模型是否理解文档逻辑结构的关键指标。DeepSeek-OCR 2 的编辑距离(Edit Distance)从 0.085 降至 0.057。这直接验证了 Causal Flow Query 在处理语义顺序上的有效性。
  • 效率对比
    • DeepSeek-OCR 2 (1120 tokens): 91.09%
    • Qwen2.5-VL-72B (>6000 tokens): 87.02%
    • InternVL3.5-241B (>7000 tokens): 82.67% 此对比极其强烈地展示了架构优化的力量。在视觉 Token 数量减少 5-6 倍的情况下,性能依然领先。

讨论与分析

传统的 VLM 实际上是将 2D 图像强行降维为 1D 序列,然后交给 1D 的 LLM 处理。这中间丢失了大量的拓扑信息。 DeepSeek-OCR 2 的尝试可以被视为一种 "Soft 2D-to-1D Alignment"(软性 2D 到 1D 对齐)。它没有试图去修改 LLM 的注意力机制来适应 2D(例如 2D-RoPE),而是通过一个可学习的 Encoder 将 2D 信息“翻译”成符合 LLM 偏好的 1D 因果流。

  • DETR:DETR 引入了并行的 Object Queries 用于检测。DeepSeek-OCR 2 的 Causal Queries 可以看作是 DETR Queries 的自回归变体,不仅关注图像,还关注“阅读顺序”。
  • BLIP-2 (Q-Former) :Q-Former 使用 Cross-Attention 压缩视觉特征。DeepSeek-OCR 2 采用了类似的压缩思想,但将其嵌入在一个 Decoder-only 的架构中,并通过 Causal Mask 赋予了时序逻辑。
PixPin_2026-03-06_14-37-18.png

局限性

尽管效果显著,但这种“双重因果”架构(Encoder Causal + Decoder Causal)在处理需要多次回看(Re-examination)多跳推理的任务时可能面临挑战。因为一旦 Encoder 完成了重排序,输出的序列就是固定的。如果 Encoder 使得某些信息在序列中“过早”或“过晚”出现,Decoder 可能无法有效利用。这就对 Encoder 的 Query 学习能力提出了极高的要求。

Reference

DeepSeek-OCR 2: Visual Causal Flow 技术报告解读