RAGにおけるプロンプト合成の設計パターンとは?文脈統合で生成精度を高める方法|LLM入門 6.3

6.3 Retrieval後のプロンプト合成パターン

Retrieverによって意味的に関連する文書チャンクを取得したとしても、それらを適切に生成モデル(LLM)に渡す方法を誤れば、出力される回答は不正確で曖昧なものになってしまいます。
RAGにおける真の“要所”は、むしろこの部分──Retrieverの出力をどのようにプロンプトとして合成するか、という「文脈統合と構文設計」にあります。

このセクションでは、Retrieverで取得された情報(Context)をどのような構造・順序・表現でプロンプトに組み込むべきか、その代表的なパターンを具体例とともに紹介します。

 

プロンプト合成の3要素

プロンプトにおける合成設計では、以下の3つの要素を分けて考えることが基本です:

  1. System指示(Instruction)
     モデルに対する全体的な行動指針
     例:「以下の文書にのみ基づいて、質問に対する正確な回答を生成してください。」

  2. Context(Retrieverの出力)
     回答の参考にすべき関連文書チャンク
     例:「【文書1】退職後は健康保険の資格を喪失します…」

  3. User Input(質問文)
     ユーザーからの問い合わせそのもの
     例:「退職後も保険は使えますか?」

この三層を明示的に構造化してモデルに与えることが、LLMの挙動を安定・制御する鍵となります。

 

パターン①:明示構造型(Structured Prompt)

最も広く使われている形式が、Retrieverの出力を文書ごとに見出しで区切り、質問と一緒にLLMへ与えるスタイルです。

フォーマット例:

あなたは社内文書に基づいて正確に質問に答えるAIです。
以下の情報を参考に、質問に対して回答してください。

【文書1】
退職後は、健康保険の資格を喪失します。条件を満たす場合は任意継続が可能です…

【文書2】
任意継続制度は、最長で2年間適用されます…

【質問】
退職後に保険を継続するにはどうすればよいですか?

特徴:

  • 文書と質問の対応関係が明確になる

  • モデルが「何を参考にすべきか」を誤解しづらい

  • 文書数が多いとトークンを圧迫しやすい

 

パターン②:リスト型要約+QA

文書をそのまま渡すのではなく、Retriever出力を文単位の要約形式に変換して構造的に整理する方法です。

フォーマット例:

以下は退職後の健康保険に関する社内文書の要点です:

- 健康保険資格は退職日に喪失される
- 任意継続制度があり、最長2年間の加入が可能
- 保険料は前職時と同水準または半額程度で計算される

この情報をもとに、次の質問に答えてください:
「退職後も保険は使えますか?」

特徴:

  • トークン節約効果が大きい

  • 要約処理を別途行う必要がある(自動 or 人手)

  • モデルへの伝達精度はプロンプトの質に依存する

 

パターン③:文書スコア順にプレーン連結

Retrieverがスコア付けした順にチャンクを連結し、明示構造はあえて与えず「モデルに読み解かせる」パターン。

フォーマット例:

退職後は、健康保険の資格を喪失します。条件を満たす場合は任意継続が可能です。任意継続制度は、最長で2年間…

退職者が制度変更後に申請するには…

質問: 退職後に保険を継続するにはどうすればよいですか?

特徴:

  • 実装が簡単で高速

  • モデルの推論に依存するため不安定になる可能性あり

  • セマンティック的な整合性が高い場合には効果的

 

ベストプラクティス:生成品質を高める設計指針

  • 文書の順序を制御する:信頼度やスコア順で配置、優先度を明示

  • タイトルや文書名を明記する:参照元の信頼性を伝える効果がある

  • 質問との関連性を可視化する:文書のどこが質問に関係するかが明確になると、モデルの出力精度が上がる

  • 「参照のみで回答すること」を強調:幻覚を防ぐには出典制限が有効

 

トークン制限との戦い

次のセクション「6.4 入力長・トークン制限との戦い」では、Retrieverやプロンプトで用意した情報が増えてくる中で避けて通れない「入力長制限」との付き合い方、すなわちどこまで詰め込み、どこで省略・圧縮するかという設計的な駆け引きに焦点を当てます。

公開日: 2025-03-01
最終更新日: 2025-05-25
バージョン: 3

下田 昌平

開発と設計を担当。1994年からプログラミングを始め、今もなお最新技術への探究心を持ち続けています。

チーム

任 弘毅

株式会社レシートローラーにて開発とサポートを担当。POSレジやShopifyアプリ開発の経験を活かし、業務のデジタル化を促進。

下田 昌平

開発と設計を担当。1994年からプログラミングを始め、今もなお最新技術への探究心を持ち続けています。