RAG入門:AIに知識を与える技術
RAG精度改善(3):プロンプトエンジニアリングの勘所
このレッスンで分かること
- この記事では「RAG精度改善(3):プロンプトエンジニアリングの勘所」を RAG 実装 の現場で使える形で整理します
- RAGの精度を左右するプロンプトエンジニアリングの重要性 をおさえれば、現場で迷ったときに立ち戻れる
- RAGプロンプトの基本構造:3つの要素 をおさえれば、現場で迷ったときに立ち戻れる
- コンテキストを渡す際の工夫 をおさえれば、現場で迷ったときに立ち戻れる
- 良い例と悪い例で学ぶプロンプト設計 をおさえれば、現場で迷ったときに立ち戻れる
RAG精度改善(3) とは
RAG(検索拡張生成)の回答精度を左右するプロンプトエンジニアリングを解説。ハルシネーションを防ぐ制約条件の書き方や、情報の根拠(コンテキスト)の渡し方、良い例・悪い例の比較を通じて、実戦的なプロンプト設計技術を学びます。
RAGの精度を左右するプロンプトエンジニアリングの重要性
RAG(検索拡張生成)を構築した際、「せっかく関連情報を取得できているのに、AIが的外れな回答をしてしまう」という課題に直面することがあります。実は、RAGの精度は検索アルゴリズムだけでなく、取得した情報をAIにどう伝えるかというプロンプトエンジニアリングの技術によって大きく左右されます。
プロンプトエンジニアリングとは、LLM(大規模言語モデル)からより正確な回答を引き出すための指示出しの工夫です。RAGにおいては、AIに与える「コンテキスト(背景知識)」をどのように扱い、どのような制約条件を課すかが、回答の信頼性を高める鍵となります。
検索で正しい情報を取れていても、プロンプトが曖昧なら回答は崩れます。RAGは「検索の正確性」と「指示の厳密さ」の両輪で精度が決まると考えてください。
このレッスンでは、RAG特有のプロンプト設計のコツを学び、ハルシネーション(もっともらしい嘘)を最小限に抑えつつ、ユーザーにとって価値のある回答を生成するテクニックを身につけましょう。
RAGプロンプトの基本構造:3つの要素
効果的なRAGプロンプトを構築するには、指示を構造化することが不可欠です。一般的に、RAGのプロンプトは以下の3つの要素で構成されます。
- 指示(
Instruction)はAIの役割や、回答にあたってのルールを伝えます。 - コンテキスト(
Context)は検索によって得られた外部データ(チャンク)を挿入します。 - ユーザーの質問(
User Query)はユーザーが実際に知りたい内容を記述します。
これらを区切り文字(例:### や ---)を使って明確に分けることで、AIは「どこが参考資料で、どこからが命令なのか」を正確に理解できるようになります。
コンテキストを渡す際の工夫
RAGでは、検索結果として複数のテキスト断片が渡されます。これらを単に羅列するのではなく、「以下のドキュメントに基づいて回答してください」といった明確な指示を添えることが重要です。また、情報が見つからなかった場合に無理やり回答を作らせないためのグラウンディング(根拠付け)の指示も欠かせません。
良い例と悪い例で学ぶプロンプト設計
プロンプトの書き方一つで、AIの回答品質がどれほど変わるかを具体例で見てみましょう。以下の例は、社内の福利厚生ルールに関するRAGシステムを想定したものです。
避けたい例 悪いプロンプトの例
以下の情報を読んで、ユーザーの質問に答えてください。
[コンテキスト]
- 夏季休暇は3日間付与される。
- 試用期間中の社員には付与されない。
[質問] アルバイトでも夏休みは取れますか?
上記の例では、コンテキストに答えがない場合、AIが一般知識を使って「一般的な法律では…」と勝手に回答を作ってしまう恐れがあります。これがRAGにおける精度の低下を招く原因です。
良い例 良いプロンプトの例
あなたは社内の人事担当アシスタントです。提供された「コンテキスト」の情報のみを使用して、ユーザーの質問に回答してください。
制約事項:
- コンテキストに答えが含まれていない場合は、「提供された資料内には該当する情報が見つかりませんでした」と回答してください。
- 推測で答えないでください。
- 回答の末尾には、参考にした資料のIDを記載してください。
コンテキスト:
{retrieved_context}
質問:
{user_query}
この「良い例」では、AIの役割を明確にし、情報のソースを限定しています。さらに、「知らないことは知らないと答える」という制約を入れることで、ハルシネーションを強力に防止しています。
RAG精度を向上させる4つのテクニック
さらに高度なプロンプト設計を行うための、4つの実戦的なテクニックを紹介します。
1. 思考プロセスの明示(Chain of Thought)
AIに対して「回答を出す前に、まず提供されたコンテキストのどこに該当箇所があるかを箇条書きで抜き出してください」といった指示を加えます。このようにAIに思考のステップを踏ませることで、複雑な情報からの抽出精度が向上します。
2. 出力フォーマットの指定
回答をJSON形式や箇条書きで指定することで、システム連携がしやすくなるだけでなく、AIの回答のブレを抑えることができます。例えば、「メリットとデメリットを比較表で示してください」といった具体的な指示が有効です。
3. 参照元の表示指示(Citation)
RAGの大きなメリットは、回答の根拠を示せることです。「回答の中で、どのドキュメントを参考にしたか[1][2]のように番号で示してください」と指示することで、ユーザーが元データを確認できるようになり、信頼性が飛躍的に高まります。
4. Few-Shotプロンプティングの活用
RAGにおいても、いくつかの「質問と回答の理想的なペア」をプロンプトに含める(Few-Shot)ことは非常に有効です。これにより、回答のトーンや情報の取捨選択の基準をAIに学習させることができます。
4テクニックの中でも「Citation強制」は最初に入れるべき必須要素です。出典が出るだけでユーザーの安心感が変わり、誤回答にも即座に気付ける運用ができます。
ケーススタディ:専門用語が多いドキュメントの処理
専門的なIT用語や独自の社内用語が含まれるドキュメントを扱う場合、プロンプトの冒頭で用語定義を行うか、AIに「専門外の人にも分かりやすく解説してください」といった役割(ペルソナ)を与えることで、回答の質が安定します。
| テクニック | 期待される効果 | 難易度 |
|---|---|---|
| 役割指定 (Persona) | 回答のトーンを一定にする | 低 |
| 根拠の強制 (Grounding) | 嘘の回答(ハルシネーション)を防ぐ | 中 |
| 思考の連鎖 (CoT) | 複雑な論理展開を正確にする | 高 |
やってみよう 考えてみよう:制約条件の追加
あなたが開発しているRAGシステムが、提供された資料にないことを「自分の知識」で答えてしまい、トラブルになりました。この問題を解決するために、プロンプトにどのような「一文」を追加すれば良いでしょうか?具体的なフレーズを考えてみましょう。
まとめ
RAGの精度改善において、プロンプトエンジニアリングは「最後の仕上げ」でありながら、最も費用対効果の高い手法の一つです。
- 構造化は命令、コンテキスト、質問を明確に分ける
- 制約はコンテキスト外の情報を使わないよう厳格に命じる
- 根拠は参照元を明示させ、ユーザーの信頼を得る
これらを意識するだけで、生成AIの回答はより実用的で信頼できるものに変わります。次のステップでは、これらのプロンプトを自動で評価・改善する手法についても学んでいきましょう。
プロンプトエンジニアリングは一度書いて終わりではありません。ユーザーの反応を見ながら、AIの「癖」を理解し、微調整を繰り返すことが精度向上の近道ですよ!応援しています!
現場でよくある具体例
- 業務ケース 1 — 社内規程 200 ページに RAG を導入。チャンクサイズ 512、
top-k=5、Re-ranker 有りで Recall@5 が 0.62 → 0.81 - 業務ケース 2 — エンジニア向け技術文書では「コードブロックを 1 チャンク」にしたら検索精度が大きく改善
- 業務ケース 3 — 営業 FAQ では
BM25+ Embedding の Hybrid Retrieval で、固有名詞検索の取りこぼしが減った
次にとるべきアクション
- 手元の社内 PDF / FAQ 10 件で RAG ミニ版を作る —
LangChainかLlamaIndexで構築し、「RAG精度改善(3):プロンプトエンジニアリングの勘所」の論点を試す - チャンクサイズと検索件数を 2 通り試す — 256 / 512 トークン × top-k=3 / 5 など、定量比較する
- 評価指標を 1 つ決める — Recall@k / 回答正答率 / コストのいずれかをチームで KPI 化する
次のレッスン
次は 第3章まとめクイズ で、第3章まとめクイズ を学びます。
事前確認 — 進む前に次の 3 つができることを確認しましょう。
- RAG精度改善(3) の要点を自分の言葉で説明できる
- このレッスンの最小コード (または操作手順) を見ずに書ける
- 練習問題やクイズで間違えた箇所を読み直して理解した
理解度チェック (30 秒)
Q. RAG精度改善(3) とは何か、1 文で説明してください。
A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。
関連レッスン
参考にした出典
- Lewis et al.「Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks」 — RAG の原論文(出典: NeurIPS 2020, https://arxiv.org/abs/2005.11401)
- OpenAI Cookbook「Question answering using embeddings」 — Embedding ベース検索の実装例(出典: OpenAI, https://cookbook.openai.com/examples/question_answering_using_embeddings)
- LangChain 公式ドキュメント「RAG」 — チャンク分割・リトリーバ設計のベストプラクティス(出典: LangChain, https://python.langchain.com/docs/tutorials/rag/)
学習を加速したい方へ
RAG (検索拡張生成) 入門ガイドを体系的にマスターするなら、chotdekiru の無料学習ポータル で実際に手を動かして学習を始めるのがおすすめです。質問・つまずきも現役エンジニアが伴走します。
復習ミニクイズ
RAGシステムにおいて、検索したドキュメントの中にユーザーの質問への回答が含まれていない場合に、AIがもっともらしい嘘(ハルシネーション)を答えてしまうのを防ぐ最も適切な指示はどれですか?