LLMへのプロンプトに外部知識ベースから検索した関連情報を動的に付加する技法。RAG(Retrieval-Augmented Generation)のプロンプト設計側に焦点を当てた概念で、ハルシネーション抑制と回答品質向上に有効。
Retrieval-Augmented Prompting(RAP)は、LLM へのプロンプトに外部知識ベースから検索(Retrieve)した関連情報を動的に付加(Augment)する技法です。RAG(Retrieval-Augmented Generation)パイプラインのうち、プロンプト構成・コンテキスト注入・ソース帰属の設計に焦点を当てた概念であり、「何を検索するか」ではなく「検索結果をどうプロンプトに組み込むか」を体系化します。
RAG パイプラインは一般に3段階で構成されます。
| 段階 | 技術 | 主なツール |
|---|---|---|
| 1. インデックス構築 | チャンキング・ベクトル化 | LangChain, LlamaIndex, Pinecone, Qdrant |
| 2. 検索(Retrieval) | ベクトル類似度検索・BM25・ハイブリッド | FAISS, Weaviate, Elasticsearch |
| 3. プロンプト構成(RAP) | コンテキスト注入・ソース帰属・圧縮 | LangChain PromptTemplate, LlamaIndex |
RAP は第3段階に位置し、検索された文書断片(チャンク)をどのようにプロンプトへ配置するかを最適化します。
検索結果をすべてプロンプトに連結する最もシンプルな方式です。チャンク数が少ない場合(3〜5個)に有効ですが、コンテキストウィンドウの制約により大量のチャンクには対応できません。
各チャンクを個別に処理(Map)し、結果を統合(Reduce)する方式です。大量の文書を扱えますが、API 呼び出しが増加するためコストとレイテンシが増大します。
チャンクを順番に処理し、前の結果を次のチャンク処理の入力とする方式です。文脈の連続性を保ちやすいですが、順序依存性が生じます。
Meta の RAG 原論文(Lewis et al., 2020)では、RAG を適用することでオープンドメイン質問応答の正答率が Non-RAG 比で15〜25%向上し、ハルシネーション率が40〜60%低下することが報告されています。ただし、検索結果自体が不正確な場合はハルシネーションが増幅される「Garbage In, Garbage Out」問題があるため、検索品質の担保が前提条件です。
A: RAG はパイプライン全体(インデックス構築→検索→生成)を指す広い概念です。RAP はその中の「検索結果をプロンプトにどう組み込むか」というプロンプト設計の側面に焦点を当てた概念です。RAG の品質は RAP の設計に大きく依存します。
A: 一般的には3〜7チャンクが最適です。1〜2チャンクでは情報が不足し、10チャンク以上では「Lost in the Middle」問題(中間の情報が無視される)が発生します。コンテキストウィンドウの20〜40%を検索結果に充てるのが目安です。
A: はい。ベクトル検索(セマンティック類似度)と BM25(キーワード一致)を組み合わせるハイブリッド検索は、単体手法より平均10〜15%高い検索精度を示します。Pinecone、Weaviate、Qdrant はハイブリッド検索をネイティブサポートしています。