Files
note_sync/大模型/deepseek/05-多模态/05-DeepSeek-OCR-2510.18234_abstract.md
T

144 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-OCR:上下文的光学压缩
> **原文标题**:DeepSeek-OCR: Contexts Optical Compression
> **arXiv**:[2510.18234](https://arxiv.org/abs/2510.18234) | **发布**:2025-10-21
> **作者/机构**:Haoran Wei、Yaofeng Sun、Yukun Li(DeepSeek-AI,深度求索)
> **原文 PDF**:[05-DeepSeek-OCR-2510.18234.pdf](./05-DeepSeek-OCR-2510.18234.pdf)
## 一、摘要(全文翻译)
我们提出 DeepSeek-OCR,作为对「通过光学二维映射(optical 2D mapping)压缩长上下文」这一可行性的初步研究。DeepSeek-OCR 由两个组件构成:DeepEncoder,以及作为解码器的 DeepSeek3B-MoE-A570M。具体而言,DeepEncoder 充当核心引擎,其设计目标是在高分辨率输入下保持低激活(activation),同时实现高压缩比,从而确保视觉 token 数量既最优又可控。实验表明,当文本 token 数量不超过视觉 token 数量的 10 倍(即压缩比 < 10×)时,模型可以达到 97% 的解码(OCR)精度。即使在 20× 的压缩比下,OCR 精度仍保持在约 60%。这对历史长上下文压缩以及 LLM 中的记忆遗忘机制等研究领域展现出相当大的前景。除此之外,DeepSeek-OCR 还表现出很高的实用价值。在 OmniDocBench 上,它仅使用 100 个视觉 token 就超过了 GOT-OCR2.0(每页 256 token),并在使用不到 800 个视觉 token 的情况下超过了 MinerU2.0(平均每页 6000+ token)。在生产环境中,DeepSeek-OCR 可以以每天 20 万页以上的规模为 LLM/VLM 生成训练数据(单张 A100-40G)。代码与模型权重公开于 http://github.com/deepseek-ai/DeepSeek-OCR 。
## 二、核心贡献
1. **视觉-文本 token 压缩比的量化边界**:首次回答「解码 N 个文本 token 至少需要多少视觉 token」,在 Fox 上给出 9–10× 压缩时解码精度 96%+、10–12× 约 90%、20× 约 60%(图 1(a))。
2. **提出 DeepEncoder 架构**:用 16× 卷积压缩器串联窗口注意力与全局注意力组件,让窗口注意力承担海量视觉 token、压缩器在进入稠密全局注意力前先削减 token 数,兼顾高分辨率、低激活与极少视觉 token。
3. **构建 DeepSeek-OCR**:DeepEncoder + DeepSeek3B-MoE(激活 570M),在 OmniDocBench 的端到端模型中性能最优且视觉 token 最少(图 1(b)),并具备图表、化学式、几何图形与自然图像的解析能力。
4. **生产级数据引擎**:单张 A100-40G 每天可生成 20 万页以上数据;20 个节点(每节点 8×A100-40G)每天可生产 3300 万页。
5. **长上下文新视角**:论证视觉模态可作文本信息的低成本压缩媒介(多模态系统本就需视觉编码器,故无额外开销),并设想「历史文本渲染成图→逐步缩放更老的图」的多级压缩以模拟生物记忆的遗忘曲线。
## 三、方法与技术要点
### 3.1 总体架构
DeepSeek-OCR 采用统一的端到端 VLM 架构:编码器(DeepEncoder)负责提取图像特征、将视觉表示 token 化并压缩;解码器依据图像 token 与提示词生成结果。DeepEncoder 约 380M 参数,由 80M 的 SAM-base 与 300M 的 CLIP-large 串联构成;解码器为 3B 的 DeepSeekMoE,激活参数 570M。因任务是对光学压缩的初步可行性验证,作者刻意把编码器做轻、把压缩比推到极限。
### 3.2 DeepEncoder:为什么需要新编码器
作者先列出理想编码器必备的五个特征:能处理高分辨率、高分辨率下激活低、视觉 token 少、支持多分辨率输入、参数量适中。第 2.1 节表明现有开源编码器无法同时满足:Vary 的双塔结构需双重图像预处理、难以流水线并行;InternVL2.0 的切块方案降低激活,却因原生分辨率偏低使大图被过度切碎、视觉 token 暴增;Qwen2-VL 的自适应分辨率虽灵活,却因大图激活显存过大可能 OOM。故需自研编码器。
**架构设计(图 3)**:DeepEncoder 由「以窗口注意力为主的感知组件」与「稠密全局注意力的知识组件」构成,为继承预训练收益分别采用 SAM-base(patch size 16)与 CLIP-large;关键改动是**去掉 CLIP 的第一个 patch embedding 层**,因其输入不再是图像,而是上一段流程输出的 token。两组件之间借鉴 Vary,用 **2 层卷积做 16× 下采样**(kernel 3、stride 2、padding 1,通道 256→1024)。以 1024×1024 输入为例:
$$
\frac{1024}{16}\times\frac{1024}{16}=4096\ \text{patch tokens},\qquad \frac{4096}{16}=256\ \text{tokens after compression}
$$
前半段由窗口注意力主导且仅 80M,激活可接受;4096 个 token 在进入全局注意力前先压成 256 个,整体激活显存因之可控。这就是「先感知、后压缩、再全局建模」的分工:窗口注意力以低成本换细节,压缩器把成本峰值挡在稠密全局注意力之外。
### 3.3 多分辨率支持
要回答「1000 个光学字符需要多少视觉 token」,模型必须支持可变视觉 token 数,故 DeepEncoder 需支持多分辨率:方式是**位置编码的动态插值**,并让多种分辨率模式同时训练(表 1)。
| 模式 | 原生分辨率 | 视觉 token 数 | 处理方式 |
|---|---|---|---|
| Tiny | 512×512 | 64 | resize |
| Small | 640×640 | 100 | resize |
| Base | 1024×1024 | 256 | padding |
| Large | 1280×1280 | 400 | padding |
| Gundam(动态) | n×640×640 + 1024×1024 | n×100+256 | resize + padding |
| Gundam-M(动态) | n×1024×1024 + 1280×1280 | n×256+400 | resize + padding |
Tiny/Small 分辨率小,直接按原形状缩放以免浪费 token;Base/Large 为保持长宽比采用填充,填充后有效视觉 token 少于实际数量:
$$
N_{valid}=\left\lceil N_{actual}\times\left[1-\frac{\max(w,h)-\min(w,h)}{\max(w,h)}\right]\right\rceil \tag{1}
$$
动态分辨率由两种原生分辨率组合,切块沿用 InternVL2.0。Gundam 由 n 个 640×640 局部视图(tile)加一个 1024×1024 全局视图构成,动机是应用需求(尤其报纸这类超高分辨率输入)——切块相当于「二级窗口注意力」,可进一步压低激活;因原生分辨率较大,图像不会被过度切碎(tile 数 2–9)。宽高均小于 640 时 $n=0$,Gundam 退化为 Base。Gundam-M 则由已训练模型继续训练 6M 采样数据得到,主要为负载均衡(其分辨率过大,混合训练会拖慢速度)。
### 3.4 MoE 解码器
解码器采用 DeepSeekMoE(DeepSeek-3B-MoE):推理时从 64 个路由专家中激活 6 个,另加 2 个共享专家,激活参数约 570M。作者认为它既有 3B 的表达能力、又享有 500M 小模型的推理效率,尤其适合以领域为中心的 VLM 研究。解码即从压缩潜变量重建文本表示:
$$
f_{\text{dec}}:\mathbb{R}^{n\times d_{\text{latent}}}\rightarrow\mathbb{R}^{N\times d_{\text{text}}},\qquad \hat{\mathbf{X}}=f_{\text{dec}}(\mathbf{Z})\quad\text{where }n\le N \tag{2}
$$
其中 $\mathbf{Z}$ 为 DeepEncoder 输出的压缩潜(视觉)token,$\hat{\mathbf{X}}$ 为重建文本表示。作者指出这是紧致语言模型可通过 OCR 式训练学会的非线性映射,并推测 LLM 经专门预训练优化能更自然地集成该能力。
### 3.5 数据引擎与训练流程
数据分四类,配比为 **OCR 70%、通用视觉 20%、纯文本 10%**。
- **OCR 1.0 数据**:收集 3000 万页 PDF、覆盖约 100 种语言(中英约 2500 万、其它 500 万)。粗标注用 `fitz` 直接抽取,用于教模型识别光学文本(尤其小语种);精标注中英各 200 万页,用 PP-DocLayout 等布局模型与 MinerU、GOT-OCR2.0 构建检测-识别交错数据,以不同提示词与粗标注区分;小语种先用小块数据训练一个 GOT-OCR2.0 再标注布局处理后的小块,以模型飞轮产出 60 万样本。另收集 300 万 Word 数据(提升公式与 HTML 表格能力)与 LAION/Wukong 来源、PaddleOCR 标注的中英场景 OCR 各 1000 万。
- **OCR 2.0 数据**:图表参照 OneChart 渲染 1000 万张图,解析目标定为**图像到 HTML 表格的转换**(比字典格式省 token);化学式以 PubChem 的 SMILES 经 RDKit 渲染成 500 万图文对;平面几何沿 Slow Perception 加平移不变增广,共 100 万条。
- **通用视觉数据**:参照 DeepSeek-VL2 生成 caption、detection、grounding 数据,仅占 20%,只为保留通用视觉接口。
- **纯文本数据**:占 10%,统一为 8192 token 长度。
**训练分两阶段**。阶段一独立训练 DeepEncoder:仿 Vary 以紧致语言模型做下一 token 预测,数据为全部 OCR 1.0/2.0 加 LAION 采样的 1 亿通用数据,训练 2 epoch、batch size 1280、AdamW + 余弦退火、学习率 5e-5。阶段二在 HAI-LLM 平台训练 DeepSeek-OCR:4 段流水线并行——SAM 与压缩器作为「视觉分词器」置于 PP0 并冻结,CLIP 视为输入嵌入层置于 PP1 且可训练,12 层 MoE 每 6 层置于 PP2/PP3;20 节点(每节点 8×A100-40G)、DP 40、全局 batch 640、AdamW + step 调度器、初始学习率 3e-5;纯文本 90B token/天,多模态 70B token/天。
## 四、主要实验结果
### 4.1 视觉-文本压缩研究(Fox 基准)
取 Fox 英文文档部分,用 DeepSeek-OCR 的分词器(词表约 129k)对 ground truth 分词,挑选 600–1300 文本 token 的文档共 100 页,仅测 Tiny(64 token)与 Small(100 token)模式,提示词为无布局的 `"<image>\nFree OCR."`。
| 文本 token 区间 | 视觉 token=64 精度 | 压缩比 | 视觉 token=100 精度 | 压缩比 | 页数 |
|---|---|---|---|---|---|
| 600–700 | 96.5% | 10.5× | 98.5% | 6.7× | 7 |
| 700–800 | 93.8% | 11.8× | 97.3% | 7.5× | 28 |
| 800–900 | 83.8% | 13.2× | 96.8% | 8.5× | 28 |
| 900–1000 | 85.9% | 15.1× | 96.8% | 9.7× | 14 |
| 1000–1100 | 79.3% | 16.5× | 91.5% | 10.6× | 11 |
| 1100–1200 | 76.4% | 17.7× | 89.8% | 11.3× | 8 |
| 1200–1300 | 59.1% | 19.7× | 87.1% | 12.6× | 4 |
10× 压缩比以内解码精度可达约 97%,作者认为未来有望通过文生图实现接近 10× 的无损上下文压缩。超过 10× 后性能下降,原因有二:长文档布局更复杂;长文本在 512×512 或 640×640 下变模糊——前者可把文本渲染到单一布局页面解决,后者被认为将演化为「遗忘机制」的特性。压缩近 20× 时精度仍接近 60%;且输出格式无法与 Fox 完全对齐,实际性能应略高。
### 4.2 OCR 实际性能(OmniDocBench)
表内指标均为编辑距离(越小越好),括号中为按公式 (1) 计算的有效视觉 token 数。
| 基准 / 任务 | 本模型 | 对比对象 | 说明 |
|---|---|---|---|
| OmniDocBench overall 编辑距离(英文 / 中文) | Small,100 token:0.221 / 0.284 | GOT-OCR2.0,256 token:0.287 / 0.411 | 仅用 100 token 即超过 GOT-OCR2.0 |
| 同上 | Large,400(285) token:0.138 / 0.208 | MinerU2.0,6790 token:0.133 / 0.238;dots.ocr†200dpi,5545 token:0.125 / 0.16;Gemini2.5-Pro:0.148 / 0.212 | 400 token 时达到与该基准 SOTA 相当的水平(英文 0.138 接近 MinerU2.0 的 0.133,中文 0.208 优于其 0.238) |
| 同上 | Gundam,795 token:0.127 / 0.181 | MinerU2.0,6790 token:0.133 / 0.238 | 用不到 800 个视觉 token 超过需要近 7000 token 的 MinerU2.0 |
| 同上 | Gundam-M†200dpi,1853 token:0.123 / 0.157 | dots.ocr†200dpi,5545 token:0.125 / 0.16 | 本文最佳配置 |
| 同上(弱配置对照) | Tiny,64 token:0.386 / 0.361;Base,256(182) token:0.137 / 0.24 | Dolphin:0.356 / 0.44;MinerU-2.1.1:0.162 / 0.244 | Tiny 模式接近传统流水线模型 Dolphin |
按文档类别的编辑距离(表 4)显示压缩边界有强烈的类别依赖:幻灯片只需 64 个视觉 token(Tiny 0.116、Small 0.111、Base 0.08);Book/Report 类仅需 100 个(Small 分别为 0.085 / 0.079);报纸则差异悬殊——Tiny 0.94、Small 0.744、Base 0.645、Large 0.353,必须用 Gundam(0.122)乃至 Gundam-M(0.099)。这与 4.1 节一致:这些文档的文本 token 多在 1000 以内、压缩比不超 10×;报纸则有 4000–5000 文本 token,远超其它模式的 10× 能力。
### 4.3 定性能力
- **深度解析(deep parsing)**:模型兼具布局与 OCR 2.0 能力,可通过二次模型调用解析文档内的图表、几何图形、化学式乃至自然图像,且只需统一提示词(图表转结构化结果、化学式转 SMILES)。
- **多语言识别**:可处理近 100 种语言,与中英文一样同时支持带/不带布局两种输出,论文以阿拉伯语、僧伽罗语为例。
- **通用视觉理解**:保留图像描述、目标检测、grounding 与语言能力;但因未包含 SFT 阶段,模型不是聊天机器人,部分能力需补全式提示词激活。
## 五、结论、局限与影响
- **结论**:论文初步验证了上下文光学压缩的可行性——模型能从少量视觉 token 解码出超过其 10 倍数量的文本 token;DeepSeek-OCR 也可支撑大规模预训练数据生产。作者强调仅靠 OCR 尚不足以完全验证真正的上下文光学压缩,未来将做数字-光学交错预训练与大海捞针测试。
- **局限性**:OCR 只是该范式的概念验证;压缩比超过 10× 后性能明显下降;报纸类需 Gundam/Gundam-M 才能获得可接受的编辑距离;模型未做 SFT、不是对话模型,部分能力需补全提示激活;几何解析因线段依赖错综复杂「仍有很长的路要走」;作者承认这属早期工作。Fox 评测中输出格式与 ground truth 不一致,也会低估实际性能。
- **影响**:工作给出视觉 token 分配的经验性指南,并提出两条路径——对多轮对话中第 k 轮之后的历史做光学处理以取得约 10× 压缩效率;对更早上下文逐步缩小渲染图以进一步省 token,模拟与「视觉随距离退化」相平行的记忆衰减(近端高保真、远端自然模糊),指向理论上有无限上下文能力、兼顾信息保留与算力约束的架构。
## 六、关键术语对照表
| English | 中文 |
|---|---|
| Contexts Optical Compression | 上下文光学压缩 |
| Optical 2D Mapping | 光学二维映射 |
| Vision Token | 视觉 token |
| Compression Ratio | 压缩比 |
| DeepEncoder | DeepEncoder(深度编码器) |
| Window Attention | 窗口注意力 |
| Global Attention(Dense) | (稠密)全局注意力 |
| Token Compressor | token 压缩器 |
| Native / Dynamic Resolution | 原生分辨率 / 动态分辨率 |
| Tiling | 切块(局部视图) |
| MoE Decoder / Activated Parameters | MoE 解码器 / 激活参数 |
| Deep Parsing | 深度解析 |
| OCR 1.0 / OCR 2.0 | OCR 1.0 任务 / OCR 2.0 任务 |
| Edit Distance | 编辑距离 |
| Forgetting Mechanism | 遗忘机制 |
| Needle-in-a-Haystack | 大海捞针测试 |