一個基於視覺壓縮的高效OCR模型,可將文檔圖像轉換為Markdown格式,支援多分辨率和多語言識別

MITPythonDeepSeek-OCRdeepseek-ai 17.7k Last Updated: October 25, 2025

DeepSeek-OCR 專案詳細介紹

專案概述

DeepSeek-OCR 是由 DeepSeek AI 團隊開發的一款創新型開源光學字符識別模型,專注於探索視覺文字壓縮的邊界。該專案從以大型語言模型為中心的視角研究視覺編碼器的作用,透過將視覺感知作為資訊壓縮媒介,能夠以顯著更少的 token 處理大型複雜文件。

核心特點

  • 高效壓縮:實現 7-20 倍的 token 壓縮率,在 10 倍壓縮下保持約 97% 的解碼準確度
  • 多解析度支援:支援從 512×512 到 1280×1280 的多種原生解析度
  • 高效能處理:單個 A100-40G GPU 每天可生成超過 20 萬頁訓練資料
  • 多語言支援:支援約 100 種語言的文字識別
  • 多功能性:不僅支援文字提取,還能理解圖表、化學分子式和簡單圖形

技術架構

模型組成

DeepSeek-OCR 由兩個核心組件構成:

  1. DeepEncoder(視覺編碼器)

    • 參數數量:約 3.8 億
    • 架構組合:
      • SAM-ViTDet(Meta 的 8000 萬參數分割模型)用於局部影像感知
      • 2 層卷積壓縮器,實現 16× token 降採樣
      • CLIP ViT-300M(OpenAI 的 3 億參數模型)用於全域視覺知識聚合
  2. DeepSeek3B-MoE 解碼器

    • 活躍參數:約 5.7 億
    • 總參數:3B(混合專家模型架構)
    • 功能:基於影像 token 和提示資訊生成結果

工作原理

  1. 影像處理流程

    • 1024×1024 像素影像初始產生 4096 個 token
    • SAM 模組進行視窗注意力處理
    • 壓縮器將 token 減少到 256 個(16× 壓縮)
    • CLIP 模組進行全域注意力處理
    • 最終輸出壓縮的視覺 token
  2. 解析度模式

    • 原生解析度模式

      • Tiny:512×512(64 視覺 token)
      • Small:640×640(100 視覺 token)
      • Base:1024×1024(256 視覺 token)
      • Large:1280×1280(400 視覺 token)
    • 動態解析度模式

      • Gundam:n×640×640 + 1×1024×1024(結合全域和局部視野)

效能表現

基準測試結果

  • Fox 基準測試:在 10 倍壓縮率下,解碼準確度達到約 97%
  • OmniDocBench 基準測試
    • 僅使用 100 個視覺 token 就超越了 GOT-OCR2.0(256 token/頁)
    • 使用少於 800 個視覺 token 超越了 MinerU2.0(平均每頁超過 6000 token)

訓練與推論效能

  • 訓練速度
    • 純文字資料:每天 90B token
    • 多模態資料:每天 70B token
  • 生產效能:單個 A100-40G 節點每天可處理超過 20 萬頁
  • 併發效能:PDF 處理約 2500 tokens/s(A100-40G)

應用場景

主要功能

DeepSeek-OCR 支援多種提示模式:

# 文件轉 Markdown
prompt = "<image>\n<|grounding|>Convert the document to markdown."

# 通用 OCR
prompt = "<image>\n<|grounding|>OCR this image."

# 自由 OCR(無佈局)
prompt = "<image>\nFree OCR."

# 圖表解析
prompt = "<image>\nParse the figure."

# 詳細影像描述
prompt = "<image>\nDescribe this image in detail."

# 文字定位
prompt = "<image>\nLocate <|ref|>xxxx<|/ref|> in the image."

實際應用

  1. 文件數位化:高效處理學術論文、書籍、報告等文件
  2. 資料集生成:為大型語言模型和視覺語言模型生成海量訓練資料
  3. 聊天機器人上下文壓縮:透過降低解析度儲存舊對話紀錄(類似人類記憶衰減)
  4. 結構化資料提取
    • 將財務圖表轉換為結構化資料
    • 自動生成 Markdown 表格和圖形
    • 支援化學分子式(SMILES 格式)識別

安裝和使用

環境要求

  • Python 3.12.9
  • CUDA 11.8
  • PyTorch 2.6.0
  • Transformers 4.46.3

安裝步驟

# 複製儲存庫
git clone https://github.com/deepseek-ai/DeepSeek-OCR.git
cd DeepSeek-OCR

# 建立 Conda 環境
conda create -n deepseek-ocr python=3.12.9 -y
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

使用範例

方式一:使用 Transformers

from transformers import AutoModel, AutoTokenizer
import torch
import 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'
output_path = 'your/output/dir'

# 執行推論
res = model.infer(
    tokenizer, 
    prompt=prompt, 
    image_file=image_file, 
    output_path=output_path, 
    base_size=1024, 
    image_size=640, 
    crop_mode=True, 
    save_results=True, 
    test_compress=True
)

方式二:使用 vLLM(高效能推論)

# 修改設定檔
cd DeepSeek-OCR-master/DeepSeek-OCR-vllm
# 編輯 config.py 設定 INPUT_PATH/OUTPUT_PATH

# 執行影像 OCR(串流輸出)
python run_dpsk_ocr_image.py

# 執行 PDF OCR(高併發)
python run_dpsk_ocr_pdf.py

# 批次評估
python run_dpsk_ocr_eval_batch.py

技術創新

視覺文字壓縮範式

DeepSeek-OCR 提出了一種新的視覺文字壓縮範式:

  • 核心思想:將文字轉換為影像並透過視覺編碼器處理,不再以文字 token 形式儲存語義
  • 優勢
    • 更少的記憶體佔用:視覺 token 更緊湊
    • 更快的推論速度:更少的 token = 更少的計算量
    • 自然遺忘機制:舊上下文可以降採樣
    • 更容易的多模態融合:模型已經將文字視為影像

與傳統 OCR 的區別

傳統 OCR 採用管道式架構(偵測 → 識別 → 後處理),而 DeepSeek-OCR 採用端到端的視覺語言模型架構,從根本上簡化了 OCR 系統。

資源連結

致謝

DeepSeek-OCR 專案感謝以下開源專案的貢獻:

  • Vary
  • GOT-OCR2.0
  • MinerU
  • PaddleOCR
  • OneChart
  • Slow Perception

以及基準測試資料集:Fox 和 OmniDocBench。

總結

DeepSeek-OCR 代表了 OCR 技術的重大創新,透過視覺壓縮範式解決了大型語言模型長上下文處理的挑戰。其高效的 token 壓縮能力(7-20 倍)、優異的準確度(10 倍壓縮下 97% 精度)以及強大的處理能力(單 GPU 日處理 20 萬頁),使其成為文件數位化、AI 訓練資料生成和多模態應用的理想選擇。

該專案的開源特性和完善的文件使其易於整合到各種應用場景中,為研究人員和開發者提供了一個強大的工具來探索視覺文字壓縮的邊界。

Star History Chart