処理すべきPDFは約94万本ありました。100万ページに対してVLMを実行するのは遅くて高コストで、OCRがトランスフォーマーやVLMベースのアプローチへ移行するにつれて、その差はさらに広がっています。複雑な理解にはとても優れていますが、大規模運用ではスループットとコストがボトルネックになり得ます。
PaddleOCR(VLMではないバージョン)は、私の意見では最良のVLMなしのオープンソースOCRで、私のRTX 5090では約15 img/sしか出ませんでした。これでもまだ遅すぎました。PaddleOCR-VLはvLLMで2 img/sまでしか進みませんでした。
PaddleOCRはFP32推論のシングルスレッドPythonで、カーネル融合もありません。それをTurbo-OCRではC++/CUDA、FP16 TensorRT、融合カーネル、バッチ認識、マルチストリームのパイプライン・プーリングで置き換えました。HTTP/gRPC経由で画像とPDFを受け取り、バウンディングボックス、テキスト、レイアウト領域(PP-DocLayoutV3、25クラス)を返します。
レイアウトはリクエストごとに切り替え可能で、推論時間に追加されるのは約20%だけです。
結果:レイアウトなしのテキスト多めページで270 img/s、スカスカのページでは1,200+。ドキュメントを即座にインデックスする必要があるリアルタイムRAGにうまく機能しますし、大規模なコレクションを低コストで一括処理する用途にも向いています。
トレードオフ:複雑な表の抽出や構造化出力(インボイス → JSON)は、PaddleOCR-VLのようなVLMベースのOCRがまだ必要です。私は、Turbo-OCRに構造化抽出、markdown出力、表のパース、さらに多言語を持ち込む作業をしていますが、可能な限り速度を犠牲にしないようにしています..
Linux、RTX 50シリーズ、CUDA 13.2でテストしました。
[リンク] [コメント]




