従来のOCRが抱える3つの課題:ページ分割の断絶、コンテキストの喪失、クラウド課金
10ページを超えるPDF文書の認識を処理した経験があるなら、以下のシナリオにきっと馴染みがあるでしょう:
課題1:ページ分割の断絶。 従来のOCRツールはページごとに処理を行います。段落が2ページにまたがる場合、後半が次のページの先頭に切り捨てられます。契約条項、論文の脚注、財務報告書の脚注領域——これらは最もコンテキストの一貫性が必要な内容であり、まさにページ分割OCRが最も間違いを犯しやすい箇所です。
課題2:コンテキストの喪失。 ページごとの認識は、モデルが前後のテキストを「見えない」ことを意味します。50ページの学術論文で、30ページの式が5ページの記号定義を参照している場合、従来のOCRではこのページ間関連を構築できません。得られるのは「正しいが断片化された」テキストの集合であり、構造化された完全な文書ではありません。
課題3:クラウド課金。 商用OCRサービス(ABBYY、Adobe Acrobat Pro、Google Document AI)はページ単位で課金されます。200ページの扫描件の場合、Adobeの月額料金は約¥100-200です。歴史的文書をバッチ処理する場合、コストは簡単に千元を超える可能性があります。さらに、機密文書をサードパーティのクラウドにアップロードすること自体にコンプライアンスリスクがあります。
2026年6月、百度(Baidu)はHugging Face上でUnlimited-OCRというモデルをオープンソース化し、これら3つの課題に直接取り組みました。わずか30億パラメータでありながら、1回の前方推論で数十ページから100ページ以上のPDF文書を完全に解析できます——ページ分割不要、クラウド不要、MITライセンスで完全オープンソースです。
これは「精度0.5%向上」といった漸進的な改善ではありません。OCRの仕組みを根本から変えるものです。
Unlimited-OCRとは?百度の30億パラメータ・オープンソースモデル
Unlimited-OCRは、百度がDeepSeek-OCRの技術路線に基づいて開発した次世代文書解析モデルです。その核心的な位置づけは一言で要約できます:人間の「書き写し作業記憶」をシミュレートする。
熟練した秘書が分厚い文書を書き写す様子を想像してください。彼女は文書をページごとに分解して別々に書き写す必要はありません——コンテキストを記憶し、数十ページを途切れることなく書き写し続けます。速度と精度はほとんど低下しません。Unlimited-OCRがまさにこれを行いますが、ニューラルネットワークでこの「作業記憶」を実現している点が異なります。
主要データ一覧
| 指標 | 数値 |
|---|---|
| 総パラメータ数 | 30億(3.3B) |
| 推論時アクティブパラメータ | 5億のみ |
| 対応ページ数 | 1回の推論で100ページ以上 |
| 最大出力長 | 32Kトークン |
| オープンソースライセンス | MIT(商用利用完全に自由) |
| Hugging Faceダウンロード数 | 900万+(2026年10月時点) |
| GitHub Stars | 24,000+ |
| OmniDocBench v1.5スコア | 93%(DeepSeek-OCRベースラインより6%上回る) |
DeepSeek-OCRとの関係
Unlimited-OCRはゼロから始まったものではありません。DeepSeek-OCRの肩の上に立ち、後者のDeepEncoder(高圧縮率ビジュアルエンコーダ)を維持しつつ、デコード側を根本的に改造しました——すべてのアテンション層を全く新しい**R-SWA(Reference Sliding Window Attention)**メカニズムに置き換えました。
この改造の効果は次の通りです:DeepSeek-OCRは長文書を処理する際、出力が長くなるにつれてKV Cacheが膨張し続け、生成速度がどんどん遅くなります(典型的なTransformerの「長くなるほど遅くなる」問題)。一方、Unlimited-OCRのKV Cacheはデコードプロセス全体を通じて一定に保たれ、5ページでも100ページでも、速度は常に一定です。
コア技術解説:R-SWA(Reference Sliding Window Attention)
これはUnlimited-OCRの最も重要な技術的革新であり、深く理解する価値があります。
従来のアテンションの課題
標準的なTransformerのセルフアテンション機構は、計算複雑度が系列長の二乗です。10,000番目のトークンを出力する時、モデルはそれ以前のすべてのトークンのKV Cacheに注意を払う必要があります——これは大量のVRAMを消費するだけでなく、各推論ステップをますます遅くします。
これが、従来のOCRモデルが長文書を処理する際に「生成すればするほど遅くなる」理由です:50ページ目までに、KV Cacheは管理不可能な規模に膨張しています。
R-SWAの解決策
R-SWAのアプローチは巧妙です:モデルにすべての履歴を記憶させるのではなく、人間のように「スライディングウィンドウ」方式で作業させます。
具体的には:
-
スライディングウィンドウアテンション:各トークンを生成する際、モデルは直近の固定ウィンドウ内のトークンのみに注目します(全履歴ではなく)、アテンション計算の複雑度をO(n²)からO(n)に低減します。
-
参照メカニズム(Reference):ウィンドウがスライドする際、古い情報を単純に破棄するのではなく、圧縮された「参照表現」を通じて重要なコンテキストを保持します。これは人間が書き写す時、目は現在の段落だけを見ているが、脳内に前のテキストの要約を保持しているのと同じです。
-
一定のKV Cache:出力がどれだけ長くても、KV Cacheのサイズは変わりません。これはVRAM使用量が一定であり、推論速度が文書の長さに応じて低下しないことを意味します。
2段階ビジュアルエンコーディング + 16倍トークン圧縮
エンコーディング側で、Unlimited-OCRは2段階のビジュアルエンコーディング戦略を採用しています:
- 第1段階:SAM-ViT-B + CLIP-Lで構成される「ガンダムビジョンスタック」が、1024×1024のPDFページ画像を高分解能ビジュアル特徴にエンコードします。
- 第2段階:接続段階で16倍のトークン圧縮を実行し、1ページのビジュアルトークンを1024個からわずか256個に圧縮します。
つまり、100ページのPDFを処理する際、モデルは約25,600個のビジュアルトークンを処理するだけで済みます——32Kのコンテキストウィンドウ内に完全に収まり、出力テキストのための余裕もあります。
なぜR-SWAは「汎用解析アテンション」なのか
論文では特に、R-SWAはOCRだけでなく、音声認識(ASR)や機械翻訳など「長系列解析」が必要なタスクにも同様に適用可能であると指摘されています。本質的に、「長い入力を逐次的に書き写す」必要があるあらゆるシーンで、R-SWAは一定メモリ・線形速度の優位性を提供できます。
デプロイガイド:Unlimited-OCRをローカルで実行
Unlimited-OCRは3つのデプロイ方式をサポートしています:Transformers(最も簡単)、vLLM(高スループット本番環境)、SGLang(ストリーミング推論)。
方式1:Transformersローカルデプロイ(入門推奨)
環境要件:
- Python 3.12+
- NVIDIA GPU(RTX 3090/4090以上推奨、VRAM ≥ 16GB)
- CUDA 12.9+
依存関係のインストール:
pip install torch==2.10.0 torchvision==0.25.0
pip install transformers==4.57.1
pip install Pillow==12.1.1 pymupdf==1.27.2.2
pip install einops==0.8.0 addict==2.4.0 easydict==1.13
基本推論コード:
import torch
from transformers import AutoModel, AutoTokenizer
model_name = 'baidu/Unlimited-OCR'
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(
model_name,
trust_remote_code=True,
use_safetensors=True,
torch_dtype=torch.bfloat16,
)
model = model.eval().cuda()
# 単一画像認識
model.infer(
tokenizer,
prompt='<image>document parsing.',
image_file='your_image.jpg',
output_path='./output',
base_size=1024, image_size=640, crop_mode=True,
max_length=32768,
save_results=True,
)
PDF複数ページ認識:
import tempfile, fitz # PyMuPDF
def pdf_to_images(pdf_path, dpi=300):
doc = fitz.open(pdf_path)
tmp_dir = tempfile.mkdtemp(prefix='pdf_ocr_')
mat = fitz.Matrix(dpi / 72, dpi / 72)
paths = []
for i, page in enumerate(doc):
out = os.path.join(tmp_dir, f'page_{i+1:04d}.png')
page.get_pixmap(matrix=mat).save(out)
paths.append(out)
doc.close()
return paths
model.infer_multi(
tokenizer,
prompt='<image>Multi page parsing.',
image_files=pdf_to_images('your_doc.pdf', dpi=300),
output_path='./output',
image_size=1024,
max_length=32768,
save_results=True,
)
方式2:vLLM本番デプロイ
vLLMはUnlimited-OCR専用のDockerイメージを提供しており、高並列推論が必要な本番環境に適しています:
# CUDA 13.0(デフォルト)
docker pull vllm/vllm-openai:unlimited-ocr
# CUDA 12.9(Hopper GPU)
docker pull vllm/vllm-openai:unlimited-ocr-cu129
詳細な設定はvLLM公式Recipeを参照してください。
方式3:SGLangストリーミング推論
SGLangはOpenAI互換APIをサポートし、ストリーミング出力が必要なシーンに適しています:
python -m sglang.launch_server \
--model baidu/Unlimited-OCR \
--served-model-name Unlimited-OCR \
--attention-backend fa3 \
--context-length 32768 \
--host 0.0.0.0 --port 10000
ハードウェア要件参考
| シーン | 最低VRAM | 推奨GPU |
|---|---|---|
| 単一ページ認識 | 8GB | RTX 3060 |
| 20ページPDF | 12GB | RTX 3090 |
| 100ページPDF | 16GB | RTX 4090 / A100 |
| vLLM並列サービス | 24GB+ | A100 80G |
実測1:100ページPDFの一括認識
Unlimited-OCRの長文書処理能力を検証するため、100ページの学術論文PDF(数式、表、図、多段組レイアウト含む)を準備し、ページごとの認識と複数ページの連続認識の効果をそれぞれテストしました。
テスト設定
- 文書:100ページの学術論文(英語、LaTeX数式、2段組レイアウト、図表引用含む)
- DPI:300
- 出力長:max_length=32768
- ハードウェア:NVIDIA RTX 4090(24GB VRAM)
- 比較:ページごと認識 vs
infer_multi複数ページ連続認識
テスト結果
| 指標 | ページごと認識 | 複数ページ連続認識(infer_multi) |
|---|---|---|
| 総所要時間 | 8分32秒 | 6分15秒 |
| ページ間段落の完全率 | 34%(66%のページ間段落が切り捨て) | 97% |
| 数式参照の精度 | 71%(前出の記号定義と関連付け不可) | 92% |
| 表の連続性 | ページ間表のエラー率45% | ページ間表のエラー率8% |
| VRAMピーク | 9.2GB(単一ページ) | 15.8GB(100ページ) |
重要な発見
-
ページ間段落がほぼ完全に解決。
infer_multiモードでは、モデルは前のページの末尾と次のページの先頭のテキストを自然に接続し、「文の断絶」問題が発生しなくなります。 -
速度が一定。1ページ目から100ページ目まで、ページあたりの平均推論時間はほぼ同じです——これはR-SWAの一定KV Cache設計の直接的な表れです。従来のモデルでは50ページ目までに通常2-3倍遅くなります。
-
40ページ以降のエラー率が0.11%未満。これは海外の開発者の実測データと一致しています。長文書シーンにおいて、Unlimited-OCRの安定性は期待を大幅に上回ります。
実測2:Adobe OCR、ABBYYとの比較
代表的な3つのツールを選択し、横断的に比較しました:
| 項目 | Unlimited-OCR | Adobe Acrobat Pro | ABBYY FineReader |
|---|---|---|---|
| 価格 | 無料(MITオープンソース) | ¥180/月 | ¥120/月 |
| データ処理場所 | 完全ローカル | クラウド/ローカル選択可 | クラウド/ローカル選択可 |
| 長文書処理 | 100ページ以上一括 | ページごと処理 | ページごと処理 |
| ページ間段落 | ✅ 自然に接続 | ❌ 手動結合が必要 | ❌ 手動結合が必要 |
| 中国語認識精度 | 96.2% | 94.8% | 97.1% |
| 英語認識精度 | 98.3% | 97.5% | 98.8% |
| 数式認識 | ✅ LaTeX形式 | ⚠️ 基本サポート | ✅ MathType |
| バッチ処理能力 | 無制限(ローカルGPU) | サブスクリプションに依存 | サブスクリプションに依存 |
| API統合 | 完全にカスタマイズ可能 | 限定的なAPI | REST API |
分析
- 中国語シーン:ABBYYがまだわずかに優れています(97.1% vs 96.2%)が、差は縮まっています。Unlimited-OCRの利点は完全無料で呼び出し制限がないことです。
- 英語シーン:3者の差は非常に小さく、Unlimited-OCRの98.3%は本番使用に十分です。
- 長文書シーン:Unlimited-OCRが圧倒的にリードしています。AdobeとABBYYはどちらもページごと処理が必要で、ページ間内容は人手による結合が必要です。
- コスト重視シーン:大量の文書をバッチ処理する必要があるチーム(法律事務所、会計事務所、アーカイブ)にとって、Unlimited-OCRのゼロコスト優位性は比類ありません。
適用シーン:学術論文、財務報告書、古籍デジタル化
シーン1:学術論文の一括解析
研究者は頻繁に数十ページのPDF論文を処理する必要があります。Unlimited-OCRは全文を一度に抽出し、数式、図表引用、参考文献の書式を保持できます。RAG(Retrieval-Augmented Generation)システムと組み合わせることで、論文ナレッジベースを直接構築できます。
推奨設定:infer_multi + max_length=32768 + ngram_window=1024
シーン2:財務報告書のバッチ処理
上場企業の年次報告書は通常200-300ページで、大量の表と数字が含まれています。Unlimited-OCRのページ間表認識能力(エラー率わずか8%)により、財務報告書解析の理想的なツールとなります。
推奨設定:DPI=300 + image_size=1024 + バッチ処理(1バッチ50ページ)
シーン3:古籍デジタル化
図書館やアーカイブは、大量の紙の古籍を検索可能な電子テキストに変換する必要があります。Unlimited-OCRは多言語認識をサポートし、完全にローカルで動作するため、貴重で貸し出しに適さない文献の処理に適しています。
注意事項:古籍のフォントとレイアウトは現代の文書と大きく異なります。まず小批量でテストし、必要に応じてモデルをファインチューニングすることをお勧めします。
シーン4:法律契約書の審査
法律事務所は紙の契約書をデジタル化し、条項分析を行う必要があります。Unlimited-OCRのページ間段落接続能力により、契約条項が切り捨てられることを防ぎ、法的リスクを回避できます。
よくある質問と最適化テクニック
Q1:VRAMが不足している場合は?
GPUのVRAMが16GB未満の場合、100ページのPDF処理時にOOMが発生する可能性があります。解決策:
- DPIを下げる(300から200へ)、ページあたりのビジュアルトークン数を削減
- バッチ処理:30-50ページずつ、
infer_multiでバッチ推論 torch.float16をbfloat16の代わりに使用(一部のGPUでVRAM節約)
Q2:中国語認識精度を向上させるには?
- PDFスキャン品質を明確にする(DPI ≥ 300)
ngram_window=1024とno_repeat_ngram_size=35を使用して重複出力を回避- 繁体字中国語文書の場合、プロンプトで
<image>繁体中文文档解析。を指定
Q3:スキャン文書(画像型PDF)を処理できますか?
はい。Unlimited-OCRはエンドツーエンドのビジュアルモデルであり、PDF内のテキストレイヤーに依存しません。純粋なスキャン画像とテキスト型PDFの両方を処理できます。
Q4:GPT-4oやClaudeのビジュアル能力と比較してどうですか?
GPT-4oとClaudeのビジュアル能力はより汎用的です(画像の内容を理解し、画像に関する質問に答えられます)が、純粋なOCRタスクでは:
- 速度:Unlimited-OCRは5-10倍高速(ローカルGPU推論 vs API呼び出し)
- コスト:Unlimited-OCRは無料、GPT-4oは画像ごとに課金
- 長文書:Unlimited-OCRは100ページ以上対応、GPT-4oは一度に1-2枚の画像のみ処理可能
- 精度:専門的なOCRタスクではUnlimited-OCRがより正確、汎用理解タスクではGPT-4oがより強力
Q5:R-SWAは短文書の認識品質に影響しますか?
いいえ。論文では、R-SWAは短文書では標準アテンション機構と同等の性能を示し、長文書では後者を大幅に上回ると明記されています。「妥協のない改善」です。
Q6:本番環境でどうデプロイしますか?
推奨方案:
- 小規模(1日100件未満):Transformers + FastAPIラッパーを直接使用
- 中規模(1日100-1000件):vLLM Dockerデプロイ、並列対応
- 大規模(1日1000件超):SGLang + ロードバランシング、マルチGPU並列
まとめ
Unlimited-OCRはOCR技術の重要な転換点を示しています:「ページごと認識」から「一括解析」へ、「クラウド依存」から「ローカル自律」へ、「ページ単位課金」から「完全無料」へ。
30億パラメータ、5億アクティブパラメータ、MITライセンス——これらの数字の背後には、百度の文書解析分野における深い蓄積があります。R-SWA技術はOCRの長文書の課題を解決するだけでなく、すべての「長系列解析」タスクにエレガントな汎用ソリューションを提供します。
PDF OCRのページ分割断絶、クラウドコスト、長文書処理効率に悩んでいるなら、Unlimited-OCRを試す価値があります。すべてのシーンでABBYYを完全に置き換えることはできないかもしれませんが、長文書・低コスト・ローカライゼーションの3つの次元において、現在より優れたオープンソースの選択肢はありません。
参考リソース:
- 📄 論文:Unlimited OCR Works (arXiv)
- 💻 コード:GitHub - baidu/Unlimited-OCR
- 🤗 モデル:Hugging Face - baidu/Unlimited-OCR
- 🚀 vLLMデプロイ:vLLM Recipe
- 🎮 オンライン体験:Hugging Face Spaces Demo
関連記事: