RAGは、質問に関連する情報を外部の文書やデータベースから検索し、その結果を大規模言語モデルへ渡して回答を生成する仕組みです。日本語では「検索拡張生成」などと呼ばれます。

RAGとは

RAGは「Retrieval-Augmented Generation」の略です。LLMが学習時に得た知識だけで回答するのではなく、社内規程、製品マニュアル、FAQなど、指定した情報源を回答時に参照します。

基本的な仕組み

一般的なRAGは次の流れで動きます。

  1. 文書を小さな単位へ分割する
  2. 各文書を検索できる形で保存する
  3. 利用者の質問と関連する文書を検索する
  4. 質問と検索結果をLLMへ入力する
  5. LLMが資料を基に回答を生成する
  6. 必要に応じて参照元を表示する

意味の近さを数値で表す埋め込みベクトルとベクトル検索がよく使われますが、キーワード検索や条件検索と組み合わせる場合もあります。

活用例

  • 社内規程や手順書に答える従業員向けFAQ
  • 製品マニュアルを参照するサポート回答案
  • 契約書や研究資料から関連箇所を探す
  • 最新の商品情報を使った営業支援
  • 過去の障害記録から対応候補を提示する

メリット

情報を更新しやすい

文書を追加・更新すれば、新しい情報を検索対象にできます。モデル全体を再学習するより迅速で低コストな場合があります。

利用範囲を限定できる

承認済み文書だけを参照させることで、業務に必要な範囲へ回答を寄せられます。参照箇所を表示すれば、人が根拠を確認しやすくなります。

RAGでも誤りはなくならない

関連文書を検索できなければ、正しい回答は作れません。文書が古い、分割位置が悪い、表や画像を正しく読み取れない、アクセス権限を無視して検索するなど、多くの失敗要因があります。

適切な文書を渡しても、LLMが内容を誤って解釈したり、資料にない内容を付け加えたりする可能性があります。「RAGを使えばハルシネーションがゼロになる」とは考えないことが重要です。

導入時の確認項目

  • 文書の所有者、更新日、有効期限が管理されているか
  • 利用者の権限に応じて検索対象を制限できるか
  • 回答から原文へ移動できるか
  • 正解がないときに「分からない」と回答できるか
  • 検索精度と最終回答を別々に評価しているか
  • 質問、参照文書、回答を安全に記録できるか

評価用の質問セットを作り、正しい文書が検索された割合、回答の正確性、出典の一致、応答時間を継続的に測ります。

まとめ

RAGは、外部情報を検索してLLMの回答生成を補う仕組みです。情報更新と根拠提示に向きますが、文書品質、検索、権限、回答生成のすべてを設計・評価する必要があります。

参考資料