検索拡張生成 (RAG)
- RAGとは何か、そして「検索・拡張・生成」のループ
- インデックス化・検索・拡張・引用付き生成のやり方
- 「自分のドキュメントについて回答する」用途でRAGがファインチューニングに勝る理由
- RAGの品質を台無しにする5つの失敗パターン
- 最大の2つのギャップを埋める、コピペできるグラウンディングプロンプト
RAG は、モデルが学習したことのないあなたのデータ — ドキュメント、ナレッジベース、コードベース — について質問に答えられるようにする手法です。考え方はシンプルです。関連する断片を**検索(retrieve)し、それらでプロンプトを拡張(augment)し、その断片に基づいた回答を生成(generate)**します。
ループ
Guided walkthrough1 of 4
- チャンクに分割し、埋め込みを生成し(/docs/foundations/embeddings を参照)、ベクトル(および/またはキーワード)インデックスに保存する。
- 質問に最も関連性の高い上位チャンクを取り出す。
- それらのチャンクを、「以下のコンテキストのみから回答せよ。コンテキストに無ければ、無いと述べよ」といった指示とともにプロンプトに入れる。
- 回答を生成する。理想的には、各主張がどのチャンク由来かを引用する。
インデックス化における埋め込みのステップについては、埋め込みとベクトル検索を参照してください。
なぜファインチューニングではなくRAGなのか?
- 新鮮: モデルではなくデータを更新する
- 検証可能: 引用を提供する
- 安価: 再学習よりはるかに安い
ほとんどの「自分のドキュメントについて回答する」用途では、RAGが最初に選ぶべき正しいツールです — ファインチューニング vs プロンプティング vs RAGを参照してください。
失敗パターン(RAGの品質が死ぬ場所)
- 悪い検索 = 悪い回答。正しいチャンクが検索されなければ、モデルはそれを使えない。「RAGが間違っている」問題のほとんどは検索の問題である。
- チャンク分割が粗すぎたり細かすぎたりすると関連性が損なわれる(埋め込みを参照)。
- グラウンディング指示がない: モデルは検索した事実と自身の推測を混ぜてしまう。コンテキストのみから回答し、ギャップを認めるよう指示すること。
- 詰め込みすぎ: 無関係なチャンクはシグナルを薄め、トークンを浪費する。少数の高品質なチャンクを検索すること。
- 引用がない: 検証できないので、信頼できない。
チャンク分割の失敗は埋め込みに関係し、詰め込みすぎはトークンを浪費します。
- 検索を別々に評価する: 「正しいチャンクを検索できたか?」を「モデルはうまく回答したか?」とは別に測定する。問題を素早く局所化できる。Evals (/docs/foundations/evals) を参照。
コピペ用: グラウンディングプロンプト
最もレバレッジの高い単一の修正は、グラウンディング指示です。検索したチャンクを次のようなテンプレートに入れてください。これはモデルに、コンテキストのみから回答し、各主張を引用し、推測する代わりにギャップを認めることを強制します。
グラウンディングプロンプト
You are answering strictly from the context below. Rules: - Use ONLY the context to answer. Do not use outside knowledge. - Cite the source after each claim, like [chunk 2]. - If the answer is not in the context, reply exactly: "I don't have that in the provided sources." - Quote numbers and names verbatim — never paraphrase a figure. Context: [chunk 1] ... [chunk 2] ... [chunk 3] ... Question: <the user's question>
これを少数の高品質なチャンク(検索したすべてではない)と組み合わせれば、最大の2つのギャップを一度に埋められます。すなわち、幻覚的な混入と検証不能な回答です。そして検索と生成を別々に評価すれば、どちらの半分を調整すべきかがわかります。
用語をマスターする
1 / 6
理解度チェック
0/5- RAG = 関連チャンクを検索し、プロンプトを拡張し、根拠に基づいた引用付きの回答を生成する。
- インデックス化(チャンク分割 + 埋め込み + 保存)し、上位チャンクを検索し、グラウンディング指示で拡張し、引用付きで生成する。
- ドキュメントQ&AではファインチューニングよりRAGを選ぶ: 新鮮、引用付き、安価。
- ほとんどの失敗は検索の失敗である — すべてではなく、少数の高品質なチャンクを検索する。
- 常にグラウンディング指示を加えて引用する。検索と生成を別々に評価する。