RAGRetrieval-Augmented Generation

答える前に資料を探してきて手元に置いて使う方式

ポイント
  • RAG (Retrieval-Augmented Generation、検索拡張生成) は答える前に関連資料を探してきて質問のそばに付け足す方式です。
  • モデルを改めて学習させません。資料さえ入れ替えれば、昨日作った文書も今日すぐ答えに使われます。
  • 学習のときに見ていない社内規定、最新のお知らせ、個人的なメモのようにモデルが知りようのない内容を扱うときに使われます。
  • どの資料のどこを見たか**出典を一緒に見せられます。**人が確かめやすくなります。
  • 探してきた資料が見当違いだと答えも見当違いになります。資料をどう分けてどう探すかが性能を左右します。
目次

1たとえで理解する

銀行の窓口で「この通帳を解約したら利息はどうなりますか」と聞くと、行員が規定を全部暗記して答えるわけではありません。まず画面でその商品の約款と客の取引履歴を探して表示します。それから画面に出た内容を見ながら案内します。

AIに会社の規定や自分の文書について尋ねるときも、同じ順序を作ってあげられます。質問が来たらすぐに答えさせず、まず資料の山から質問に関係する箇所を探して質問の横に付け足します。モデルは付いてきた箇所を読んで答えを書きます。こうして探してくる段階を前に付け足した方式がRAGです。

窓口の担当者が代わっても画面に出る規定は同じです。規定が改まると担当者を改めて教育する代わりに、画面の中の文書を差し替えます。資料の側だけを触れば答えが一緒に変わる点が、この方式の利点です。

2くわしく

質問と答えの間に一段階入ります

ふだんAIは質問を受けると学習で身についた内容だけで答えを書きます。RAGを付けるとその間に照会の段階が入ります。質問が来ると、まず資料の山を探って関係がありそうな箇所をいくつか取り出し、その箇所を質問と一緒にモデルに渡します。

モデルからすると質問が少し長くなっただけです。「この通帳を解約すると利息は」の前に「次の資料を参考にして答えてください」と約款の数段落が付いた形です。だからモデルを新しく学習させる必要がありません。

答えを作るときにどの箇所を見たかが分かっているので、答えの最後に出典を一緒に付けることもできます。人が原文を開いて確かめられる点が業務では特に大事です。

資料を細かく分けておいて探します

文書一編をまるごと付けると、窓口の前に書類の束を積み上げるようなものです。だから資料をあらかじめ段落くらいの大きさの断片に分けておきます。質問が来たらそのうちのいくつかだけを選んで付けます。

選ぶ方法は二とおりを組み合わせて使います。一つは言葉がそのまま重なる断片を探す方法で、もう一つは意味の近い断片を探す方法です。意味で探すと、「解約」と聞いたときに「中途償還」と書かれた箇所も引っかかってきます。二つの方法を一緒に使うと見落とす箇所が減ります。

断片をどこで切るかも答えの質を大きく左右します。表の真ん中を切ってしまうと数字だけ残った断片になり、大きく切りすぎると関係のない文がたくさん付いてきます。

モデルを変えなくてもよいです

同じ内容をモデルに入れる別の方法として追加学習があります。窓口の担当者を新しく教育するようなものです。時間と費用がかかり、規定が変わるたびにまたやり直す必要があります。

RAGは教育の代わりに画面を差し替えるほうです。今日上げたお知らせがそのまま答えに反映され、間違った文書は消せばそれで済みます。どの文書を誰が見られるかも資料側で管理できるので、部署ごとに見える範囲を変えることもあります。

だから知識が頻繁に変わる仕事にはRAGが、口調や出力形式のように体に染みつかせる必要のある仕事には追加学習が合っています。両方を一緒に使う現場も多いです。

よくずれるところ

いちばん多い問題は見当違いの断片を持ってくることです。画面に別の客の約款が出ていれば、行員がどれほど真面目でも案内は間違います。資料が整理されていなかったり似た文書が何版も混ざっていたりするとこうしたことが起きます。

持ってきすぎるのも問題です。一度に見られる量には上限があり、関係ない箇所が混ざると大事な文が埋もれます。おおむね、よく選んだ三、四断片のほうが雑に選んだ二十断片より優れています。

探してきた資料に答えがまったく無いこともあります。このとき「資料にありません」と言わせるようにしておかないと、モデルは知っている内容で空欄を埋めます。見た目には資料を見て書いた答えのようでも、実際にはそうではありません。

グラウンディングと組みになります

RAGは資料を探してくる方法で、グラウンディングは答えの文の一つひとつをその資料につなぎ留める作業です。窓口で言えば、画面に約款を表示するのがRAG、案内の言葉が画面の中の文から外れないようにするのがグラウンディングです。

資料をそばに置いても自分の見当で一文を付け足せば、グラウンディングは外れたことになります。だから資料をうまく探してくることと、探してきた範囲の中だけで話させることは別に手当てする必要があります。

3もう少し正確に

RAGは検索器と生成器をつなぎ合わせた構造です。文書を断片に分けて意味を込めた数値の並びに変えて保存しておき、質問も同じ方式で変えて近い断片を取り出します。取り出した断片をプロンプトに組み込めば、あとはふだんの生成過程と同じです。モデルの重みはまったく変わらず、変わるのは入力だけです。

たとえがずれる点もあります。窓口の担当者は自分が何を知らないか分かって画面を開きますが、この方式では照会がおおむね質問のたびに自動で起こります。資料が要らない質問にも断片が付いてきますし、逆に資料がどうしても必要な質問で検索が外れても、モデルは手元の断片だけで答えを作ってしまいます。画面に出たものを疑わない担当者というわけで、検索の質がそのまま答えの質になります。だから実務では答えを手直しする前に検索の段階から点検します。質問を二十個ほど選んで、正解の入った断片が実際に引っかかってくるか、何番目に出てくるかを数える具合です。この段階が崩れていると、後ろでどれほど指示を整えても答えは良くなりません。

4やってみる

5よくある誤解

  • RAGを付ければ幻覚がなくなると思われがちですが、実際には見当違いの資料を持ってくると、根拠まで付いたもっともらしい間違った答えになります。

  • RAGがモデルに新しい知識を学習させると見なされがちですが、実際にはモデルはそのままで、答えるときに資料をそばに置いてくれるだけです。

  • 文書は多く入れるほどよいと思われがちですが、実際には整理されていない資料が積み重なるほど見当違いの断片が引っかかる確率が上がります。

7ひとこと要約

つまりRAGは窓口の担当者が規定を暗記して答える代わりに画面に約款を表示して見ながら案内するように、答える前に関連資料を探してきて手元に置いて使わせる方式です。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02