GEMINI LABEN
NANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定ですNANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定です
記事一覧/API / SDK
API / SDK/2026-04-28上級

Gemini Embeddings × リランカーで本番RAGの精度を底上げする — Vertex AI Ranking と LLM-as-judge の使い分け

Embeddings だけでは取りこぼす「上位3件は当たり前に合うのに5件目以降に正解が埋もれる」問題を、Vertex AI Ranking API と Gemini を使ったリランカーで解決する本番アーキテクチャを実装コード付きで解説します。

gemini-api279embeddings11rerankrag21vertex-ai8production105advanced12

プレミアム記事

取り組みの背景 — 「上位3件は当たり前に合うのに、4件目に正解が埋もれている」問題

RAGを本番投入してしばらく経つと、どこかのタイミングで奇妙な現象に気づきます。社内ドキュメント検索を作って、ある質問に対して関連ドキュメントを正しく取得できているはずなのに、ユーザーが「答えてほしかったドキュメント」が応答に出てこないという状況です。ログを掘り返すと、Top 5の取得結果のうち、本当に答えるべきドキュメントは4位や5位に入っていて、Geminiは1位と2位の似たような別ドキュメントの方を引用していた、という構図です。

私が運用しているナレッジ検索でも、Embeddings だけで構築した初期版は「答えに近そうな文書」は取れていても、「答えそのものの文書」を1位に押し上げる力が足りませんでした。これは Gemini の応答品質ではなく、検索の順位付けが甘いことが原因です。今回はこの問題に決着をつけるためのリランカー設計を、Vertex AI Ranking API と Gemini を使った LLM リランカーの2方式で実装していきます。

ベクトル検索の基本については Gemini Embedding × Pinecone のRAG実装 と Qdrant ハイブリッドRAG に書きましたので、未読の方はそちらを先に読むと前提が揃います。本記事はそれらの続きとして、検索した後の「順位を直す」レイヤーに焦点を当てます。

なぜリランカーが必要なのか — リコールと精度を分けて考える

Embeddings ベースの検索は、コサイン類似度で並べ替えるだけのシンプルな仕組みです。これは大量のドキュメントから「関連していそうな候補」を素早く絞り込むのには優れていますが、上位N件の中での順位は意外と粗いものになります。

具体的には、以下の3つのケースで Embeddings だけだと取りこぼしが起こります。

  • 同義表現が多いドメイン: 「払戻」「返金」「キャンセル料の返却」が混在する規約集では、ベクトル類似度だけでは「どれが質問の答えに最も近いか」を区別しきれない
  • 長文ドキュメント: 5,000文字のドキュメントを1つのベクトルに圧縮すると、その中の特定の段落が答えだったとしても、ドキュメント全体の意味でしか比較できない
  • キーワード一致が決定的な場合: 商品コード「SKU-A1234」を含むドキュメントを探すような場面では、意味の近さよりも「その文字列を含むか」が重要

これらに共通するのは、「リコール(候補の中に正解が入っているか)」は Embeddings で十分なのに、「精度(その正解を1位に押し上げられるか)」が足りないという状況です。リランカーは、候補集合は変えずに順位だけを直すためのコンポーネントとして機能します。

設計の基本形はこうです。

  • Stage 1: Embeddings で Top 50〜100件の候補を高速に取得する(リコール最大化)
  • Stage 2: リランカーで上位5〜10件に絞り直す(精度最大化)
  • Stage 3: その上位をプロンプトに詰めて Gemini に渡す

Stage 1 と Stage 2 は「速度と精度のトレードオフ」を別々のレイヤーに切り分けるための分離です。Embeddings 単体で精度を上げようと頑張るより、ずっと素直に効きます。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
Embeddings だけのRAGで「正解は10件中4位」になりがちな現象を、リランカーで上位3件に押し上げる本番設計を習得できる
Vertex AI Ranking API と Gemini を judge にした LLM リランカーの2方式を、コスト・精度・レイテンシで使い分ける判断軸を持てる
NDCG@k と MRR を使ったリランカーの効果測定と、本番運用での回帰検出パイプラインまでコピペで動く実装で構築できる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API / SDK2026-03-30
Gemini APIマルチモーダルRAGパイプライン構築ガイド — 画像・PDF・動画を横断検索するAIシステムの設計と実装
Gemini 2.5 ProのマルチモーダルAPIを活用して、テキスト・画像・PDF・動画を統合的に検索・分析できるRAGパイプラインの設計から本番デプロイまでを体系的に解説します。
API / SDK2026-04-29
Gemini API の動的 Few-Shot 設計 — ベクター検索で実例を選び続ける自己改善型プロンプト
Few-Shot プロンプトを「固定の3例」で書いているうちは精度もコストも頭打ちになります。Gemini Embeddings + ベクター検索で例を動的に選ぶ自己改善型プロンプト設計を、コピペで動くコードと運用ループまで通しで解説します。
API / SDK2026-07-18
同じ gemini-flash-latest が、リージョンごとに違うモデルを指していた — 比較値が汚れる数日間の見つけ方
エイリアスの解決先はリージョン単位でロールアウトされます。同じ gemini-flash-latest を東京と us-central1 に投げると、数日だけ別のモデルが応答する。その間の比較値が無効になる理由と、1発のプローブで検知して比較を凍結する設計をまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →