DeepSeek-OCR 技术报告解读:用光学方式压缩文本上下文

DeepSeek-OCR 提出以光学方式压缩文本上下文:把长文本渲染成图像,用远少于数字文本的视觉 token 来表示,从而缓解长序列的平方级计算开销。本文解读其任务定义、DeepEncoder 架构、数据工程与训练流程。

论文标题:DeepSeek-OCR: Contexts Optical Compression

论文链接:https://github.com/deepseek-ai/DeepSeek-OCR/blob/main/DeepSeek_OCR_paper.pdf

任务定义

DeepSeek-OCR探索了一个全新的研究方向:通过光学(视觉)方式压缩文本上下文。简单来说,就是将大量文字转换成图像,然后用少量的”视觉token”来表示,从而大幅减少模型需要处理的token数量。

研究动机

当前大语言模型(LLM)在处理长文本时面临严重的计算挑战,因为计算复杂度随序列长度呈平方级增长。研究团队提出了一个巧妙的想法:一张包含文档文字的图像可以用远少于等效数字文本的token数量来表示丰富信息。这就像”一图胜千言”的道理——通过视觉模态压缩文本信息,可能实现更高的压缩比。

当前开源VLM主要使用三类视觉编码器,都存在各自的缺陷:

  1. 双塔架构(如Vary):需要双重图像预处理,部署复杂,训练时难以进行编码器管道并行
  2. 基于瓦片的方法(如InternVL2.0):通过将图像分成小patches并行计算来减少激活内存。但原生编码器分辨率较低(通常低于512×512),导致大图像被过度分割,产生大量视觉token
  3. 自适应分辨率编码(如Qwen2-VL):采用NaViT范式直接处理完整图像。虽然能灵活处理不同分辨率,但在处理大图像时激活内存消耗巨大,可能导致GPU内存溢出,推理时长视觉token会显著降低prefill和生成阶段的速度
    随着VLM的发展,出现了大量端到端OCR模型:
  • Nougat:首次在arXiv学术论文上采用端到端框架
  • GOT-OCR2.0:将OCR2.0范围扩展到更多合成图像解析任务
  • 通用视觉模型(Qwen-VL系列、InternVL系列等):持续增强文档OCR能力

    整体架构

DeepSeek-OCR采用统一的端到端VLM架构,包含:

  • 编码器(DeepEncoder):约380M参数,负责提取和压缩图像特征
  • 解码器:采用DeepSeek-3B-MoE架构,激活参数约570M

    DeepEncoder设计

DeepEncoder的核心设计理念是满足五个关键需求:

  1. 能处理高分辨率
  2. 高分辨率下保持低激活内存
  3. 产生少量视觉token
  4. 支持多种分辨率输入
  5. 适度的参数量

架构组成

  • 感知组件:使用SAM-base(80M参数),以窗口注意力为主
  • 知识组件:使用CLIP-large(300M参数),采用密集全局注意力
  • 压缩模块:两层卷积实现16×下采样,连接上述两个组件

工作流程示例

  • 输入1024×1024图像
  • 分割成 4096 个patch token
  • 通过窗口注意力处理(激活内存可控)
  • 经过压缩模块降至 256 个token
  • 进入全局注意力处理

    数据工程

训练数据构成(按比例):

  • OCR数据(70%)
  • 通用视觉数据(20%):caption、检测、grounding等任务
  • 纯文本数据(10%):保持语言能力

文档数据

  • 收集30M页多语言PDF(约100种语言)
  • 粗标注:使用fitz直接提取
  • 精标注:4M页中英文,使用高级布局模型和OCR模型标注

    训练流程

两阶段训练

  1. 训练DeepEncoder
  2. 训练DeepSeek-OCR

    局限与未来工作

论文承认这是早期探索性工作,需要进一步研究:

  • 尚未进行数字-光学文本交错预训练
  • 需要”大海捞针”等长文本理解测试
  • 光学上下文压缩仍有大量研究和改进空间
本文结束 感谢您的阅读