Baidu の長文書 OCR 解析モデル第2世代:複数ページの文書(本全体すらも)のページ画像を順番に一度に入力し、ページごとに解析結果を出力するとともに、ページ間のコンテキストを活用します。第1世代は DeepSeek-OCR の推進を目標としていましたが、第2世代では SR-SWA 注意機構が新たに追加され、文書の長さがコンテキストウィンドウの制限を受けなくなりました。
上昇スコア 234 · いいね 245 · ダウンロード数 513
理由
- SR-SWA(スパース参照スライディングウィンドウ注意機構)により、超長シーケンス内の画像・テキスト注意機構を固定数のワーク参照(例えば 512 トークン)に圧縮し、公式によれば、各ステップのデコード遅延とメモリ使用量は文書の長さにほぼ依存しません。
- 公式によれば、数十ページ規模(MPDocBench)および数百ページ規模(MarathonDocBench)のベンチマークでいずれも最高成績を記録しており、MarathonDocBench データセットも同時に公開されています。具体的なスコアはリーダーボードの画像内でのみ確認でき、本文には数値が記載されていません。
- MIT ライセンス。10 月 27 日にリリースされ、以前の号では未収録でした。モデルカードには『ハリー・ポッター』全巻を一度のリクエストで解析する様子のリプレイ GIF が添付されており、ModelScope と Baidu Intelligent Cloud でも利用可能になっています。上昇スコア 234 は単に注目度を示すものです。
使い方
- Transformers での迅速なテスト(公式環境:Python 3.10、torch 2.13.0、transformers 4.52.1、A800-80GB):AutoModel.from_pretrained("baidu/Unlimited-OCR-2", trust_remote_code=True, use_safetensors=True, torch_dtype=torch.bfloat16)。複数ページの場合はページ順に画像リストを model.infer_multi(tokenizer, image_files=...) に渡します。単一ページの場合は model.infer(...) を使用し、デフォルトではチャンク分割された gundam モードが適用されます。
- サービス化には公式推奨の SGLang を使用します。公式カスタムの SGLang wheel(0.5.20.dev10)と PyMuPDF をインストールし、カード内の設定に従って環境変数を設定します(デフォルトでは 10 ページごとに1ウィンドウ、各ページの出力上限は 20000 トークン)。--chat-template unlimited-ocr を指定して起動後、OpenAI 互換インターフェースを利用します。PDF はまず 300 dpi で画像に変換します。
- リクエストでは temperature を 0 に設定し、例に従って重複防止用の n-gram logit processor を適用します(ngram_size 35、複数ページでは window_size 1024、単一ページでは 128)。
リスク
- trust_remote_code が必要であり、SGLang にはカスタム wheel のインストールが必要です。モデルカードにはパラメータ数と最低メモリ要件が記載されておらず、Transformers 経由のパスは A800-80GB の環境でのみテストされています。
- ページウィンドウを小さくするとメモリ使用量は低下しますが、公式によればウィンドウ境界をまたぐコンテンツはコンテキストが失われます。SAM 注意機構バイアスのデフォルト設定ではメモリオーバーフローが発生する可能性があり、カード内の指示に従って 64 に変更する必要があります。
- 「最高成績」は公式による自己テストであり、リーダーボードには画像のみが掲載されており、検証可能な数値はありません。