RAG入門:AIに知識を与える技術
RAGとは?LLMに外部知識を与える検索拡張生成の仕組み
自社のことを聞くと、知らないはずのことを答えてくる
社内ツールの使い方を ChatGPT に聞くと、それらしい操作手順が返ってきます。ところが画面を開くと、そんなボタンはどこにもありません。
同じことは日付でも起きます。先月リリースされた機能について聞けば、その機能が存在するかどうかを確かめないまま、ありそうな手順が組み立てられて返ってきます。文章としては破綻していないので、実際に試すまで間違いに気づけません。
LLM が材料にしているのは、学習した時点までに公開されていた文章だけです。あなたの会社の運用ルールも、昨日出たニュースも、そこには入っていません。それでも LLM は「次に来そうな言葉」を選び続けるので、材料が無くても文章の形だけは整ってしまいます。答えられないことではなく、答えられないと言えないことが問題なのです。
参考書の持ち込みを許可する
RAG(Retrieval-Augmented Generation、検索拡張生成)は、この試験を「参考書の持ち込み可」に変える仕組みです。
質問が来たら、まず手元の資料から関係のありそうな箇所を探します。そして見つけた本文を質問と一緒に渡し、この資料に基づいて答えるよう縛ります。LLM は記憶をたどるのではなく、目の前の資料を読んで答えることになります。
実際に渡しているプロンプトは、おおよそこんな形です。
プレーンテキスト
以下の【参考資料】に基づいて質問に答えてください。
【参考資料】
Z-Works では左メニューの「経費管理」から「新規申請」を選び、
レシートをアップロードします。
質問
Z-Works での経費精算の手順を教えてください答えが資料の中に書いてあるので、推測する余地がありません。やっていることは、人が資料を調べてから文章を書く手順とほとんど同じです。違うのは、探す部分も書く部分も自動で走ることだけです。
そして「どの資料を読んだか」を回答と一緒に返せます。読み手はその 1 か所を開いて確かめられますし、間違っていれば資料の側を直せます。社内の問い合わせ対応や顧客への案内では、AI がそう言った、では通りません。どの規程を根拠にしたのかを示せて、初めて業務に載せられます。
モデルを作り直さず、知識だけ差し替える
同じ目的を果たす方法はもう 1 つあります。自社データで LLM を再学習させるファインチューニングです。こちらは計算資源も時間もかかり、規程が 1 行変わるたびにやり直しになります。そのうえ、覚え込ませた知識がどこに効いているのかは外から見えません。
RAG が入れ替えるのは資料の側だけです。新しい規程のファイルを置けば、次の質問からその内容で答えます。古い版を消せば、もう出てきません。知識の更新がファイルの出し入れで済み、その結果が回答と出典の形ですぐ確認できること。これが RAG から始める最大の理由です。
社内ヘルプデスク、製品 FAQ、法律や医療のような専門文書の参照。いずれも「AI に覚えさせる」のではなく「AI に読ませる」形で組み立てられています。
資料を持たせても、その資料が古ければ古い答えが返ってきます。RAG の精度は、渡す資料の手入れの精度とほぼ同じだと考えてください。
復習ミニクイズ
RAGを「参考書を持ち込める試験」に例えたとき、LLM単体での回答と比較して、なぜRAGはハルシネーション(もっともらしい嘘)を抑制できるのでしょうか?