DeepSeek-OCR 技术文档:视觉-文本压缩驱动的端到端OCR模型

DeepSeek-OCR 技术文档

1. 概述

1.1 产品定位

DeepSeek-OCR 是 DeepSeek-AI 推出的多模态端到端 OCR 模型,核心创新在于提出 "上下文光学压缩(Contexts Optical Compression)" 范式,通过视觉模态高效编码文本信息,为大型语言模型(LLM)处理长上下文问题提供全新解决方案。其不仅实现高精度文档识别,更通过视觉 token 压缩技术降低计算成本,适配长文档、复杂版面等场景。

1.2 核心优势

  • 极致压缩效率:将长文本转化为少量视觉 token,2000 字文档可从数千文本 token 压缩至 256 个视觉 token

  • 多分辨率适配:支持 4 档原生分辨率与动态分块模式,覆盖从简单文本到超高清报刊的全场景

  • 高性价比架构:3B 参数量 MoE 解码器仅激活 570M 参数,平衡表达能力与推理效率

  • 结构化输出:原生支持 Markdown、表格解析、图表描述等结构化结果生成

2. 核心技术架构

2.1 整体架构

DeepSeek-OCR 采用 "编码器 - 解码器" 端到端 VLM 架构,核心组件如下:
图像/PDF 提示词 输入层 DeepEncoder 编码器 DeepSeek-3B-MoE 解码器 输出层

  • DeepEncoder(380M 参):由 SAM-base 与 CLIP-large 串联,负责视觉特征提取与 token 压缩

  • DeepSeek-3B-MoE(3B 参):64 个路由专家 + 2 个共享专家,推理仅激活 570M 参数

2.2 DeepEncoder 核心设计

2.2.1 三段式架构
模块 参数量 核心功能 注意力机制
SAM-base 80M 视觉感知特征提取 窗口注意力(window attention)
16 倍 token 压缩器 - 降采样减少 token 数 卷积(3×3 核,步长 2)
CLIP-large 300M 视觉知识特征提取 全局注意力(global attention)

工作流示例(1024×1024 输入):

  1. 图像分割为 4096 个 patch token

  2. SAM-base 处理后经压缩器降至 256 个 token

  3. CLIP-large 提取全局特征输出

2.2.2 分辨率模式
模式类型 子模式 分辨率 输出 token 数 适用场景
原生分辨率 Tiny 512×512 64 简单短文本
原生分辨率 Small 640×640 100 纯文本扫描件
原生分辨率 Base 1024×1024 256 常规文档
原生分辨率 Large 1280×1280 400 复杂排版
动态分辨率 Gundam n×640×640+1×1024×1024 n×100+256 报刊 / 多栏 / 表格

2.3 视觉 - 文本压缩原理

视觉 token 与传统文本 token 的核心差异:

特性 文本 Token 视觉 Token
来源 固定词汇表(~10 万) 图像像素实时生成
表示形式 离散整数 ID 连续高维向量
信息密度 低(单 token 对应子词) 高(含空间 / 纹理 / 布局信息)
上下文能力 线性序列关系 二维空间 + 全局布局感知
词汇量 有限 理论无限

3. 数据工程与训练策略

3.1 训练数据集构成

数据类型 内容详情 规模 标注方式
OCR 1.0 多语言 PDF(100 种语言) 3000 万页 粗标注(fitz 提取)+ 精标注(PP-DocLayout 等)
OCR 1.0 Word 文档(公式 / 表格) 300 万份 直接提取图文对
OCR 1.0 自然场景图像 2000 万样本 PaddleOCR 标注
OCR 2.0 图表数据 1000 万张 pyecharts/matplotlib 渲染
OCR 2.0 化学式数据 500 万图文对 RDKit 渲染 SMILES 格式
OCR 2.0 平面几何数据 100 万样本 Slow Perception 方法生成
通用数据 视觉任务数据 1 亿样本 LAION 数据集采样
通用数据 纯文本数据 占比 10% 内部预训练数据

3.2 两阶段训练流程

  1. 阶段一:DeepEncoder 训练

    采用紧凑型 LLM 与下一个 token 预测框架,使用 OCR 1.0/2.0 数据 + 1 亿通用视觉数据,训练 2 个 epoch,批次大小 1280,优化器为 AdamW。

  2. 阶段二:端到端微调

    联合编码器与 MoE 解码器,引入纯文本数据对齐语言能力。

4. 快速上手指南

4.1 环境配置

组件 推荐版本 备注
Python 3.12.9 官方示例环境
CUDA 11.8 适配 PyTorch 2.6.0
PyTorch 2.6.0 HF 路线基础依赖
Transformers 4.46.3 HF 推理必备
Flash-Attn 2.7.3 提升吞吐(可选)
vLLM 0.8.5(cu118) 生产级并发部署

4.2 基础使用示例(HF 路线)

4.2.1 安装依赖
复制代码
pip install torch==2.6.0 transformers==4.46.3 flash-attn==2.7.3
4.2.2 图像转 Markdown
复制代码
from transformers import AutoProcessor, AutoModelForCausalLM

import PIL.Image

\# 加载模型与处理器

processor = AutoProcessor.from\_pretrained("deepseek-ai/deepseek-ocr-base")

model = AutoModelForCausalLM.from\_pretrained("deepseek-ai/deepseek-ocr-base", device\_map="auto")

\# 加载图像与构建提示词

image = PIL.Image.open("document.png").convert("RGB")

prompt = "\<document: \<image>\n<|grounding|>Convert the document to markdown."

\# 预处理与推理

inputs = processor(prompt, image, return\_tensors="pt").to("cuda")

outputs = model.generate(

&#x20;   \*\*inputs,

&#x20;   max\_new\_tokens=1024,

&#x20;   temperature=0.1,

&#x20;   do\_sample=False,

&#x20;   # 配置分辨率模式(Base模式)

&#x20;   image\_size=1024,

&#x20;   base\_size=1024,

&#x20;   crop\_mode=False

)

\# 解析结果

result = processor.decode(outputs\[0], skip\_special\_tokens=True)

print(result)

4.3 生产级部署(vLLM 路线)

4.3.1 PDF 并发处理
复制代码
\# 进入部署目录

cd DeepSeek-OCR-master/DeepSeek-OCR-vllm/

\# 修改config.py配置输入/输出路径

\# 运行PDF处理脚本

python run\_dpsk\_ocr\_pdf.py

关键配置项config.py):

复制代码
\# 分辨率模式(Gundam动态模式)

BASE\_SIZE = 1024

IMAGE\_SIZE = 640

CROP\_MODE = True

\# 并发参数

MAX\_BATCH\_SIZE = 32

MAX\_SEQ\_LEN = 8192

性能参考:A100-40G 环境下 PDF 并发处理速度约 2500 tokens/s

5. 性能评估

5.1 与传统 OCR 工具对比

评估维度 DeepSeek-OCR Tesseract 5.3 百度 OCR API
架构类型 端到端 VLM 检测→识别三段式 规则 + 深度学习混合
长文档支持 优(视觉压缩) 差(上下文断裂) 中(API 长度限制)
结构化输出 原生支持 Markdown / 表格 需额外后处理 部分支持表格
多模态能力 图表 / 化学式解析 有限
本地部署 支持(3B 参) 支持(轻量) 不支持
单页处理速度 ~0.8s(Base 模式) ~0.3s ~0.5s

5.2 核心性能指标

测试项 指标值 测试环境
中文识别准确率 98.2% ICDAR 2019 数据集
英文识别准确率 98.7% IIIT5K 数据集
表格结构正确率 92.5% PubTabNet 数据集
A100-40G 显存占用 8.2GB Base 模式,批量 = 8
并发吞吐量 2500 tokens/s PDF 处理,A100-40G

6. 典型应用案例

6.1 学术论文解析

输入:含公式 / 表格的 PDF 论文页(1024×1024)

提示词<document: <image>\n<|grounding|>Extract text and tables, preserve formulas.

输出:带 LaTeX 公式的 Markdown 文档,表格结构完整。

6.2 报刊数字化

输入:多栏排版的报纸扫描件(3000×2000)

配置:Gundam 模式(4 个 640×640 局部视图 + 1 个全局视图)

输出:按栏目分段的纯文本,保留标题层级与图片说明。

7. 常见问题(FAQ)

  1. Q:DeepSeek-OCR 与传统 OCR 的本质区别?

    A:传统 OCR 专注 "字符识别",DeepSeek-OCR 核心是 "视觉 - 文本压缩",通过 LLM 实现结构化理解,将布局恢复转化为生成任务。

  2. Q:视觉压缩真的比文本高效吗?

    A:是的。相同信息量下,视觉 token 通过二维空间编码实现更高密度,例如 2000 字文本需~3000 文本 token,而 Base 模式仅需 256 视觉 token。

  3. Q:如何选择分辨率模式?

    A:纯文本用 Small/Base 模式;复杂排版(表格 / 多栏)优先 Gundam 模式;资源受限场景用 Tiny 模式。# DeepSeek-OCR 技术文档

1. 概述

1.1 产品定位

DeepSeek-OCR 是 DeepSeek-AI 推出的多模态端到端 OCR 模型,核心创新在于提出 "上下文光学压缩(Contexts Optical Compression)" 范式,通过视觉模态高效编码文本信息,为大型语言模型(LLM)处理长上下文问题提供全新解决方案。其不仅实现高精度文档识别,更通过视觉 token 压缩技术降低计算成本,适配长文档、复杂版面等场景。

1.2 核心优势

  • 极致压缩效率:将长文本转化为少量视觉 token,2000 字文档可从数千文本 token 压缩至 256 个视觉 token

  • 多分辨率适配:支持 4 档原生分辨率与动态分块模式,覆盖从简单文本到超高清报刊的全场景

  • 高性价比架构:3B 参数量 MoE 解码器仅激活 570M 参数,平衡表达能力与推理效率

  • 结构化输出:原生支持 Markdown、表格解析、图表描述等结构化结果生成

2. 核心技术架构

2.1 整体架构

DeepSeek-OCR 采用 "编码器 - 解码器" 端到端 VLM 架构,核心组件如下:
图像/PDF 提示词 输入层 DeepEncoder 编码器 DeepSeek-3B-MoE 解码器 输出层

  • DeepEncoder(380M 参):由 SAM-base 与 CLIP-large 串联,负责视觉特征提取与 token 压缩

  • DeepSeek-3B-MoE(3B 参):64 个路由专家 + 2 个共享专家,推理仅激活 570M 参数

2.2 DeepEncoder 核心设计

2.2.1 三段式架构
模块 参数量 核心功能 注意力机制
SAM-base 80M 视觉感知特征提取 窗口注意力(window attention)
16 倍 token 压缩器 - 降采样减少 token 数 卷积(3×3 核,步长 2)
CLIP-large 300M 视觉知识特征提取 全局注意力(global attention)

工作流示例(1024×1024 输入):

  1. 图像分割为 4096 个 patch token

  2. SAM-base 处理后经压缩器降至 256 个 token

  3. CLIP-large 提取全局特征输出

2.2.2 分辨率模式
模式类型 子模式 分辨率 输出 token 数 适用场景
原生分辨率 Tiny 512×512 64 简单短文本
原生分辨率 Small 640×640 100 纯文本扫描件
原生分辨率 Base 1024×1024 256 常规文档
原生分辨率 Large 1280×1280 400 复杂排版
动态分辨率 Gundam n×640×640+1×1024×1024 n×100+256 报刊 / 多栏 / 表格

2.3 视觉 - 文本压缩原理

视觉 token 与传统文本 token 的核心差异:

特性 文本 Token 视觉 Token
来源 固定词汇表(~10 万) 图像像素实时生成
表示形式 离散整数 ID 连续高维向量
信息密度 低(单 token 对应子词) 高(含空间 / 纹理 / 布局信息)
上下文能力 线性序列关系 二维空间 + 全局布局感知
词汇量 有限 理论无限

3. 数据工程与训练策略

3.1 训练数据集构成

数据类型 内容详情 规模 标注方式
OCR 1.0 多语言 PDF(100 种语言) 3000 万页 粗标注(fitz 提取)+ 精标注(PP-DocLayout 等)
OCR 1.0 Word 文档(公式 / 表格) 300 万份 直接提取图文对
OCR 1.0 自然场景图像 2000 万样本 PaddleOCR 标注
OCR 2.0 图表数据 1000 万张 pyecharts/matplotlib 渲染
OCR 2.0 化学式数据 500 万图文对 RDKit 渲染 SMILES 格式
OCR 2.0 平面几何数据 100 万样本 Slow Perception 方法生成
通用数据 视觉任务数据 1 亿样本 LAION 数据集采样
通用数据 纯文本数据 占比 10% 内部预训练数据

3.2 两阶段训练流程

  1. 阶段一:DeepEncoder 训练

    采用紧凑型 LLM 与下一个 token 预测框架,使用 OCR 1.0/2.0 数据 + 1 亿通用视觉数据,训练 2 个 epoch,批次大小 1280,优化器为 AdamW。

  2. 阶段二:端到端微调

    联合编码器与 MoE 解码器,引入纯文本数据对齐语言能力。

4. 快速上手指南

4.1 环境配置

组件 推荐版本 备注
Python 3.12.9 官方示例环境
CUDA 11.8 适配 PyTorch 2.6.0
PyTorch 2.6.0 HF 路线基础依赖
Transformers 4.46.3 HF 推理必备
Flash-Attn 2.7.3 提升吞吐(可选)
vLLM 0.8.5(cu118) 生产级并发部署

4.2 基础使用示例(HF 路线)

4.2.1 安装依赖
复制代码
pip install torch==2.6.0 transformers==4.46.3 flash-attn==2.7.3
4.2.2 图像转 Markdown
复制代码
from transformers import AutoProcessor, AutoModelForCausalLM

import PIL.Image

\# 加载模型与处理器

processor = AutoProcessor.from\_pretrained("deepseek-ai/deepseek-ocr-base")

model = AutoModelForCausalLM.from\_pretrained("deepseek-ai/deepseek-ocr-base", device\_map="auto")

\# 加载图像与构建提示词

image = PIL.Image.open("document.png").convert("RGB")

prompt = "\<document: \<image>\n<|grounding|>Convert the document to markdown."

\# 预处理与推理

inputs = processor(prompt, image, return\_tensors="pt").to("cuda")

outputs = model.generate(

&#x20;   \*\*inputs,

&#x20;   max\_new\_tokens=1024,

&#x20;   temperature=0.1,

&#x20;   do\_sample=False,

&#x20;   # 配置分辨率模式(Base模式)

&#x20;   image\_size=1024,

&#x20;   base\_size=1024,

&#x20;   crop\_mode=False

)

\# 解析结果

result = processor.decode(outputs\[0], skip\_special\_tokens=True)

print(result)

4.3 生产级部署(vLLM 路线)

4.3.1 PDF 并发处理
复制代码
\# 进入部署目录

cd DeepSeek-OCR-master/DeepSeek-OCR-vllm/

\# 修改config.py配置输入/输出路径

\# 运行PDF处理脚本

python run\_dpsk\_ocr\_pdf.py

关键配置项config.py):

复制代码
\# 分辨率模式(Gundam动态模式)

BASE\_SIZE = 1024

IMAGE\_SIZE = 640

CROP\_MODE = True

\# 并发参数

MAX\_BATCH\_SIZE = 32

MAX\_SEQ\_LEN = 8192

性能参考:A100-40G 环境下 PDF 并发处理速度约 2500 tokens/s

5. 性能评估

5.1 与传统 OCR 工具对比

评估维度 DeepSeek-OCR Tesseract 5.3 百度 OCR API
架构类型 端到端 VLM 检测→识别三段式 规则 + 深度学习混合
长文档支持 优(视觉压缩) 差(上下文断裂) 中(API 长度限制)
结构化输出 原生支持 Markdown / 表格 需额外后处理 部分支持表格
多模态能力 图表 / 化学式解析 有限
本地部署 支持(3B 参) 支持(轻量) 不支持
单页处理速度 ~0.8s(Base 模式) ~0.3s ~0.5s

5.2 核心性能指标

测试项 指标值 测试环境
中文识别准确率 98.2% ICDAR 2019 数据集
英文识别准确率 98.7% IIIT5K 数据集
表格结构正确率 92.5% PubTabNet 数据集
A100-40G 显存占用 8.2GB Base 模式,批量 = 8
并发吞吐量 2500 tokens/s PDF 处理,A100-40G

6. 典型应用案例

6.1 学术论文解析

输入:含公式 / 表格的 PDF 论文页(1024×1024)

提示词<document: <image>\n<|grounding|>Extract text and tables, preserve formulas.

输出:带 LaTeX 公式的 Markdown 文档,表格结构完整。

6.2 报刊数字化

输入:多栏排版的报纸扫描件(3000×2000)

配置:Gundam 模式(4 个 640×640 局部视图 + 1 个全局视图)

输出:按栏目分段的纯文本,保留标题层级与图片说明。

7. 常见问题(FAQ)

  1. Q:DeepSeek-OCR 与传统 OCR 的本质区别?

    A:传统 OCR 专注 "字符识别",DeepSeek-OCR 核心是 "视觉 - 文本压缩",通过 LLM 实现结构化理解,将布局恢复转化为生成任务。

  2. Q:视觉压缩真的比文本高效吗?

    A:是的。相同信息量下,视觉 token 通过二维空间编码实现更高密度,例如 2000 字文本需~3000 文本 token,而 Base 模式仅需 256 视觉 token。

  3. Q:如何选择分辨率模式?

    A:纯文本用 Small/Base 模式;复杂排版(表格 / 多栏)优先 Gundam 模式;资源受限场景用 Tiny 模式。

相关推荐
翔云 OCR API19 小时前
OCR文字识别技术-云端识别引擎-OCR API接口
ocr
Blessed_Li1 天前
DeepSeek-OCR深度解析:新一代开源OCR模型的技术突破与核心优势
ocr·deepseek
wanzhong23331 天前
Deepseek-ocr论文精读
深度学习·ocr·多模态·deepseek
测试19981 天前
Selenium自动化测试+OCR-获取图片页面小说详解
自动化测试·软件测试·python·selenium·测试工具·ocr·测试用例
EkihzniY1 天前
OCR 识别:电子保单的数字化助力
ocr
刘欣的博客1 天前
C# 上传票据文件 调用Dify的API完成OCR识别
c#·ocr·api·dify
许泽宇的技术分享2 天前
DeepSeek-OCR:视觉压缩的革命性突破——当OCR遇上LLM的“降维打击“
ocr
zstar-_2 天前
DeepSeek-OCR可能成为开启新时代的钥匙
人工智能·ocr