RAGとは何か(定義と概要)
RAG(Retrieval-Augmented Generation)とは、情報検索(Retrieval)と自然言語生成(Generation)を組み合わせたハイブリッド型の自然言語処理アーキテクチャです。特に、質問応答や知識ベースの対話システムにおいて、外部知識を活用して精度の高い応答を生成するために用いられます。
背景と目的
従来の大規模言語モデル(LLM)は、トレーニング時に得た知識に基づいてテキストを生成しますが、次のような課題があります:
-
トレーニング時点の情報しか保持していない(情報が古い)
-
ファクトベースの質問に対して誤情報(ハルシネーション)を返す可能性がある
-
モデルサイズが大きくなるほど計算資源が膨大になる
これらを補うために、RAGでは外部のドキュメントやナレッジベースから動的に情報を取得し、応答生成時にそれを活用します。
RAGの基本構成
RAGは主に以下の2つのコンポーネントから成り立っています:
-
Retriever(検索器)
-
ユーザーからのクエリに基づき、外部のドキュメントデータベースから関連文書を検索
-
ベクトル検索エンジン(例:FAISS, Elasticsearch)を使って類似度に基づく検索を行う
-
一般的に、文書は事前に埋め込みベクトルに変換されて格納される
-
-
Generator(生成器)
-
検索で取得された文書とユーザーのクエリを入力として受け取り、自然言語応答を生成
-
通常、生成器には事前学習済みのTransformer系言語モデル(例:BART、T5、GPTなど)が用いられる
-
処理の流れ(概要)
-
ユーザーが質問を入力
-
Retrieverが、質問と関連する文書を外部ソースから検索
-
Generatorが、取得した文書と元の質問をもとに回答文を生成
-
ユーザーに自然な形で回答を提示
特徴と利点
-
動的知識アクセス:トレーニング済みモデルに含まれない情報にもリアルタイムでアクセス可能
-
知識の更新が容易:文書データベースを更新すれば、モデル自体の再学習なしに新しい知識を反映可能
-
ハルシネーションの抑制:検索に基づく根拠を提供できるため、信頼性の高い出力が期待できる
代表的な応用分野
-
オープンドメイン質問応答(Open-domain QA)
-
カスタマーサポートチャットボット
-
法律・医療などの専門情報検索システム
-
エンタープライズ向けドキュメントアシスタント
生成日:2025/06/07