
EmbeddingGemma 2とDecisionsでRAG検索を比較してみた
はじめに
図表を含む日本語文書の検索において、Google のマルチモーダル埋め込みモデル「EmbeddingGemma 2」と OpenAI の「Decisions API」を組み合わせた RAG 検索を検証してみました。また、比較基準として日本語形態素解析によるキーワード検索(BM25)やハイブリッド検索(RRF)も実装し、精度・コスト・処理時間を評価しています。
100 件の質問に対して検証したところ、正解ページを 1 位に特定できた割合(Hit@1)は、一次検索の上位 10 件を Decisions で並べ替えることで、最大 93% まで向上しました。特に「EmbeddingGemma 2 で上位 10 件に絞り込み、Decisions で並べ替える」構成は、API 費用を約 89.3% 抑えつつ、Decisions 全件評価と同じ精度を達成できました。
RAG(検索拡張生成)における各検索方式の精度やコスト、処理時間のバランスを比較した検証結果をまとめます。
比較した検索方式
今回の検証では、一次検索(ベクトル検索・キーワード検索・ハイブリッド検索)と、Decisions API によるリランキングを組み合わせた次のアプローチを比較しました。
| 方式 | 一次検索 | リランキング(Decisions) | 1 質問あたりの Decisions 呼び出し |
|---|---|---|---|
| EmbeddingGemma 2 単独 | ベクトル検索 | なし | 0 回 |
| BM25 単独 | キーワード検索 | なし | 0 回 |
| BM25+Embedding(RRF) | ハイブリッド検索 | なし | 0 回 |
| Decisions 全件評価 | 全件対象(100 ページ) | 全件を個別採点 | 100 回 |
| Embedding 上位 10 件+Decisions | ベクトル検索 | 上位 10 件を採点・並べ替え | 10 回 |
| BM25 上位 10 件+Decisions | キーワード検索 | 上位 10 件を採点・並べ替え | 10 回 |
| RRF 上位 10 件+Decisions | ハイブリッド検索 | 上位 10 件を採点・並べ替え | 10 回 |
- EmbeddingGemma 2: テキストと画像を共通の 768 次元ベクトル空間へ変換できる Google のマルチモーダル埋め込みモデルです。[1]
- BM25: 日本語形態素解析器「SudachiPy」で抽出したトークン頻度に基づくキーワード検索アルゴリズムです。
- RRF(Reciprocal Rank Fusion): ベクトル検索と BM25 の順位を相互順位融合(
)で統合したハイブリッド方式です。k=60 - Decisions API: 入力を指定基準に沿って採点・判定する OpenAI の API です。今回は質問に答える根拠が各ページにあるかを 4 段階で採点し、確率加重平均スコアで並べ替える「リランキング」として使用しました。[2]
検証データと環境
データセット
日本語の文書質問応答データセット「JDocQA」の注釈データと、Jina AI が配布するページ画像を使用しました。[3]
test データから、単一ページに回答根拠があり、図表を含み、PDF 抽出本文が存在する 100 質問と対応する 100 ページ(一般文書 36、スライド 25、広報誌 39)を選定しました。各質問に対して同じ 100 ページを検索対象とし、注釈の正解 1 ページを特定できるか評価しました。
実行環境と評価設定
| 項目 | 設定 |
|---|---|
| EmbeddingGemma 2 | google/embeddinggemma-2(Apple Silicon MPS / float32 / 768 次元) |
| BM25 | SudachiPy 0.7.0(sudachidict_core / SplitMode.A)、 |
| Decisions API | モデル: gpt-6-luna、POST /v1/decisions(detail: high) |
| 評価指標 | Hit@1(1 位正解率)、Recall@10(上位 10 件内の正解率)、nDCG@10 |
EmbeddingGemma 2 は本文とページ画像をベクトル化し、コサイン類似度でソートしました。
BM25 は PDF 抽出本文を形態素解析してスコアを計算しました。
Decisions API は、質問と各ページを「無関係(0)」「話題のみ関連(1)」「一部適合(2)」「直接適合(3)」の 4 段階で採点し、確率加重平均スコアの降順で並べ替えました。[2:1]
検証結果
1. 検索精度の比較
各方式の検索精度は次のとおりです。
| 方式 | Hit@1 | Recall@10 | nDCG@10 |
|---|---|---|---|
| EmbeddingGemma 2 単独 | 79% | 97% | 0.881 |
| BM25 単独 | 85% | 94% | 0.900 |
| BM25+Embedding(RRF) | 83% | 95% | 0.897 |
| Decisions 全件評価 | 93% | 98% | 0.959 |
| Embedding 上位 10 件+Decisions | 93% | 97% | 0.952 |
| BM25 上位 10 件+Decisions | 92% | 94% | 0.933 |
| RRF 上位 10 件+Decisions | 91% | 95% | 0.932 |
一次検索の特性差
一次検索単独の比較では、1 位正解率(Hit@1)は BM25(85%)が EmbeddingGemma 2(79%)を上回りました。質問文に含まれる固有の単語や表記が文書本文と一致しやすいケースでは、キーワード検索が有効に機能します。
一方で、正解ページを上位 10 件以内に残す割合(Recall@10)は EmbeddingGemma 2 が 97% と最も高く、取りこぼしの少なさにおいて優れていました。
Decisions によるリランキングの効果
上位 10 件を Decisions で並べ替えることで、いずれの方式も Hit@1 が 91〜93% まで向上しました。特に「Embedding 上位 10 件+Decisions」は全件評価と同じ 93% を達成しています。
2. コストと処理時間の比較
Decisions API(gpt-6-luna、入力 $0.10 / 100万トークン)の費用と処理時間の比較は次のとおりです。[2:2]
| 方式 | API 呼び出し回数 | 入力トークン数 | 100 質問の API 費用 | 1 質問あたりの処理時間目安 |
|---|---|---|---|---|
| EmbeddingGemma 2 単独 | 0 回 | 0 | $0 | 一次検索: 平均 62.4 ms |
| BM25 単独 | 0 回 | 0 | $0 | 一次検索: 平均 約 0.3 ms |
| BM25+Embedding(RRF) | 0 回 | 0 | $0 | 一次検索: 平均 62.8 ms |
| Decisions 全件評価 | 10,000 回 | 17,040,900 | 約 $1.704 | 候補あたり約 2.5 秒(逐次換算 約 248 秒) |
| Embedding 上位 10 件+Decisions | 1,000 回相当 | 1,831,514 相当 | 約 $0.183 | 一次検索 62.4 ms + API 約 24 秒(逐次換算) |
| BM25 上位 10 件+Decisions | 1,000 回相当 | 1,929,775 相当 | 約 $0.193 | 一次検索 0.3 ms + API 約 24 秒(逐次換算) |
| RRF 上位 10 件+Decisions | 1,000 回相当 | 1,985,431 相当 | 約 $0.199 | 一次検索 62.8 ms + API 約 24 秒(逐次換算) |
- コスト削減効果: 一次検索で上位 10 件に絞り込んでリランキングする構成はいずれも、全件評価(約 $1.704)と比べて API 費用を約 89% 削減できました。候補ページのテキスト量や画像サイズによるトークン数の差はあるものの、いずれも 1 質問あたり約 $0.002 程度で運用可能です。
- 処理速度の特性: BM25 や EmbeddingGemma 2 はミリ秒単位で結果を返せますが、Decisions は 1 候補あたり平均約 2.4 秒かかります。10 件を逐次処理すると約 24 秒のレイテンシとなるため、実運用では並列リクエストを活用した設計が重要です。
まとめ
今回は、図表を含む日本語 100 ページを対象に、ベクトル検索、キーワード検索、そして Decisions API を組み合わせた RAG 検索を検証しました。
検証の結果、EmbeddingGemma 2 で上位 10 件に絞り込んで Decisions で並べ替える構成により、API 費用を約 89% 削減しつつ、Decisions 全件評価と同じ Hit@1 93% を達成できました。全件評価と極めて近い結果を低コストで得られるため、実用性が高いアプローチといえます。
一次検索の使い分けとしては、EmbeddingGemma 2 は Recall@10 が 97% と高く、リランキング候補の取りこぼし防止に適しています。一方、BM25 は単独の Hit@1 が 85% と優秀で、計算コストもほぼかかりません。今回の検証では候補数が少なかったためハイブリッド検索の優位性は見られませんでしたが、対象ドキュメントが多くなるほどその効果は発揮されると考えられます。実運用の RAG では、ベクトル検索とキーワード検索を組み合わせて候補の取りこぼしを抑え、Decisions で精密に並べ替えるハイブリッド構成を採用することで、より安定した検索精度が期待できます。
なお、Decisions は高精度な反面、1 候補あたり約 2.4 秒を要するため、実運用では並列リクエストの設計が不可欠です。
本ブログが、図表を含むドキュメントの RAG 検索設計やリランキング導入を検討している方の参考になれば幸いです。
クラスメソッドオペレーションズ株式会社について
クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。※2026年1月 アノテーション㈱から社名変更しました
Google, EmbeddingGemma 2 model card(2026年10月8日参照) ↩︎
OpenAI, Decisions API guide(2026年10月8日参照) ↩︎ ↩︎ ↩︎
Onami et al., JDocQA: Japanese Document Question Answering Dataset for Generative Language Models, LREC-COLING 2024。公式リポジトリとJina AI のページ画像配布を使用(2026年10月8日参照)。 ↩︎












