300ページの法的文書や製本された年次報告書をほとんどのOCRパイプラインに投入すると、ソフトウェアは静かにそれをチャンク(塊)に分割してしまう。1ページ目を処理し、メモリを解放する。2ページ目を処理し、メモリを解放する。システムが巻末の証拠資料に到達する頃には、導入部から得られたはずの文脈はとうに失われている。脚注は孤立し、ページをまたぐテーブルは構造を失い、ページをまたいで続くヘッダーは誤ってラベル付けされる。その結果、人間が再構築しなければならない、つぎはぎのテキストファイルが出来上がる。

Baiduはこのワークフローが根本的に欠陥があると考えている。彼らの答えはUnlimited OCRだ。これは、通常発生するようなGPUメモリの爆発的な増加を伴わずに、大規模なマルチページドキュメントを単一のフォワードパスで取り込むように設計されたアーキテクチャである。その秘訣は、メモリをハードドライブのように扱うのではなく、人間の作業記憶(ワーキングメモリ)のように扱う新しいアテンション・メカニズムにある。つまり、ソース資料を目の前に置き続け、直前に書いたことを覚え、遠い過去は忘れていくという仕組みだ。

なぜ長文ドキュメントが標準的なOCRを台無しにするのか

解決策を理解するには、従来のエンドツーエンドOCRシステムがどこで破綻するのかを知る必要がある。

ほとんどの現代的なOCRパイプラインは、デコーダーとして大規模言語モデルを使用している。モデルがページを読み取ってテキストを生成する際、「KVキャッシュ」と呼ばれる内部表現を保存する。これは、モデルがすでに何を言ったかを追跡するのに役立つ、キーと値の継続的な記録のようなものだ。問題は、この記録が出力される新しい行ごとに線形に増大していくことだ。10ページを処理すればキャッシュは10ページ分になり、100ページを処理すれば数十万トークンへと膨れ上がり、VRAMを食いつぶして生成速度を極端に低下させてしまう。

エンジニアたちは、この問題に対して単に回避策をとることで対処してきた。ドキュメントを単一のページに分割し、各ページを独立してモデルに実行させ、ステップごとにKVキャッシュをリセットするのだ。これによって動作は維持できるが、モデルから連続的な文脈が失われてしまう。3ページ目で始まり4ページ目で終わる段落は分断される。ページをまたぐテーブルのフォーマットは崩壊する。デコーダーがそれ以前の内容を保持する永続的なメモリを持っていないため、前のセクションへの参照はリンク切れとなってしまう。モデルはドキュメントを実際に読んでいるのではなく、一連の孤立したフラッシュカードをこなしているに過ぎないのだ。

人間の知恵:Reference Sliding Window Attention

Baiduの研究者たちは、人間の認知能力から着想を得ることでこの問題に挑んだ。本から一節を手書きで書き写す場面を想像してみてほしい。以前に書き写したすべての文章を頭の中に保持し続けることはないはずだ。ソース(原文)をちらっと見て、直前に書いた数語を確認し、書き続ける。作業記憶はわずかだが、ソーステキストが目の前に開かれたままなので、作業は苦もなく行える。

Reference Sliding Window Attention、すなわちR-SWAは、まさにこの直感を形式化したものである。

内部的には、KVキャッシュは固定長のキューとなる。モデルが新しいトークンを生成する際、「リファレンストークン」(元の視覚的な画像埋め込みと初期プロンプト)への完全な可視性は維持されるが、自身が生成した直近の128トークンのみを遡って参照する。それだけだ。モデルが1ページ目にいようと50ページ目にいようと、自身の出力履歴のメモリ使用量は一定に保たれる。キャッシュは増大しない。再利用されるのだ。

これは