ざっくり言うと
RAG(ラグ / Retrieval-Augmented Generation・検索拡張生成)とは、AIが質問に答える前に、関係のありそうな資料をまず検索し、その資料を見ながら答える仕組みです。
たとえば、有給休暇の繰り越しについて聞かれたとします。細かい日数までそらで言えなくても、就業規則を開いて、そのページを見ながら答えれば正確に返せますよね。
RAGがやっているのも、これと同じことです。AIに全部を覚えさせるのではなく、答える直前に必要な資料を手渡します。
ファイル検索、Web検索、社内文書に基づくAIチャットなどで、この考え方が使われます。ただし、個々の製品が同じ実装を使っているとは限りません。
イメージ
RAGでは、AIがその場で学習し直しているわけではありません。資料を一時的に見せて、その回の回答に使ってもらうだけです。モデルそのものに追加のお手本を見せるファインチューニングとは、ここが違います。
この形なら、学習データに入っていない社内文書も、更新したばかりの資料も、その場の根拠として渡せます。ただし、渡した資料に肝心の情報が入っていなければ、答えは正しくなりません。AIがその資料をうまく使えなかったときも同じです。
正確には
RAGは、2020年にMeta(当時Facebook AI Research)などの研究者が提案した手法です(Lewis et al., arXiv:2005.11401)。論文の題名は『Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks』で、検索してきた資料を回答づくりに使う考え方が示されています。
Meta AIの公式ブログでも、「生成モデルに外部知識ソースへのアクセスを与えることで、知識集約型タスクの精度を高める一般的な手法」として紹介されています。
IBMの解説では、RAGを「大規模言語モデル(LLM)の出力を、生成前に外部の権威ある知識ベースを参照することで最適化するプロセス」と定義しています。つまり、答えを書き始める前に、確かな資料へ当たらせるということです。
Microsoft Learn(Azure AI Searchのドキュメント)とGoogle Cloudの解説も同様です。どちらも「LLMに外部データを与えて回答品質を高めるアーキテクチャ」として説明されています。
資料を探して、渡して、答える
RAGの基本的な処理の流れは、公式各社の解説でほぼ共通しています。
| ステップ | 何をする? | ざっくり言うと |
|---|---|---|
| 1. Retrieval(検索) | 質問に関連する文書を、知識ベースから取ってくる | 意味の近い資料を引っ張ってくる |
| 2. Augmentation(拡張) | 取ってきた文書を、質問と一緒にプロンプトへ入れる | AIへのお題に資料を添える |
| 3. Generation(生成) | AIが、渡された文書を参考にして回答を作る | 資料を見ながら答える |
1つ目の検索では、言葉がそのまま一致しているかどうかだけを見ているわけではありません。意味の近さで探すベクトル検索が使われることも多いです。
ベクトル検索は、文章を数値の並びに変換する埋め込みという技術と組み合わせて実現されています。仕組みは埋め込み(Embedding)とベクトル検索で詳しく扱っています。
なぜ資料を渡すのか
外部の検索を使わないAIには、情報の面で次のような限界があります。RAGは、その一部を補う代表的なやり方です。
- 学習の締切日より後を知らない(ナレッジカットオフ)
AIは、学習に使ったデータの締切日より後の出来事を知りません。RAGなら、更新後の文書を検索して渡せます。 - 社内の資料を知らない
就業規則、契約書、特定の業界向けの資料など、公開されていない情報は学習されていません。RAGなら、自社のナレッジベースを参照できます。 - 知らないことを作ってしまう(ハルシネーション)
AIは、知らないことをそれらしく書いてしまうことがあります。根拠となる文書を一緒に渡せば、事実に沿った回答へ近づけられます(ただし完全には防げません)。
RAGを使う理由としてよく挙がるのは、更新された情報を扱うこと、その分野に固有の知識を活かすこと、ハルシネーションを減らすことの3つです。この3点は、IBM・Microsoft・Google Cloudのいずれの解説でも共通して挙げられています。
使う場面
身近な使われ方
注意点
根拠にした資料を先に見る
答えを読むときは、文章の中身より先に、どの資料を根拠にしたかを確かめてください。参照元が古い資料、別の部署の資料、質問と関係のないページだった場合、文章がいくら自然でも答えは危ういです。
検索の精度と、資料の新しさと、AIが根拠を読み違えないことの3つがそろって、はじめて役に立ちます。資料を渡したあとも、人が確かめる仕事は残ります。
作り話が起きる仕組みそのものは、ハルシネーションで詳しく扱っています。
関連用語
- ファインチューニング — 学習済みのAIに追加のお手本を見せて、答え方そのものを寄せていく方法です。
- 埋め込み(Embedding) — 文章を数値の並びに置き換えて、意味の近さを計算できるようにする技術です。
- ベクトル検索 — 言葉がぴったり一致しなくても、意味の近い資料を探せる検索のしかたです。
- ハルシネーション — 事実と違う内容を、AIがもっともらしく書いてしまう現象です。
- ナレッジカットオフ — だいたいいつ頃までの情報をAIが知っているか、その目安です。
やってみよう