検索拡張グラウンディング(ケンサクカクチョウグラウンディング)
検索拡張グラウンディング(Retrieval-Augmented Grounding)とは、LLMの応答生成時に外部データベースやドキュメントから関連情報を検索・取得し、コンテキストとして注入することで事実に基づいた回答を実現するグラウンディング手法である。RAG(Retrieval-Augmented Generation)として広く知られ、2024〜2026年にかけてSelf-RAG、CRAG、HyDE等の高度な派生手法が登場している。
検索拡張グラウンディングとは
検索拡張グラウンディングは、LLMが回答を生成する前に外部の知識ソースから関連情報を検索し、取得した情報をプロンプトに統合することで事実に基づいた応答を実現する技術である。RAG(Retrieval-Augmented Generation)パイプラインとして実装されることが多い。
概要と技術的背景
RAGはMeta AI(旧Facebook AI Research)のLewis et al.が2020年に発表した論文「Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks」で提案された。当初はDPR(Dense Passage Retrieval)+ BART/T5の組み合わせだったが、2024年以降はベクトルDB + リランカー + LLMの3段パイプラインが標準構成となっている。
2026年時点のRAGエコシステム:
- ベクトルDB: Pinecone(150ms p99レイテンシ)、Weaviate(200ms)、Qdrant(180ms)、ChromaDB(ローカル用)
- 埋め込みモデル: OpenAI text-embedding-3-large(3072次元)、Voyage-3(1024次元)、BGE-M3(多言語対応)、Qwen3-Embedding-8B
- リランカー: Cohere Rerank v3(精度+12%)、BGE-Reranker-v2(オープンソース)、Jina Reranker v2
RAGパイプラインの構成要素
インデックス構築フェーズ
- ドキュメント取り込み: PDF、HTML、Markdown等の各形式からテキスト抽出
- チャンキング: 固定サイズ(512〜1024トークン)、セマンティック分割、再帰的分割のいずれか
- 埋め込み生成: テキストチャンクをベクトル表現に変換(次元数: 768〜3072)
- インデックス格納: ベクトルDBに格納。HNSW(Hierarchical Navigable Small World)アルゴリズムが主流
クエリフェーズ
- クエリ変換: ユーザー質問をベクトル化、またはHyDE(Hypothetical Document Embedding)で仮想回答を生成して検索
- 検索: ベクトル類似度(コサイン類似度)でtop-k候補を取得(k = 5〜20)
- リランキング: Cross-encoderモデルで候補を再スコアリング、top-3〜5に絞り込み
- プロンプト構築: 検索結果をシステムプロンプトまたはユーザープロンプトに統合
- 生成: LLMが検索結果を参照しつつ回答を生成
主要な派生手法の比較
| 手法 | 提案年 | 特徴 | NQ精度 | HotPotQA精度 |
|---|---|---|---|---|
| Naive RAG | 2020 | 基本的な検索+生成 | 44.5% | 35.2% |
| HyDE | 2022 | 仮想回答で検索精度向上 | 48.3% | 38.7% |
| Self-RAG | 2023 | 検索要否を動的判断 | 54.9% | 43.1% |
| CRAG | 2024 | 検索結果の品質評価+修正 | 52.1% | 41.8% |
| Adaptive RAG | 2024 | クエリ複雑度に応じた戦略切替 | 53.7% | 42.5% |
| GraphRAG | 2024 | ナレッジグラフ+コミュニティ検出 | 51.2% | 44.3% |
チャンキング戦略の詳細
チャンクサイズと重複率(オーバーラップ)は検索精度に大きく影響する:
- 固定サイズ: 512トークン + 50トークンオーバーラップが汎用的な設定
- セマンティック分割: 文境界やセクション区切りで分割。LangChainのRecursiveCharacterTextSplitterが代表
- 親子チャンク: 小チャンク(256トークン)で検索、親チャンク(1024トークン)をコンテキストとして返却
- Late Chunking: Jina AIが提案。文書全体を埋め込んでからチャンク分割し、文脈情報を保持(2024年、精度+8%)
実装例とプラットフォーム
- LangChain: Python/JSの汎用RAGフレームワーク。150以上のデータローダー、20以上のベクトルDB対応
- LlamaIndex: データコネクタとインデックス管理に特化。Property Graphインデックスで構造化検索
- Haystack: deepsetが開発するオープンソースフレームワーク。パイプライン定義のYAML対応
- Amazon Bedrock Knowledge Bases: S3 + OpenSearch Serverless + Bedrock LLMの統合サービス。セットアップ10分以内
- Google Vertex AI Search: エンタープライズ検索+RAGの統合ソリューション。10億ドキュメント規模対応
- Vectara: RAG-as-a-Serviceプラットフォーム。ゼロショットリランキング内蔵。MMR(Maximal Marginal Relevance)で多様性確保
よくある質問(FAQ)
Q1: RAGとファインチューニングのどちらを選ぶべきですか? A: 最新情報や頻繁に更新される知識にはRAGが適している。特定ドメインの応答スタイルや専門的な推論能力が必要な場合はファインチューニングが有効。両者の併用(RAG + ファインチューニング済みモデル)が2026年のベストプラクティスである。
Q2: ベクトルDBの選定基準は何ですか? A: 主な評価軸は検索レイテンシ(p99で200ms以下)、スケーラビリティ(百万〜10億ベクトル)、フィルタリング機能、マネージドサービスの可用性である。Pineconeはマネージド型で運用負荷が低く、Qdrantはセルフホスト型でコスト効率が高い。
Q3: チャンクサイズはどのように決めるべきですか? A: 一般的には512〜1024トークンが最適。短い回答が求められるFAQ系は256〜512トークン、長文レポート生成は1024〜2048トークンが適する。必ず実データでA/Bテストを行い、検索精度とコンテキスト品質のバランスを確認すべきである。
まとめ
- 検索拡張グラウンディング(RAG)はLLMの事実接地で最も広く採用されている手法
- Naive RAGからSelf-RAG、CRAG等の高度な派生手法への進化が2024〜2026年に急速に進行
- ベクトルDB + リランカー + LLMの3段パイプラインが標準アーキテクチャ
- チャンキング戦略とリランキングの最適化が精度向上の鍵
- LangChain、LlamaIndex、クラウドマネージドサービス等の実装基盤が充実している