RAGとは
RAG(Retrieval-Augmented Generation:検索拡張生成)とは、大規模言語モデル(LLM)に外部知識の検索機能を組み合わせた技術フレームワークです。質問や指示に応じて関連する情報を外部データソースから検索し、その情報を基にLLMが回答を生成します。2020年にMeta AIのPatrick Lewisらが提案しました。
| ひとことで言うと | 外部の文書を検索し、その内容をもとにLLMに答えさせる仕組み。 |
|---|---|
| どこで使う | 社内規程QA、製品マニュアル検索、顧客サポートの一次対応。 |
| 注意点 | 検索の精度が回答の精度を決める。文書の整備・更新が成否を分ける。 |
RAGの仕組み
RAGは大きく3つのステップで動作します。まず、ユーザーの質問を埋め込みベクトルに変換し、ベクトルデータベースから類似した文書チャンクを検索します(Retrieval)。次に、検索された文書をプロンプトに追加します(Augmentation)。最後に、LLMが元の質問と検索された文書の情報を基に回答を生成します(Generation)。
1質問を受取る利用者の問い合わせ
▶
2ベクトル化意味を数値に変換
▶
3関連文書を検索意味の近い文書を取得
▶
4LLMに渡す質問+文書をセット
▶
5出典付き回答資料に基づいて答える
※ 追加学習より安く、資料を差し替えるだけで最新の内容に更新できます。
RAGの利点
LLM単体では学習データに含まれない最新情報や専門知識に基づく回答が困難ですが、RAGにより外部の最新データを参照できます。また、回答の根拠となる文書を提示できるため、透明性と信頼性が向上します。ハルシネーション(事実と異なる回答の生成)の軽減にも効果があります。
RAGの課題と発展
検索精度がRAG全体の性能のボトルネックとなることがあります。チャンクサイズの最適化、ハイブリッド検索(キーワード+ベクトル検索)、リランキング、マルチホップ検索などの技術で改善が図られています。