RAG(検索拡張生成 / Retrieval-Augmented Generation)
概要
RAG(Retrieval-Augmented Generation, 検索拡張生成)は、大規模言語モデル が回答を生成する前に 外部の知識ソースから関連情報を検索(Retrieval)し、それをコンテキストに加えて生成(Generation) する手法です。モデルのパラメータに含まれない最新・固有の情報を扱えるようにし、生成を事実にグラウンディングします。
なぜ重要か
- LLM の知識は 事前学習 時点で固定され、最新情報や社内固有情報を持たない
- ファインチューニング せずに外部知識を反映できる
- ハルシネーション(事実誤認)の低減に寄与
- AIエージェント の エージェントメモリ における中心的な仕組み
基本的な流れ
クエリ → 検索(ベクトル検索/全文検索)→ 関連文書を取得
→ プロンプトに文脈として付加 → LLM が回答を生成
セマンティック検索とベクトルストア
- セマンティック検索:従来のキーワード一致と違い、クエリの背後にある文脈・意図を理解して関連文書を返す
- 埋め込み(Embedding):テキストをベクトルに変換(例:Sentence Transformers)
- ベクトルストア(Vector DB):FAISS、Annoy などで類似度検索を行う
発展形
| 手法 | 概要 |
|---|---|
| グラフRAG(Graph RAG) | ナレッジグラフを活用して関係性を辿る検索 |
| 意味体験記憶(Semantic Experience Memory) | エージェントの経験を意味的に蓄積・検索 |
| 動的ナレッジグラフ | リアルタイムに知識を更新。ただし計算コスト・レイテンシが課題で、用途によっては RAG の方が優れることも |
実用上の位置づけ
2025年の材料科学・化学向け LLM ハッカソンの分析(From_Knowledge_to_Action_2025_LLM_Hackathon)でも、RAG が グラウンディングの基盤 として広く活用され、実験室統合型のクローズドループシステムへ進化していることが報告されています。
低コスト構成の実践例
高価なベクトル DB インフラに頼らず RAG を組む工夫も進んでいます。
- Gemma 4 31B + S3 Vectors + AgentCore(AWS Bedrock)— 安価なオープンモデル(Gemma)と従量課金の S3 Vectors で OpenSearch Serverless($350/月〜)を置き換え、月 1,000 クエリで $2〜$5 という低コストを実現。AgentCore Memory で会話を永続化し、MCP ツールや LLM-as-a-Judge 評価も組み込む。スタートアップ・PoC 向けに RAG 導入のハードルを下げる構成。Gemma 4 31B + S3 Vectors + AgentCore で低コストな RAG を構築してみた
知識更新:検索 vs パラメータ編集
LLM の知識を最新化する手段として、重みを直接書き換える「パラメータ編集(Knowledge Editing)」が一時流行しましたが、その有効性に強い疑問が呈されています。
- Revisiting Parameter-Based Knowledge Editing(ICML 2026)— 局所的な重み修正が表現空間の不安定な方向に伝播してコア機能を損なう「次元的崩壊仮説」を提示。体系的評価の結果、単純な検索ベース(RAG 的)ベースラインがすべてのパラメータ編集手法を一貫して上回った。知識更新はパラメータをいじるより RAG で外挿する方が安全という示唆。Revisiting_Parameter-Based_Knowledge_Editing