

1. 缘起:当 LLM 成为“主脑”,视觉通道却成了瓶颈
多模态大模型(LVLM)的标配流程是: 图像 → 视觉编码器 → 上千视觉 Token → LLM。 一旦文档页数上来,上下文窗口瞬间爆炸,速度、成本、精度全线崩溃。
DeepSeek 团队反其道而行: 能不能把一整页 PDF 压成“一张幻灯片”大小的 Token 再交给 LLM? 于是有了 DeepSeek-OCR--一个面向大模型的“视觉上下文压缩器”,而非 yet another OCR。
2. 核心概念:Contextual Optical Compression
| 名称 | 解释 |
|---|---|
| Optical | 输入是光学图像(扫描页、照片、表格、PPT)。 |
| Contextual | 输出不是纯文本,而是保留版面、图表、公式、位置信息的上下文表示。 |
| Compression | 1024×1024 图像 → 最少 64 个视觉 Token(CLIP 要 1000+)。 |
压缩率 16×~40×,却能在多项文档理解任务上打平甚至超过全量 Token 方案。
3. 模型架构:三件套
- ViT-Compressor 用局部-全局双重注意力,把 2D 特征图先压成“视觉词表”。
- Cross-Scale Resampler 动态分辨率输入(512~1280)统一映射到固定 Token 预算。
- LLM Adapter 仅 0.3 B 参数,无缝接入任意 LLM(DeepSeek-VL、LLaMA、Qwen 均可)。
训练策略:两阶段
- 阶段 1:图文对齐,重建文字 + 版面坐标;
- 阶段 2:指令微调,支持 Markdown、HTML、LaTeX、自然语言问答。
4. 能力矩阵:一张图看懂它能干什么
| 任务 | Prompt 示例 | 输出 | ||||
|---|---|---|---|---|---|---|
| 文档转 Markdown | `\n< | grounding |
| 带 # 标题、表格、公式 $...$ | ||
| 纯 OCR | \nFree OCR. | 仅文字,无格式 | ||||
| 图表解析 | \nParse the figure. | 图表标题、坐标、图例、数据点 | ||||
| 目标定位 | `\nLocate < | ref\ |
| /ref\ |
| 返回坐标框 [x1,y1,x2,y2] |
| 多页 PDF 批量 | 并发脚本 | 每页 0.4 s(A100) |
5. 性能速览:速度与精度双杀
| 分辨率 | Token 数 | 速度 (A100-40G) | Fox 基准 F1 | OmniDocBench 编辑距离 |
|---|---|---|---|---|
| 512×512 | 64 | 3200 pg/s | 74.3 | 0.089 |
| 1024×1024 | 256 | 1100 pg/s | 78.9 | 0.074 |
| 1280×1280 | 400 | 750 pg/s | 80.1 | 0.068 |
注:Fox 是中文文档理解基准,OmniDocBench 是中英文混排 + 公式 + 表格的综合指标。
6. 安装 & 5 分钟上手
环境:CUDA 11.8 + PyTorch 2.6.0(cu118) 官方已打包 vLLM 0.8.5 的 whl,避免依赖地狱。
# 1. 拉仓库
git clone https://github.com/deepseek-ai/DeepSeek-OCR.git
cd DeepSeek-OCR
# 2. 创建虚拟环境
conda create -n dsk-ocr python=3.12 -y
conda activate dsk-ocr
# 3. 一键装依赖
pip install torch==2.6.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install vllm-0.8.5+cu118-cp38-abi3-linux_x86_64.whl
pip install -r requirements.txt
pip install flash-attn==2.7.3 --no-build-isolation
6.1 Transformers 单行推理
from transformers import AutoModel, AutoTokenizer
import torch, os
os.environ["CUDA_VISIBLE_DEVICES"]="0"
model_name = "deepseek-ai/DeepSeek-OCR"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(model_name, trust_remote_code=True,
_attn_implementation="flash_attention_2").eval().cuda()
out = model.infer(
tokenizer,
prompt="\n<|grounding|>Convert the document to markdown.",
image_file="demo/paper_page.png",
output_path="results/",
base_size=1024,
image_size=640,
crop_mode=True,
save_results=True)
print(out["markdown"])
输出示例(节选):
## Abstract
We introduce DeepSeek-OCR, a contextually optical compression model...
Model Token F1
CLIP 1024 71.2
OCR 256 80.1
6.2 PDF 批量高速版
cd DeepSeek-OCR-vllm
python run_dpsk_ocr_pdf.py \
--input_dir /data/pdfs \
--output_dir /data/md \
--workers 32 --max_tokens 512
实测 1000 页论文集 < 3 min 完成,显存占用 36 GB。
7. Prompt 工程速查表
| 场景 | 推荐 Prompt | ||||
|---|---|---|---|---|---|
| 中英混排文档 | `\n< | grounding |
| ||
| 财务表格 | `\n< | grounding |
| ||
| 幻灯片 | `\n< | grounding |
| ||
| 合同定位 | `\nLocate < | ref\ |
| /ref\ |
|
8. 局限 & Roadmap
- 手写体:目前弱于印刷体,计划加入 1 M 手写样本继续预训练。
- 多栏复栏:极端分栏可能串行,已在 2406 版本修复(增加 2D 坐标嵌入)。
- 多语言:中文/英文/数字最优,日文、韩文 90%+,其余拉丁语系待加。
- 开源节奏:
- 2025 Q4 发布 2B 压缩器 + 7B 端到端模型;
- 2026 Q1 支持视频关键帧压缩;
- 2026 Q2 推出 128×128 超激进模式(仅 32 Token)。
9. 结语:OCR 的下一站是“Token 经济”
DeepSeek-OCR 把“识别”升维成“压缩”,让 LLM 以 极低 Token 成本 吞下整座文档图书馆。 当视觉通道不再是瓶颈,多模态 RAG、实时论文助手、全库问答、机器人流程自动化都将迎来新的“速度-成本”拐点。
现在就 git clone 一张 GPU,把 PDF 变成 64 个 Token 喂给你的大模型吧--
世界那么大,一页就装下。
📎 相关链接
- 代码:https://github.com/deepseek-ai/DeepSeek-OCR
- 权重:https://huggingface.co/deepseek-ai/DeepSeek-OCR
- 论文:arXiv 预印本(已上传 GitHub)
微信扫描下方的二维码阅读更多精彩内容

声明:本站所有文章,如无特殊说明或标注,均为橙市播客原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
