论文标题:DeepSeek-OCR: Contexts Optical Compression
论文链接:https://github.com/deepseek-ai/DeepSeek-OCR/blob/main/DeepSeek\_OCR\_paper.pdf
一、研究背景
任务定义
DeepSeek-OCR探索了一个全新的研究方向:通过光学(视觉)方式压缩文本上下文 。简单来说,就是将大量文字转换成图像,然后用少量的"视觉token"来表示,从而大幅减少模型需要处理的token数量。
研究动机
当前大语言模型(LLM)在处理长文本时面临严重的计算挑战,因为计算复杂度随序列长度呈平方级增长。研究团队提出了一个巧妙的想法:一张包含文档文字的图像可以用远少于等效数字文本的token数量来表示丰富信息。这就像"一图胜千言"的道理——通过视觉模态压缩文本信息,可能实现更高的压缩比。
核心贡献
论文做出了三个主要贡献:
- 压缩比量化分析 :在Fox基准测试上,模型在9-10倍文本压缩率下可达到96%+的OCR解码精度,10-12倍压缩率下约90%精度,20倍压缩率下仍有约60%精度。
2. DeepEncoder架构 :设计了一个新颖的视觉编码器,即使在高分辨率输入下也能保持低激活内存和最少视觉token。它通过16×卷积压缩器串联窗口注意力和全局注意力组件。
- 实用价值验证 :在OmniDocBench上,DeepSeek-OCR仅用100个视觉token就超越了GOT-OCR2.0(256 tokens/页),用不到800个视觉token就超越了MinerU2.0(平均6000+ tokens/页)。在生产环境中,单个A100-40G GPU每天可处理20万+页面。
二、相关工作
典型VLM视觉编码器的问题
当前开源VLM主要使用三类视觉编码器,都存在各自的缺陷:
- 双塔架构 (如Vary):需要双重图像预处理,部署复杂,训练时难以进行编码器管道并行
- 基于瓦片的方法 (如InternVL2.0):通过将图像分成小瓦片并行计算来减少激活内存。但原生编码器分辨率较低(通常低于512×512),导致大图像被过度分割,产生大量视觉token
- 自适应分辨率编码 (如Qwen2-VL):采用NaViT范式直接处理完整图像。虽然能灵活处理不同分辨率,但在处理大图像时激活内存消耗巨大,可能导致GPU内存溢出,推理时长视觉token会显著降低prefill和生成阶段的速度
端到端OCR模型进展
随着VLM的发展,出现了大量端到端OCR模型:
- Nougat :首次在arXiv学术论文上采用端到端框架
- GOT-OCR2.0 :将OCR2.0范围扩展到更多合成图像解析任务
- 通用视觉模型 (Qwen-VL系列、InternVL系列等):持续增强文档OCR能力
但一个关键问题未被解决 :对于包含1000个词的文档,解码至少需要多少视觉token?这对"一图胜千言"的原理研究具有重要意义。
三、核心方法
整体架构
DeepSeek-OCR采用统一的端到端VLM架构,包含:
- 编码器(DeepEncoder):约380M参数,负责提取和压缩图像特征
- 解码器 :采用DeepSeek-3B-MoE架构,激活参数约570M
DeepEncoder设计
DeepEncoder的核心设计理念是满足五个关键需求:
- 能处理高分辨率
- 高分辨率下保持低激活内存
- 产生少量视觉token
- 支持多种分辨率输入
- 适度的参数量
架构组成 :
- 感知组件 :使用SAM-base(80M参数),以窗口注意力为主
- 知识组件 :使用CLIP-large(300M参数),采用密集全局注意力
- 压缩模块 :两层卷积实现16×下采样,连接上述两个组件
工作流程示例 :
- 输入1024×1024图像
- 分割成
个patch token
- 通过窗口注意力处理(激活内存可控)
- 经过压缩模块降至
个token
- 进入全局注意力处理
多分辨率支持
DeepEncoder支持两大类输入模式:
原生分辨率模式 :
- Tiny: 512×512 (64 tokens)
- Small: 640×640 (100 tokens)
- Base: 1024×1024 (256 tokens)
- Large: 1280×1280 (400 tokens)
对于Base和Large模式,为保持原始宽高比,采用padding处理。有效视觉token数量计算公式为:
其中
和
代表原始图像的宽和高。
动态分辨率模式 :
- Gundam模式 :由
瓦片(局部视图) + 1024×1024全局视图组成
- Gundam-Master模式 :1024×1024局部视图 + 1280×1280全局视图
Gundam模式输出的视觉token数量为:
,其中
是瓦片数量。
MoE解码器
解码器使用DeepSeekMoE架构,推理时从64个路由专家中激活6个,加上2个共享专家,约570M激活参数。解码器的功能可表示为:
其
中
其中
是DeepEncoder的压缩潜在(视觉)token,
是重建的文本表示。
数据工程
训练数据构成(按比例):
- OCR数据(70%):
- OCR 1.0数据:传统OCR任务(场景图像、文档OCR)
- OCR 2.0数据:复杂图像解析(图表、化学公式、平面几何)
- 通用视觉数据(20%):caption、检测、grounding等任务
- 纯文本数据(10%):保持语言能力
文档数据 :
- 收集30M页多语言PDF(约100种语言)
- 粗标注:使用fitz直接提取
- 精标注:4M页中英文,使用高级布局模型和OCR模型标注
OCR 2.0数据 :
- 图表:使用pyecharts和matplotlib渲染10M图像,定义为图像到HTML表格转换任务
- 化学公式:利用PubChem的SMILES格式,使用RDKit渲染5M图像
- 平面几何:参考Slow Perception生成1M数据
训练流程
两阶段训练 :
- 训练DeepEncoder :
- 使用小型语言模型和下一个token预测框架
- 数据:所有OCR 1.0和2.0数据 + 100M通用数据
- 训练2个epoch,批量大小1280
- 学习率5e-5,序列长度4096
- 训练DeepSeek-OCR :
- 采用管道并行(PP),分为4部分
- DeepEncoder:SAM+压缩器(PP0,冻结) + CLIP(PP1,训练)
- 解码器:12层分别放在PP2和PP3(各6层)
- 使用20节点(每节点8个A100-40G)
- 数据并行(DP)为40,全局批量大小640
- 学习率3e-5,训练速度:文本90B tokens/天,多模态70B tokens/天
四、实验效果
视觉-文本压缩研究
在Fox基准上测试,选择600-1300个文本token的英文文档(共100页):
| 文本Token范围 | 视觉Token=64 精度 | 压缩比 | 视觉Token=100 精度 | 压缩比 | | --- | --- | --- | --- | --- | | 600-700 | 96.5% | 10.5× | 98.5% | 6.7× | | 700-800 | 93.8% | 11.8× | 97.3% | 7.5× | | 800-900 | 83.8% | 13.2× | 96.8% | 8.5× | | 900-1000 | 85.9% | 15.1× | 96.8% | 9.7× | | 1000-1100 | 79.3% | 16.5× | 91.5% | 10.6× | | 1100-1200 | 76.4% | 17.7× | 89.8% | 11.3× | | 1200-1300 | 59.1% | 19.7× | 87.1% | 12.6× |
关键发现 :
- 在10×压缩比内,模型解码精度可达约97%,这是非常有前景的结果
- 当压缩比超过10×时,性能开始下降(可能因为长文档布局更复杂,或文本在低分辨率下变模糊)
- 即使在接近20×压缩时,精度仍可达60%左右
OCR实用性能
在OmniDocBench上的表现(编辑距离,越小越好):
与端到端模型对比 :
- 仅用100个视觉token(Small模式)超越GOT-OCR2.0(256 tokens)
- 用400个token(Large模式)达到与最先进模型相当的性能
- 用不到800个token(Gundam模式)超越MinerU2.0(约7000 tokens)
不同文档类型表现 (编辑距离):
| 文档类型 | Tiny(64) | Small(100) | Base(256) | Large(400) | Gundam(795) | | --- | --- | --- | --- | --- | --- | | 幻灯片 | 0.147 | 0.085 | 0.037 | 0.038 | 0.035 | | 书籍 | 0.116 | 0.111 | 0.08 | 0.108 | 0.085 | | 教科书 | 0.173 | 0.147 | 0.1 | 0.084 | 0.095 | | 试卷 | 0.294 | 0.171 | 0.13 | 0.109 | 0.094 | | 报纸 | 0.94 | 0.744 | 0.645 | 0.353 | 0.122 |
启示 :
- 幻灯片只需64个视觉token即可达到良好效果
- 书籍和报告用100个视觉token就能取得好性能
- 报纸需要Gundam甚至Gundam-master模式,因为文本token达4-5000,远超其他模式的10×压缩
定性研究
1. 深度解析能力
DeepSeek-OCR具备布局和OCR 2.0能力,可通过二次模型调用进一步解析文档内图像,称为"深度解析"。
金融研报中的图表解析 :
自然图像描述 :
化学公式识别 :
平面几何解析 :
2. 多语言识别
DeepSeek-OCR支持近100种语言的PDF处理,包括阿拉伯语、僧伽罗语等少数语言:
3. 通用视觉理解
模型保留了图像描述、目标检测、grounding等通用视觉能力:
五、讨论与展望
遗忘机制模拟
论文提出了一个有趣的想法:通过光学压缩模拟人类记忆的遗忘机制。
核心思路 :
- 将历史对话文本渲染成图像进行初始压缩(约10×)
- 对更早的图像逐步缩小尺寸,实现多级压缩
- token数量逐渐减少,文本变得越来越模糊
- 模拟人类记忆随时间衰退和视觉感知随距离下降的过程
应用场景 :
- 多轮对话中,对k轮之外的历史实施光学处理
- 近期上下文保持高分辨率,久远记忆自然淡化
- 理论上可实现无限上下文架构,平衡信息保留与计算约束
局限与未来工作
论文承认这是早期探索性工作,需要进一步研究:
- 尚未进行数字-光学文本交错预训练
- 需要"大海捞针"等长文本理解测试
- 光学上下文压缩仍有大量研究和改进空间
六、论文总结
DeepSeek-OCR作为概念验证,初步验证了上下文光学压缩 的可行性,展示了三个重要价值:
- 理论意义 :证明小型语言模型能有效学习从压缩视觉表示解码,为大模型提供了新的长文本处理思路
- 技术创新 :DeepEncoder架构巧妙解决了高分辨率输入下的激活内存和token压缩问题,为VLM设计提供了新范式
- 实用价值 :在真实文档解析任务上达到最先进性能,且token效率显著优于现有方法,可大规模生产LLM/VLM训练数据
虽然聚焦于OCR作为概念验证,但这一范式为重新思考视觉和语言模态如何协同增强大规模文本处理和智能体系统的计算效率开辟了新可能。研究结果为VLM token分配优化和LLM上下文压缩、遗忘机制研究提供了有效参考。
添加微信,备注” LLM “进入大模型技术交流群
如果你觉得这篇文章对你有帮助,别忘了点个赞、送个喜欢
/ 作者:致Great
/ 作者:欢迎转载,标注来源即可
