モデル・技術

RAG(検索拡張生成)

質問に関連する文書を検索してプロンプトに差し込み、それを根拠に答えさせる仕組み。社内知識や最新情報に強い。

RAG(検索拡張生成)とは

RAG(Retrieval-Augmented Generation、検索拡張生成)は、質問に関係する文書を先に検索し、その内容をプロンプトに含めてから回答を生成させる仕組みです。モデルが学習していない社内文書や最新の情報を、再学習なしで扱えるようになります。

処理は大きく3段階です。まず文書を小さな断片に分けて検索できる形で保存します。次に、質問と意味の近い断片を探します。最後に、見つかった断片を「この資料だけを根拠に答えてください」という指示とともにモデルへ渡します。

実務で重要なのは、回答の根拠を示せる点です。どの文書のどの箇所を参照したかを一緒に返せば、利用者が確かめられます。もっともらしい誤り(ハルシネーション)を減らす手段としても使われます。

一方で、回答の質は検索の質で決まります。探すべき文書が見つからなければ、モデルは正しく答えられません。RAG の改善は、プロンプトよりも文書の整備と検索の調整から始めるのが近道です。

具体例

社内規程の問い合わせ窓口

総務部に毎日届く「出張の日当はいくら?」「慶弔休暇は何日?」といった質問に、就業規則や旅費規程を検索して答えるチャットを作ります。回答の末尾に参照した規程名と条番号を示すので、社員は原文で確かめられます。規程を改訂したら、文書を差し替えて索引を作り直すだけで、回答も最新になります。

根拠がないときに「分からない」と言わせる

RAG のプロンプトには、資料に答えがない場合の振る舞いを必ず書きます。

悪い例

以下の資料を参考に、質問に答えてください。 資料:{検索結果} 質問:{質問}

良い例

以下の資料だけを根拠に、質問に答えてください。 資料に答えがない場合は「規程に記載がありません。総務部にお問い合わせください」と答えてください。 回答の最後に、参照した資料名と条番号を書いてください。 資料:{検索結果} 質問:{質問}

よくある誤解

RAG を入れればハルシネーションはなくなる。

減らせますが、なくなりはしません。検索結果に答えが含まれていない、資料どうしが矛盾している、といった場合にモデルが推測で補うことがあります。資料に答えがないときの指示と、根拠の表示による人の確認を組み合わせます。

RAG はモデルに社内文書を学習させる方法だ。

学習はしません。質問のたびに文書を検索し、プロンプトに含めて渡すだけです。モデルの重みは変わらないので、文書を検索の対象から外せば、回答にも使われなくなります。学習させる方法はファインチューニングで、目的が異なります。

チャンキング

チャンキングは、RAG の準備として、長い文書を検索しやすい大きさの断片(チャンク)に分ける工程です。細かすぎると前後の文脈が失われ、大きすぎると無関係な情報が混ざって回答がぶれます。見出しや段落の区切りで分ける、前後を少し重ねて文脈を保つ、といった工夫で精度が変わります。RAG の精度が出ないときに、最初に見直す場所の一つです。表や箇条書きは、途中で切ると意味が崩れるため、まとまりごとに扱います。

リランキング

リランキングは、RAG で検索した候補文書を、質問との関係の深さでより精密に並べ直す工程です。最初の検索は速さを優先するため、関係の薄い文書が上位に混ざることがあります。並べ直したうえで上位の数件だけをプロンプトに入れると、無関係な情報が減り、回答の精度が上がります。候補を広めに取り、絞り込みをリランキングに任せる組み合わせが一般的です。並べ直しの分だけ処理時間が延びるため、応答速度との釣り合いも考えます。

PEP検定での位置づけ

この用語は PEP検定 シラバス第4章「生成AIモデルのカスタマイズ手法」の範囲です。

章の学習ページを読む →
Next Step

用語を「使える力」にする

PEP検定は、こうした用語を実務のプロンプト設計と評価に結びつける力を測ります。練習問題で確かめてみてください。