RAGの基本構成(Retriever + Generator)

RAG(Retrieval-Augmented Generation)は、生成型AI(たとえばLLM:大規模言語モデル)に外部知識を効果的に組み込む手法として注目されています。その中心にあるのが、「Retriever(検索器)+ Generator(生成器)」という基本構成です。以下でそれぞれの役割と構成全体の流れについて詳しく説明します。


RAGの基本構成:Retriever + Generator

1. Retriever(検索器)

役割:ユーザの質問に関連する情報を外部知識ベースから検索する

Retrieverは、ユーザからの入力(クエリ)をもとに、外部に保持された知識ソース(例:社内ドキュメント、論文、FAQなど)から関連性の高い文書や文を検索します。

主な特徴

  • 情報源:検索対象は大規模な非構造データ(例:テキストデータベース、ベクトルストア)であることが多い。

  • 手法

    • BM25などの伝統的検索アルゴリズム

    • Dense Retrieval(密ベクトル検索):クエリと文書を埋め込みベクトルに変換し、コサイン類似度などで比較(例:DPR、FAISS)

  • 出力:関連文書の集合(Top-kの文や段落)

2. Generator(生成器)

役割:Retrieverで得た情報を基にして、自然な回答文を生成する

Generatorは通常、GPTなどの大規模言語モデルです。Retrieverから得た文書を「コンテキスト」として取り込み、それを参考にしながら出力文を生成します。

主な特徴

  • 入力:ユーザのクエリ + 検索された文書群

  • 動作:質問に直接答えるのではなく、取り込まれた知識を活用して回答を組み立てる

  • 出力:自然な言語で書かれた回答文(要約、説明、具体例など)


全体の処理フロー(RAG Pipeline)

javascript
ユーザの質問 ↓ Retriever(関連文書を検索) ↓ Generator(文書 + 質問をもとに自然文を生成) ↓ 出力:回答文

RAGのメリット

  • 知識の拡張性:モデルの事前学習知識に依存せず、最新・専門的な知識を活用できる

  • 応答の根拠提示が可能:検索された文書を提示することで、回答の出典を明示できる

  • モデルの更新コスト削減:基盤モデルを再学習することなく知識更新が可能(知識ベースの更新のみで済む)


補足:RetrieverとGeneratorの一体型・分離型

  • 分離型(Modular):RetrieverとGeneratorを別々のモデル・処理系として構成

  • 一体型(End-to-End):両者を統合して共同で学習(例:RAGモデル by Facebook AI)


このように、RAGはRetrieverが知識を取り出し、Generatorがその知識を用いて回答を生成するという、役割分担に基づいた構造になっています。これにより、大規模言語モデル単体では難しい事実性の担保ドメイン知識の活用が可能になります。

生成日:2025/06/07