皆さん、こんにちは、
Kreuzberg v4.5.0をリリースしました。大きなアップデートです。
Kreuzberg はMITライセンスのオープンソースの文書知能フレームワークで、12のプログラミング言語をサポートします。Rustで記述され、Python、TypeScript/Node.js、PHP、Ruby、Java、C#、Go、Elixir、R、C、およびWASMのネイティブバインディングを備えています。88以上のフォーマットからテキスト、構造、メタデータを抽出し、OCRを実行し、埋め込みを生成し、AIパイプラインと大規模な文書処理のために設計されています。
v4.5.0の新機能
たくさんあります!完全なリリースノートは、変更履歴をご覧ください。
要点はこれです:Kreuzbergは今や文書構造(レイアウト/表)を理解します。これを実現したのはDoclingのモデルを使用したためだと分かるでしょう。
Doclingは素晴らしいプロジェクトで、彼らのレイアウトモデルであるRT-DETR v2 (Docling Heron) は優秀です。 Apacheライセンスの下で完全にオープンソースです。私たちはそれをKreuzbergに直接組み込みました。その点は前もってお伝えします。
私たちが行ったのは、それをRustネイティブのパイプラインに埋め込むことです。結果として、Doclingの品質に匹敵する、場合によってはそれを凌駕する文書レイアウト抽出が得られます。平均で約2.8倍速く、メモリのオーバーヘッドはごくわずかで、Pythonを依存関係にしません。すでにDoclingを使って品質に満足している場合は、Kreuzbergを試してみてください。
171件のPDF文書(学術論文、政府・法的文書、請求書、OCRスキャン、エッジケースを含む)でDoclingとベンチマークを行いました:
構造 F1: Kreuzberg 42.1% 対 Docling 41.7%
テキスト F1: Kreuzberg 88.9% 対 Docling 86.7%
平均処理時間: Kreuzberg 1,032 ms/doc 対 Docling 2,894 ms/doc
速度差は、Rustのネイティブメモリ管理、文字レベルのpdfiumテキスト抽出、ONNX Runtime推論、ページ全体のRayon並列処理によるものです。
RT-DETR v2 (Docling Heron) は、全12言語バインディングにまたがって17種類の文書要素タイプを分類します。表を含むページでは、Kreuzbergはページ画像から検出された各表領域を切り出し、SLANet-Plusを実行します。SLANet-Plusは表の内部構造(行、列、セル)を予測する専門モデルです。予測されたセルグリッドはネイティブPDFのテキスト位置と照合され、正確なマークダウン表を再構築します。
KreuzbergはPDFのネイティブテキストレイヤから直接テキストを抽出し、正確な文字位置、フォントメタデータ(太字、斜体、サイズ)、およびUnicodeエンコーディングを保持します。レイアウト検出はその高忠実度テキストを文書の視覚的構造に従って分類・整理します。ネイティブテキストレイヤを持たないページ(スキャン文書、画像のみのPDF)では、Kreuzbergは自動的にテキストの欠如を検出し、Tesseract OCRへフォールバックします。
PDFにタグ付き構造ツリーが含まれている場合(PDF/Aやアクセシビリティ対応文書に一般的)、著者の元の段落境界と見出し階層を活用し、レイアウトモデルの予測を分類のオーバーライドとして適用し、両方の利点を最大限に活用します。
破損したフォントCMapのスペース問題("co mputer" → "computer")を修正しました。品質ベースのフォールバックを備えた新しいマルチバックエンドOCRパイプライン、PaddleOCR v2(統一された18,000+文字の多言語モデル)とバッチAPIの大規模なクリーンアップも追加しました。
本番環境でDoclingを実行している場合は、それと比較してKreuzbergを評価し、感想をお知らせください!ぜひお試しください GitHub :)
[リンク] [コメント]