Unlimited-OCR 深度實測:百度開源 30 億參數模型,本地一次性處理 100 頁 PDF

Unlimited-OCR 深度實測:百度開源 30 億參數模型,本地一次性處理 100 頁 PDF

一句話總結

百度開源的 Unlimited-OCR 用 30 億參數做到了傳統 OCR 工具做不到的事:一次性讀完 100 頁 PDF,記憶體不爆炸,速度不衰減。核心秘密是一個叫 R-SWA 的注意力機制——讓模型像人抄書一樣,只看原文和最近寫下的幾個字,而不是反覆回讀所有內容。

為什麼傳統 OCR 處理長文檔這麼痛苦?

如果你曾經用 Tesseract 或者 Adobe Acrobat 處理過超過 10 頁的掃描件 PDF,你一定經歷過這些:

  • 逐頁處理:OCR 引擎一頁一頁識別,每頁重設狀態,跨頁表格被截斷
  • 記憶體飆升:端到端 OCR 模型(如 DeepSeek-OCR)的 KV Cache 隨文字長度線性增長,40 頁文檔就能吃掉 24GB 顯存
  • 格式丟失:多欄排版、跨頁表格、頁首頁尾在逐頁處理中徹底亂序

這不是工具不好用,而是架構層面的天花板。傳統 OCR 把每一頁當作獨立任務,缺乏「整本書」的全域視野。

Unlimited-OCR 的核心創新:R-SWA 注意力機制

像人抄書一樣工作

百度研究團隊從人類抄書的行為中獲得了靈感。想像你在抄一本書:

  1. 你的眼睛看著原文(視覺 token)
  2. 你剛寫下的最後幾個字還在視野內(滑動視窗內的歷史 token)
  3. 更早的內容你已經不需要重新閱讀了(被滑出視窗的 token)

這就是 Reference Sliding Window Attention(R-SWA,參考滑動視窗注意力) 的核心思想。

技術細節

傳統多頭注意力(MHA)中,每生成一個新 token,KV Cache 就增加一條記錄,記憶體隨輸出長度線性增長。R-SWA 做了兩件事:

  1. 視覺 token 凍結:圖像編碼一次後保持不變,不參與滑動視窗的狀態更新。這避免了標準滑動視窗注意力會逐漸模糊圖像特徵的問題。
  2. 輸出 token 滑動視窗:每個新生成的 token 只關注最近 128 個已生成的 token,更早的 token 被推出視窗。KV Cache 變成固定長度的佇列——新 token 入隊,最舊的 token 出隊。

結果:無論文檔是 5 頁還是 100 頁,解碼階段的 KV Cache 大小恆定不變。

與 DeepSeek-OCR 的關係

Unlimited-OCR 建構在 DeepSeek-OCR 的開源基礎之上:

  • 保留 DeepEncoder 視覺編碼器(將 1024×1024 的 PDF 頁面壓縮為 256 個 token)
  • 將解碼器替換為 MoE(混合專家)架構,總參數 30 億,推理時僅啟用約 5 億
  • 所有標準注意力層替換為 R-SWA

性能實測:93% 準確率,32K 上下文視窗

基準測試成績

在 OmniDocBench v1.5/v1.6 標準 OCR 基準測試中:

模型綜合得分備註
Unlimited-OCR93.92%OmniDocBench v1.6 SOTA
DeepSeek-OCR87.70%基線模型
GPT-4o~88%閉源參考
Tesseract 5~72%傳統 OCR 參考

相比 DeepSeek-OCR 提升 6.22 個百分點,在 40+ 頁長文檔上表現尤為穩定。

實際使用場景

  • 單張圖片:使用 “Gundam” 模式(動態解析度),適合高精度單頁識別
  • 多頁文檔/PDF:使用 “Base” 模式,一次性輸入整個文檔,無需拆分頁面
  • 32K 上下文視窗:理論上可處理約 100 頁標準 PDF(每頁約 300 token)

兩種使用方式:線上體驗 vs 本地部署

方式一:Hugging Face Space 線上體驗(零配置)

最快的體驗方式是使用社群部署的 Hugging Face Space:

  1. 造訪 akhaliq/Unlimited-OCR
  2. 上傳圖片或 PDF 檔案
  3. 選擇快速裁剪模式或完整解析模式
  4. 等待處理,獲取 Markdown 格式輸出

適合快速驗證效果,但受限於共享 GPU 資源,長文檔可能需要排隊。

方式二:本地部署(完整控制)

硬體要求:

  • GPU:NVIDIA GPU,至少 8GB VRAM(推薦 RTX 3090/4090)
  • 記憶體:16GB+
  • 磁碟:模型約 6GB

安裝步驟:

# 1. 複製儲存庫
git clone https://github.com/baidu/Unlimited-OCR.git
cd Unlimited-OCR

# 2. 建立虛擬環境
conda create -n unlimited-ocr python=3.10
conda activate unlimited-ocr

# 3. 安裝相依性
pip install -r requirements.txt

# 4. 下載模型(從百度網盤或 Hugging Face)
# Hugging Face:自動下載

# 5. 執行推理
python inference.py \\
  --input your_document.pdf \\
  --mode base \\
  --output result.md

使用 vLLM 加速推理(推薦生產環境):

# 安裝 vLLM
pip install vllm

# 啟動服務
python -m vllm.entrypoints.openai.api_server \\
  --model baidu/Unlimited-OCR \\
  --max-model-len 32768

Apple Silicon 使用者:MLX 版本

社群已經將 Unlimited-OCR 移植到 Apple MLX 框架(LoJexLLM/Unlimited-OCR-MLX),M1/M2/M3 Mac 使用者可以原生執行。

Unlimited-OCR vs 傳統 OCR 工具對比

維度Unlimited-OCRTesseract 5Adobe Acrobat OCRPaddleOCR
長文檔處理✅ 一次性 100 頁❌ 逐頁處理❌ 逐頁處理❌ 逐頁處理
KV Cache恆定(R-SWA)N/AN/AN/A
表格識別✅ 跨頁表格保持完整⚠️ 簡單表格✅ 較好⚠️ 一般
公式識別✅ LaTeX 輸出❌ 不支援⚠️ 有限⚠️ 有限
模型大小~6GB~30MB雲端~100MB
開源✅ MIT✅ Apache 2.0❌ 商業✅ Apache 2.0
離線執行✅✅❌✅
GPU 要求8GB+ VRAMCPU 即可雲端可選 GPU

結論:Unlimited-OCR 不是要替代 Tesseract 這種輕量級工具,而是解決端到端長文檔 OCR 這個特定痛點。如果你的場景是掃描件 PDF 批次數位化、合約/財報全文提取、學術論文解析,Unlimited-OCR 是目前開源方案中的最優選擇。

社群生態與最新進展

常見問題(FAQ)

Q1: Unlimited-OCR 需要多少顯存?

推理時約需 8GB VRAM。雖然模型總參數 30 億,但 MoE 架構在推理時僅啟用約 5 億參數,加上 R-SWA 保持 KV Cache 恆定,實際顯存佔用遠低於同參數量的 dense 模型。

Q2: 支援哪些語言的文檔識別?

Unlimited-OCR 主要訓練資料來自中英文文檔,對中文和英文的識別效果最佳。其他語言(日文、韓文等)也能識別但準確率可能略低。

Q3: 與 PaddleOCR 有什麼區別?應該選哪個?

PaddleOCR 是傳統 OCR 管線(偵測 + 識別),輕量、快速、適合單頁場景。Unlimited-OCR 是端到端模型,優勢在於長文檔一次性處理和複雜版面理解。如果你只需要識別單張發票或名片,PaddleOCR 更合適;如果要處理整本掃描書或長篇合約,Unlimited-OCR 更優。

Q4: 可以商用嗎?

可以。Unlimited-OCR 採用 MIT 授權證,允許商業使用、修改和分發,無需額外授權。

Q5: 處理 100 頁 PDF 需要多長時間?

取決於 GPU 性能。在 RTX 4090 上,100 頁標準 PDF(每頁約 300 token 輸出)大約需要 3-5 分鐘。瓶頸主要在視覺編碼階段,解碼階段因為 R-SWA 保持恆定速度,不會隨頁數增加而變慢。

Q6: 沒有 GPU 能用嗎?

理論上可以,但速度會非常慢。CPU 推理 30 億參數模型不實用。建議沒有 GPU 的使用者使用 Hugging Face Space 線上體驗,或者考慮使用 Apple MLX 版本在 M 系列晶片 Mac 上執行。


希望這篇部落格文章對您有所幫助!如果您正在尋找更多 AI 工具,不妨看看我們的 2026 年 AI 工具終極指南,涵蓋 50+ 款工具的深度評測。