一文读懂 DeepSeek‑OCR:从“看”变“理解”的 OCR 革命
DeepSeek-OCR通过“视觉化文本”解决传统OCR和LLM处理长文档的瓶颈。其核心思想“Contexts Optical Compression”将文档转为高分辨率图像,压缩为少量视觉令牌后由视觉-语言模型解码,显著降低计算成本(压缩比达10×时精度97%)。架构包含DeepEncoder(视觉编码)和MoE解码器(高效推理),支持表格、图表等结构化输出。开源模型适用合同、论文等多页文档处理

GitHub 地址
随着大语言模型(LLM)及视觉-语言模型(VLM)越来越擅长通用任务,一个瓶颈也逐渐显现:长文本/复杂文档的处理成本极高。无论是在字符识别(OCR)还是文件解析中,当文档页数多、版面复杂、插图丰富或图表众多时,“读”与“理解”的成本都呈爆炸式增长。
而由 DeepSeek AI 发布的 DeepSeek-OCR,带来了一个颇具颠覆性的新思路:不是让模型逐字逐句去「读」文本,而是先将文本以视觉形式(图像)表达,再通过强大的视觉-语言模型去「理解」它。简而言之,是 “让机器先看,再理解”。
本文将从技术背景、核心思想、架构解析、应用前景与未来展望几个维度,帮助你深入了解 DeepSeek-OCR 是什么、为什么值得关注、如何使用,以及对未来有哪些启示。
一、技术背景:为什么我们需要这样一种新方案?
-
长文本/长上下文难题
现代 LLM 在处理极长文本(数万字、数百页)时,尽管上下文窗口越来越大,但计算、内存、推理成本也随之飙升。Transformer 在序列长度上的二次方增长(quadratic scaling)仍然制约着模型处理超长上下文的效率。
-
传统 OCR 的局限
虽然 OCR 引擎(如 Tesseract、PaddleOCR)能够将图像中的文字转换为文本,但它们往往忽视排版、图表、版面结构、视觉语境等关键信息。而在多页、多栏、带图表的文档中,仅文本识别往往难以做到结构化理解。
-
视觉-语言模型(VLM)的兴起
最近几年,视觉和语言模型的融合(VLM)已经展现出强大的跨模态理解能力。但它们多用于“图像+文字”组合任务,如图像描述、视觉问答等。而 DeepSeek-OCR 则反其道行之:把纯文本信息「视觉化」,然后再进行语言理解。
正是在这种背景下,“将文档作为图像输入 → 压缩为视觉令牌 → 再由语言模型解码”的思路应运而生。
二、DeepSeek-OCR 的核心思想:“Contexts Optical Compression”
“Contexts Optical Compression”(上下文光学压缩)是该模型提出的关键概念。简单来说:
- 将一个文档(页、段落、图表)通过高分辨率图像呈现;
- 使用视觉编码器将其压缩为较少的“视觉令牌”(vision tokens)——比传统文本令牌少得多;
- 然后由语言模型(或视觉-语言模型)基于这些视觉令牌进行解码,从而生成文本/结构化输出。
根据论文,当压缩比(即:原始文本令牌数/视觉令牌数)小于约 10× 时,OCR 精度可达约 97%。即使压缩比达到约 20×,仍能维持约 60% 的精度。
这种方法带来的好处包括:
- 令牌数大幅减少 → 模型处理更快、成本更低
- 保留视觉版式信息(如表格、图表、排版结构) → 布局理解更强
- 为未来超长上下文处理提供新的思路:文本不必始终作为“纯”文本输入,而可作为视觉输入预压缩
三、架构解析:DeepEncoder + MoE 解码器
我们来看 DeepSeek-OCR 的两大关键组件。
3.1 DeepEncoder(视觉编码器)
- 主要负责将高分辨率图像输入(例如 1024 × 1024 或更高)转化为少量视觉令牌。
- 架构包括:使用 SAM(Segment Anything Model)做区域感知/瓦片分割、使用 CLIP 做全局语义编码、再通过一个
“16× Token Compressor” 的卷积模块做令牌压缩。 - 支持不同分辨率模式:例如 “Tiny”(512×512 → ~64 视觉令牌)、“Small”(640×640 → ~100
视觉令牌)、“Base”(1024×1024 → ~256 视觉令牌)及“大”模式。 - 目标:在保持版式/结构/文字可识别性的同时,令视觉令牌数最小,从而后续语言模型能以更低成本处理。
3.2 MoE 解码器(语言/视觉-语言解码器)
- 在论文中称为 “DeepSeek3B-MoE-A570M” 作为解码器。
- 属于 Mixture-of-Experts(专家混合模型)范式:虽然参数规模约3 B,但实际推理时激活只有约 570 M 参数,从而兼顾性能与效率。
- 接收视觉令牌 + 提示(prompt)输入,输出为文本/Markdown/结构化格式等。
- 模型可用于 OCR、文档理解、图表解析等。
3.3 整体流程
- 将文档页或图像输入(可为 PDF 转为图片)
- DeepEncoder 将其转为少量视觉令牌
- 解码器接收视觉令牌 + 提示 → 输出文本或结构化内容
- 用户可指定提示(如 “Convert the document to markdown.”)以获取不同格式输出。
四、亮点与应用场景
4.1 亮点总结
- 压缩率高:减少令牌数,降低模型推理负担。
- 结构理解更强:保留视觉版式信息,如表格、图表、列布局。
- 多模态融合:不仅识别文字,还理解图像、布局、图表。
- 开源与可用:模型、代码、论文均公开(MIT 许可)
4.2 应用场景
- 批量文档处理:如发票、报表、合同、科研论文。
- 多页/长文档 OCR:将数十页合成为视觉令牌 + 解码,有望降低成本。
- 结构化数据抽取:从表格、图表、混合布局文档中提取信息。
- 长上下文场景:聊天记录、日志、历史档案,可先“视觉化”再理解。
五、如何上手使用
以下为一个基本的使用流程,适合开发者实践:
- 环境准备(参考官方 README)
git clone https://github.com/deepseek-ai/DeepSeek-OCR.git
conda create -n deepseek-ocr python=3.12.9
conda activate deepseek-ocr
pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 \
--index-url https://download.pytorch.org/whl/cu118
pip install vllm-0.8.5+cu118-cp38-abi3-manylinux1_x86_64.whl
pip install -r requirements.txt
pip install flash-attn==2.7.3 --no-build-isolation
- 推理示例(Hugging Face 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, _attn_implementation='flash_attention_2',
trust_remote_code=True, use_safetensors=True)
model = model.eval().cuda().to(torch.bfloat16)
prompt = "<image>\n<|grounding|>Convert the document to markdown."
image_file = 'your_image.jpg'
res = model.infer(tokenizer, prompt=prompt, image_file=image_file,
output_path='your/output/dir', base_size=1024, image_size=640,
crop_mode=True, save_results=True, test_compress=True)
- 注意事项
- 确保 GPU/驱动版本与官方要求(如 CUDA11.8、torch2.6)兼容。
- 若处理 PDF,应先将每页转换为图片(如 JPEG/PNG)以适配模型。
- 若希望保留高版式 fidelity,可选择较高分辨率/较少压缩模式。
- 在部署或批量处理时,需监控令牌数、推理速度、错误率。
六、未来展望
- 将“视觉化文本”思路扩展至对话历史、日志、智慧档案,开启真正的超长上下文理解。
- 探索“文本令牌 + 视觉令牌”混合模式:关键细节用文本令牌,其他用视觉令牌表示。
- 优化低资源/移动端版本,让视觉压缩也能在边缘设备运行。
- 加入更多结构理解能力:自动识别表格、键值对、流程图等。
结语
DeepSeek-OCR 并不仅仅是一个新的 OCR 模型,它代表了一个思考维度的改变:文本必须先被转为字符令牌 这一假设正在被挑战。通过将文档转为视觉形式,再由视觉-语言模型解码,我们或许能迎来处理超长、复杂文档的新方式。对于致力于文档理解、大规模资料处理、低成本部署的团队来说,这或许是一个值得深入探索的开源方案。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐

所有评论(0)