RAG(検索拡張生成)は、AI が自分の記憶だけで答えるのではなく、答える前にその都度資料を探して、手元に置いてから答えるようにする構成です。回答の前に社内の資料棚を見に行き、必要な書類を机に置いてから返事をするアシスタントを思い浮かべてください。
LLM だけで答えさせると、学習した傾向の範囲でしか答えられません。RAG を入れると、社内にしかない情報や、更新されたばかりの情報に答えを寄せやすくなります。社内マニュアルに沿った回答、商品の仕様や FAQ に基づく案内、出典の候補を一緒に見せる回答などに使われます。資料を区切って、数値に変えて、候補を集めて、並べ替えて渡す。その具体的な流れはベクトル検索の記事にまとめています。
回答をこうして資料に結びつける考え方全体は、グラウンディングと呼ばれます。
誤答はどこで起きるのか
RAG を入れても、誤答はなくなりません。資料を探す工程を足しただけで、正しい回答を自動で保証する機能ではないからです。うまくいかないとき、原因はだいたい次のどこかにあります。
| どこで | 何が起きるか |
|---|---|
| 資料の側 | 参照先の文書が整っていない、古い文書が混ざっている。古い料金表を見て答えれば、答えも古くなる |
| 検索の側 | 必要な資料がそもそも候補に入らない、入っても下位に沈む |
| 回答の側 | 正しい資料を渡したのに、読み違えたり、資料にないことを付け足したりする |
検索と回答を分けて評価する
どの場所で間違えたかによって、直すべき場所が違います。だから評価では、「必要な資料を拾えたか」と「拾った資料に沿って正しく答えたか」を別々に測ります。両方を一つの正答率にまとめてしまうと、どこを直せばよいのかが見えなくなります。
参照元の文書の整備と、古い文書の片づけも、運用の一部です。回答に出典を表示するなら、どう見せるかまで運用のルールに入れておきます。