ベンチマーク
リポジトリ所有のドキュメントルーティングベンチマークで現在計測している内容。
ベンチマークは、ソースダイジェスト、制約、機能スナップショット、ポリシーバージョン、人手で書いた許容ルートを固定し、17 件の実在する文書に対して indx を実行します。コミット済みレポートには、日本の有価証券報告書と公共文書、米国の金融レポート、図面、スキャン、手書き、暗号化、混在ページ、大容量ファイル、そしてグラフシートをどの機能も読めないスプレッドシートが含まれます。
3 つの数値で見る強み
Section titled “3 つの数値で見る強み”ラベルに依らない 3 つの数値です。注記より下にあるものが正しいかどうかに、この 3 つは左右されません。
これに対し、インストール済みのどの能力も読めないページが 15 ページあります。計画はそれを人に渡し、経済テーブルの 1 ページ 2 ドルで $28.00 と見積もります。コーパス全体の比較が全ページ VLM を下回るのは、ひとえにこの分です。読めなかったページは安く読めたページではない、という理由でここに分けて置いています。
0.05 s — 1 ページあたりの秒数
17 件・1,361 ページの実測の実行時間。1 回の逐次実行のウォールクロックであり、同時実行時のスループットではありません。大半のページはネイティブのテキスト層で、スキャンはこれより桁違いに遅くなります。
$0.00003 — 1 ページあたりのルーティング費用(全ページ VLM なら $0.02)
一方はルーターの経済テーブルの見積もり、もう一方は同じテーブルによる全ページ VLM の見積もりです。実際に課金されたのは 1 ページだけで、そのページは表が 8 倍高く見積もっていました。請求書ではありません。
98.8% — CPU のみで処理したページ
1,361 ページのうち GPU を使ったページは 0 です。これはルーティングの性質であると同時にこのインストールの extras の性質でもあります。この実行は ocr extra を積んでいて、だからこそスキャンが CPU で読めています。
スプリントの枠組みが、強みはこれらの軸で表現されると述べています。 それぞれについて、このベンチマークが今日言えることを置きます。同条件の数値が出るまで、競合の列は作りません。
| 軸 | 状態 | どこにあるか |
|---|---|---|
| 速度 | 計測済み | 上の 1 ページあたりの秒数。実行された全ページが対象です。 |
| 必要リソース | 計測済み | 上の CPU のみの割合と、GPU ページ 0。 |
| コスト | 計測済み | 上のルーティング対全ページ VLM。両側とも同じ表から値付けしています。 |
| パース精度 | 計測済み、ラベルはレビュー中 | テキスト再現率とフィールド精度。ラベル付き 14 スコープが対象です。 |
| ルーティング品質 | 計測済み、ラベルはレビュー中 | ルート精度、読み取り許容率、フォールバック精度。ラベル付き 28 スコープが対象です。 |
| 複雑な文書と図面 | 計測済み、ラベルはレビュー中 | 工程系統図 1 件と図面 2 件。この規模のコーパスでのシグネチャ精度 1.0 です。 |
| few-shot 性能 | まだ | レシピ形式と事例ストアが必要です。summary.kr1.few_shot_setup_days は欠落ではなく null で、欠けていること自体がブロックに見えるようにしてあります。 |
- ルート精度は、計画された機能が、そのスコープに対してラベル付けされた許容ルートのいずれかであるかを評価します。現在の誤りは手書きラベルのケースです。低コストな事前観察では画像を検出できますが、手書きと印刷文字をまだ区別できません。
- 読み取り許容率は厳密なルート精度と分けて評価します。別の読み取り機能でも要件を満たす場合があるためです。
- フォールバック精度は、計画が宣言したフォールバックを、スコープごとのラベル付き期待値と比較して採点します。レポートで最も弱い数値ですが、それでも表示しています。
- 実費用は、各機能が自己申告した額の合計にすぎません。誰も課金しなかったルートはゼロと報告されます。請求額ではありません。実行の中で課金されたページは 1 つ、下のビジョンモデルの錨です。
- 実行されたベースラインは、OCR のラングのテーブル品質では満たせない品質の下限の下で 2 度目に採用された地図スキャンで、計画は文書が何であるかを理由に
generic-vlm(gpt-5.4-mini)を選びます。テーブルが 3 秒と $0.02 と値付けするページを、3.2 秒、$0.0024 で読みました。費用比較の中で値付けではなく課金された唯一の錨であり、このページではテーブルがこのモデルを 8 倍高く値付けし、レイテンシは当てていると述べています。 - CPU のみの割合は、GPU を使わずに処理されたページを示します。すべてのページの読み取り成功を意味しません。その隣の標準ワークロードは、何らかの機能が読んだ実行ページすべてです。人間に回された 15 ページはデバイスを持たないので独立したバケットとして報告し、残る 1,345 ページの CPU のみの割合は 100% です。
- テキスト再現率とフィールド精度は正解に対して測定します。14 のラベル付きスコープが、文書が実際に述べている文字列と名前付きの値を持ち、実行は 22 文字列中 20、20 フィールド中 20 を読み取りました。誤りの 1 つは地図スキャンで PP-OCR が 1 文字を取り違えたもの、もう 1 つはフォントの ToUnicode マップが嘘をつくネイティブページで、リーダーは誤った語に対して成功を宣言します。どちらもエンジン自身の信頼度には現れず、それがこの測定の要点です。これが費用比較の品質側であり、意図的に小さな部分集合の上で測っています。
- レーンごとのエンティティ再現率は、6 つのラベル付きスコープで人が読む 30 の固有表現に対して測ります。インストール済みの各抽出器レーンを同じ計画の上で単独で走らせ、
ner-llm(ホストされたgpt-5.4-nano)が 6 ケース合計 $0.12 で 70%、patternsが 50%、onnxが 27%、vibratoが 3% を読み取りました。適合率ではなく再現率です。ラベルはページの固有表現の一部を名指すのであって全部ではないからです。ホストされたレーンの取りこぼしのうち 6 つは、その既定のラベル一覧が尋ねない電話番号と登録番号で、パターンレーンが無料で読むものです。一般化する前にレーンごとのentities_missingを読んでください。vibrato の取りこぼしの大半は、それが表現できない粒度の問題です。 - 言語精度は、検出器の第一候補がラベルの名指す言語であるラベル付きスコープの割合で、検出器がインストールされているときだけ測ります。
langエクストラで 21 スコープ中 20 でした。誤りはビジョンモデルが書き起こした漢字だけの地図で、検出器はそれを中国語と読みます。先送りした宣言済み言語検出器が待つ短い文書のケースを試せる長さのものは、その中にありません。 - 未読率を指標として残すのは、何も読めなかったページを消さずに数えるためです。コミット済みの実行は
ocrエクストラを含むため、スキャンページはすべて読まれています。未読の 1% は FDIC ワークブックの 14 枚のグラフシートで、セルではなく絵を抱えているものです。 - スプレッドシートのケースは、
office-extractionが入るまでは拒否でしたが、いまは読み取られます。ただし 14 枚のグラフシートは今も読めません。オブザーバーがテキストレイヤーなしと報告し、計画が最初から人間に回します。上の見積もりが抱えているのはこの分です。
KR1 ブロックと、各数値に今も欠けているもの
Section titled “KR1 ブロックと、各数値に今も欠けているもの”コミット済みレポートの summary.kr1 は、5 つの目標数値を 1 ブロックとして載せます。どれも再計算ではなく、すでに summary にある値を言い直しているだけなので、ブロックが要約対象から乖離することはありません。4 つは実測値を持ち、1 つには実装がまったくありません。そしてそのすべてが、レポート自身は述べていない但し書きを抱えています。
- ルーティング精度は、計画された機能 ID を手書きの
acceptable_capability_idsと比較します。より強い主張 —「品質閾値を満たす最低コストの候補」— は確認できません。actuals.qualityは機能の自己申告であり、何に対しても測定されていないからです。 - CPU のみの割合は、ルーティングについてというよりこのインストールの extra についての数値です。コミット済みの実行は
--extra ocrを含むので、スキャンページはすべて CPU で読まれます。ページ重み付けなので、336 ページの提出書類は 9 ページの開示文書の 37 倍の重みを持ちます。1.0 を下回っているのは、FDIC ワークブックのグラフシートがデバイスを持たないmanual-reviewに届いているからにすぎません。 - TCO 削減は見積値と見積値の比較です。両側とも
indx_router/economics.pyから値付けされ、actual_cost_usdはビジョンの 1 ページとホストされた抽出器の実行に課金された $0.0024 です。ゼロで打ち切らず符号つきで出します。グラフシートが 1 ページ $2 と 1 日で人間へ計画されるとき、ルーティング側は全ページ VLM のベースラインを本当に上回るからです。ゼロで下限を切った数値は、この数値が存在する唯一の理由を隠します。 - 優先データ型カバレッジは、このインストールがその型を観察し、何らかの機能がそれを読み、かつ採用済みケースが 1 件それを採点したときにだけ数えます。11 の型が数スライスにわたり観察も読み取りもできていた間、この数字は 2 でした。それは後退ではなく、規則が働いていた姿です。
- 類似する新形式の少数事例セットアップには、レシピもサンプルストアも過去事例検索も存在しません。欠落ではなく
nullです。実装のない KR は、ブロックから消えているのではなく、見えているべきだからです。
取り繕わずに記録します。いずれも、このベンチマークが負っている測定であって、測定対象のコードの欠陥ではありません。
-
検索のラベルは、2 つのネイティブ PDF にわたる 14 クエリです。 スキャン、スライド、表を扱うものはなく、1 クエリが再現率 7 ポイントにあたります。必要だった英語の文書 NASA-STD-5001B はマニフェストの 18 番目のケースです。コミット済みのルーティングのレポートはそれより前のもので、今も 17 件を採点しています。その実行には設定済みのビジョンモデルが必要だからです。次の完全な実行がそれを採点します。
-
実行は
--extra vlmと設定済みのビジョンモデルを含み、ベースラインの 1 ページが実行されました。 どちらもここで負っていたもので、どちらもコミット済みレポートにあります。特大スキャンは OCR のラングを、次にビジョンのラングを通り過ぎて降ります。どちらも 2 ページ目をそのページ自身の理由で拒み、地図スキャンの 2 度目の採用はビジョンモデルが読み、課金されます。固定されたスナップショットはいまやビジョンモデルを設定したインストールのものなので、それを持たない実行は、同じピンの下で別のインベントリを採点するのではなく、すべてのケースをドリフトとします。 -
ラベル付き部分集合を広げる。
case.schema.jsonはスキーマ 1.3 からexpected_textとexpected_fieldsを、1.4 からexpected_entitiesとexpected_languagesを持ちます。14 のスコープがテキストとフィールドを、6 つが固有表現を、21 が言語を持ちます。採点されていない 6 つのメディアタイプにはまだ 1 つもラベルが無く、ネイティブページで誤った出力に成功を宣言したリーダーを捕まえるラベルもまだ無く、照合は正規化後の完全一致なので 1 文字の誤りで文字列全体が外れます。Office リーダーの比較にはまだ比べる相手がありません。固有表現抽出のレーンには 30 の固有表現の上でできました。信頼する数ではなく、広げるべき数です。 -
手法が不足として記録していた 3 ケースは、合成で採用済みです。 肯定的なシグネチャ指名を持つ 2 ページの請求書、テキストレイヤーが嘘をつくためラベルがリーダーを捕まえるネイティブページ、そして 2 ページ目が大きすぎてラスタライズできず OCR のラングがそれを拒み、ページ自身が与えた理由でラダーが降りるスキャン。いずれもリポジトリのフィクスチャスクリプトが生成し、再配布可能と印を付けています。3 つの形のいずれかで公開文書が見つかれば、それが置き換わります。
-
読み取り可能だが採点されていないメディアタイプが 6 つあります —
.docx、text/plain、text/tab-separated-values、image/tiff、image/png、message/rfc822。そのうち 4 つについての結論は、誰も探さなかったのではなく、その文書が公開されている様子がない、というものです。日本政府の.docx10 件はいずれもw:sectPrをちょうど 1 つしか宣言せず(ページ規則は 2 つを要求します)、公開されているtext/plain資料 2 件はどちらも改ページ文字を 1 つも含まず、e-Gov のカタログには TSV も TIFF もまったくありません。国土地理院の地図タイルはimage/pngをカバーし得ましたが、却下しました。タイルは予告なく上流で再レンダリングされるため、そのダイジェストは固定になりません。カバレッジは各ケース自身のメディアタイプで引くので、1 つの画像文書がimage/jpegとimage/pngの両方をカバーすることはできません。
どちらのチャンク境界がよりよく検索されるか
Section titled “どちらのチャンク境界がよりよく検索されるか”独自のレポート benchmarks/retrieval.json を持つ別の実行です。ラベルは expected_retrieval、
すなわちクエリと、いずれかのチャンクが運ぶはずの回答のリストを持てます。ハーネスは文書を
インストール自身のチャンカー順で 1 回、さらにインストール済みの
チャンカーのバージョンごとにそれを先頭に名指して 1 回ずつエンコードし、チャンクと
クエリを minilm-multilingual に埋め込み、回答を運ぶ最初のチャンクの順位を記録します。回答は必ず
視覚的な 1 行に収まるので、行チャンクも段落チャンクもヒットになれます。照合は空白、大文字小文字、
全角半角を無視します。クエリは言い換えです。hit chars はヒットしたチャンクの長さで、ページ全体の
チャンクの再現率が隠すものです。
| chunker | queries | recall@1 | recall@5 | MRR | chunks | hit chars |
|---|---|---|---|---|---|---|
default (pdf@1, lines) |
14 | 21% | 50% | 0.33 | 2033 | 60 |
page@1 (whole pages) |
14 | 14% | 50% | 0.29 | 64 | 1933 |
pdf@2 (paragraphs) |
14 | 29% | 57% | 0.43 | 1386 | 201 |
pdf@3 (paragraphs and ruled tables) |
14 | 36% | 57% | 0.48 | 875 | 201 |
日本語の省庁通知と英語の NASA 標準にわたる 14 クエリです。段落はすべての列で行を上回りますが、
1 クエリが再現率 7 ポイントにあたるので、これは信頼する数値ではなく広げるべき数値です。pdf@2 は
opt-in のままです。pdf@3 は両方の文書の罫線の表をそれぞれ 1 チャンクにするので、pdf@2 の 1386 に
対して 875 チャンクになり、1 つ多くの回答が首位に来ます。同じ注意がこちらにも当てはまります。
just bench::retrieval # 既定の空間には --extra fastembed が必要just bench::tables # extra 不要。benchmarks/tables.json を書く表が格子として返るか
Section titled “表が格子として返るか”独自のレポート benchmarks/tables.json を持つ 3 つ目の実行です。ラベルは expected_tables、
すなわち表の抜粋をセルのテキストの行として持てます。空文字列は採点しないセルです。ハーネスは検索の
実行と同じく、文書をインストール自身のチャンカー順で、さらにチャンカーのバージョンごとにそれを先頭に
名指してエンコードし、ラベルのセルが 1 つの表チャンクの正しい行と列に入った数を数えます
(ADR-0070)。
抜粋は最初の採点セルで位置合わせするので、タイトル行や空の先頭列は格子の減点になりません。テキストの
ない行は両側で詰めます。
| chunker | tables | cells | cell accuracy | table chunks |
|---|---|---|---|---|
default |
6 | 63 | 0% | 0 |
delimited@1 |
2 | 32 | 100% | 17 |
pdf@3 |
3 | 21 | 100% | 27 |
xlsx@1 |
1 | 10 | 100% | 26 |
警察庁の警備業 CSV、FDIC のワークブック、NASA-STD-5001B、厚生労働省の通知にわたる 6 つの抜粋です。
ページの床ではどのセルもテキストの中にはあり、格子の中には 1 つもありません。delimited@1 は CSV の
32 セルすべてを、xlsx@1 は FDIC のシートの 10 セルすべてを、pdf@3 は 2 つの PDF の罫線の表の 21 セル
すべてを置きます。
just bench::fetch # ソースを取得し、すべてのダイジェストを検証just bench::run # 計画、実行、採点を行い benchmarks/report.json を更新キャッシュにないソースは利用不可としてスキップされ、ルーティング結果としては扱われません。スナップショットまたはポリシーが一致しないケースはドリフトとして報告され、採点から除外されます。