コンテンツにスキップ
LinkedInX

RAGの歴史

約10分

対象読者: RAGがなぜ必要になったのか、過去の検索・QA技術とどうつながるのかを理解したい方
前提知識: RAGとはLLMとは? の基礎

RAGは突然生まれた技術ではありません。検索エンジン、質問応答、知識ベース、ニューラル検索、LLMの発展が重なって、2020年代に「LLMに外部知識を読ませる標準的な設計」として広まりました。

RAG以前: 検索と生成は別々だった

Section titled “RAG以前: 検索と生成は別々だった”

RAG以前から、コンピュータは大量の文書から必要な情報を探していました。代表例が検索エンジンです。

古典的な検索では、ユーザーの検索語と文書内の単語の一致度を見ます。BM25のようなキーワード検索は、エラーコード、製品名、法令番号、固有名詞に強く、今でも実務RAGで重要です。

一方で、古典的な検索には限界があります。

  • 検索語と文書の言い回しが違うと見つけにくい
  • 検索結果を読んで答えを組み立てるのは人間の仕事
  • 複数資料を横断して要約・比較するのが難しい

つまり、RAG以前の検索は「資料を見つける」技術であり、「資料を根拠に自然文で答える」技術ではありませんでした。

RAGにつながる重要な流れが、オープンドメインQAです。これは、Wikipediaなどの大規模文書集合から答えを探し、質問に短く答える研究領域です。

典型的には、次の2段階で動きます。

  1. Retrieverが質問に関係する文書や段落を探す
  2. Readerがその段落から答えの文字列を抽出する

この構成は、現在のRAGにかなり近い考え方です。ただし、当時の多くのQAシステムは「答えの抜き出し」が中心でした。たとえば「日本の首都はどこですか?」に対して「東京」と答えるのは得意でも、複数資料を統合して説明文を生成するのは苦手でした。

2018-2020年: ニューラル検索と生成モデルが接近した

Section titled “2018-2020年: ニューラル検索と生成モデルが接近した”

Transformer、BERT、GPT系モデルの発展により、検索と生成の両方が大きく変わりました。

検索側では、文や段落をベクトルに変換し、意味の近さで検索する密ベクトル検索が広まりました。質問と文書の表現が完全一致しなくても、「意味が近い」文書を取り出せるようになりました。

生成側では、事前学習済みの言語モデルが長い回答を自然に生成できるようになりました。しかし、モデルの内部知識だけに頼ると、次の問題が残りました。

  • 学習後の新しい情報を知らない
  • 非公開文書を知らない
  • 根拠を示せない
  • 知らないことをもっともらしく答える

この問題意識が、RAGの中心にあります。

2020年: RAG原論文が形にしたこと

Section titled “2020年: RAG原論文が形にしたこと”

2020年の論文「Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks」は、RAGを現在の意味で広めた代表的な研究です。この論文では、事前学習済みのseq2seqモデルを「パラメトリックメモリ」、Wikipediaの密ベクトルインデックスを「ノンパラメトリックメモリ」として組み合わせました。[1]

重要なのは、知識をすべてモデルの重みに閉じ込めるのではなく、外部インデックスから取り出せるようにした点です。

graph LR
    Q["質問"] --> R["ニューラル検索"]
    R --> W["Wikipedia由来の文書"]
    W --> G["生成モデル"]
    Q --> G
    G --> A["回答"]

この考え方により、RAGは次の価値を持つようになりました。

価値意味
更新しやすいモデルを再学習しなくても文書インデックスを更新できる
根拠を示しやすいどの文書を参照したかを表示できる
専門知識を足せる社内文書、マニュアル、論文などを追加できる
生成に強い抽出だけでなく、説明・要約・比較ができる

2022-2023年: LLMアプリケーションの標準部品になった

Section titled “2022-2023年: LLMアプリケーションの標準部品になった”

ChatGPT以後、RAGは研究手法から実務アプリケーションの標準部品になりました。

社内チャットbot、FAQ検索、サポート自動化、契約書検索、技術文書検索などで、「LLMに独自文書を参照させる」需要が急増したためです。

この時期の典型的な構成は、次のようなものでした。

graph TD
    D["文書"] --> C["チャンク分割"]
    C --> E["埋め込み"]
    E --> V["ベクトルDB"]
    Q["質問"] --> QE["質問を埋め込み"]
    QE --> V
    V --> K["top-kチャンク"]
    K --> P["プロンプト"]
    P --> L["LLM"]

ただし、単純な「ベクトルDB + top-k + LLM」には弱点もありました。

  • 検索語、型番、コード名の完全一致に弱い
  • チャンクが小さすぎると文脈が欠ける
  • チャンクが大きすぎるとノイズが増える
  • top-kに不要な文書が混ざる
  • 検索結果が悪いと、回答も悪くなる
  • 権限管理や古い文書の扱いを間違えると危険

ここからAdvanced RAGが必要になりました。

Advanced RAGは、単純な検索パイプラインを補強する実務的な工夫の総称です。

技術目的
ハイブリッド検索ベクトル検索とキーワード検索を組み合わせる
クエリ書き換えユーザー質問を検索しやすい形にする
リランク検索候補を質問への関連度で並べ直す
文脈圧縮LLMに渡す前に不要な部分を削る
階層検索詳細チャンクと要約チャンクを使い分ける
検索品質評価検索結果が使えるかを判定する

Self-RAGは、検索が必要か、取得した根拠が有用か、生成結果が根拠に合っているかをモデルに自己評価させる方向を示しました。[2] CRAGは、検索結果の品質を評価し、不十分ならWeb検索や知識精製などの補正行動を取る設計を示しました。[3] RAPTORは、文書を再帰的に要約して木構造にし、細部と全体像の両方を検索する方向を示しました。[4]

これらの研究から見える教訓は、「RAGは検索したら終わりではない」ということです。検索前、検索中、検索後、生成後のすべてに設計余地があります。

従来のRAGは、特定の答えがどこかのチャンクに書かれている質問に強い設計でした。

しかし、次のような質問は苦手です。

  • この大量の議事録全体で、主要な論点は何ですか?
  • 顧客問い合わせ全体から、製品改善テーマを分類してください
  • この組織のリスク構造を全体像として説明してください

このような質問は、特定の1チャンクを見つけるだけでは答えにくい「全体把握」の問題です。GraphRAGは、文書からエンティティや関係を抽出し、グラフとコミュニティ要約を作ることで、コーパス全体に対する質問に答えやすくする考え方を示しました。[5]

Graph RAGの重要性は、RAGが「検索」だけでなく「知識構造化」と結びつき始めた点にあります。

2025年以降、RAGはエージェントと強く結びついています。

従来のRAGでは、開発者が検索手順を固定します。

質問 → クエリ変換 → 検索 → リランク → 生成

Agentic RAGでは、エージェントが状況に応じて次の行動を選びます。

質問を分解する
必要な情報源を選ぶ
キーワード検索と意味検索を使い分ける
足りなければ再検索する
根拠を読み込む
矛盾を検証する
回答する

また、コーディングエージェントの台頭により、RAGは自然文文書だけでなく、リポジトリ全体を理解するための技術にもなっています。コードでは、単純な文字数チャンクでは関数、クラス、型、テスト、依存関係が壊れます。そのため、ASTベースの構造化チャンク、シンボル検索、テスト実行ログ、過去の修正履歴などが重要になります。

RAGの歴史を一言でまとめると、「LLMに何を覚えさせるか」から「LLMが必要な情報へどうアクセスし、どう検証するか」への移行です。

時期中心課題RAGへの意味
検索エンジン文書を見つけるキーワード検索とランキングの土台
オープンドメインQA文書から答えを抜き出すRetriever + Readerの構成
RAG原論文検索と生成を結合する外部知識を生成に使う
LLMアプリ期社内文書を参照するベクトルDB型RAGの普及
Advanced RAG検索失敗とノイズを減らすハイブリッド検索、リランク、評価
Graph / Agentic RAG複雑な調査と全体把握検索計画、再検索、検証、構造化
コードRAGリポジトリを理解する構文、依存関係、テスト、履歴の活用
  • RAGは検索、QA、ニューラル検索、生成モデルの流れから生まれた
  • 2020年のRAG原論文は、モデル内部知識と外部メモリを組み合わせる設計を示した
  • 2023年以降、単純なベクトル検索では不十分になり、Advanced RAGが重要になった
  • Graph RAG、Agentic RAG、コードRAGは、RAGを「検索パイプライン」から「知識アクセスと検証の設計」へ広げている
  1. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
  2. Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection
  3. Corrective Retrieval Augmented Generation
  4. RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval
  5. From Local to Global: A Graph RAG Approach to Query-Focused Summarization
クイズ