LESSON 30分

ストーリー

田中VPoE
RAGの基本概念を理解したところで、次はRAGアーキテクチャの進化を見ていこう。RAGも登場から数年で大きく進化している
あなた
最初のRAGと今のRAGでは、何が違うんですか?
田中VPoE
一言でいえば「検索精度の追求」だ。単純に検索して渡すだけのNaive RAGから、検索前後に最適化プロセスを挟むAdvanced RAG、そしてモジュール単位で組み替えられるModular RAGへと進化している
あなた
どの段階のRAGを使えばいいんでしょうか?
田中VPoE
ユースケース次第だ。社内FAQならNaive RAGで十分な場合もあるし、高精度な技術文書検索にはAdvanced RAGが必要だ。まず全体像を掴もう

Naive RAG

基本構成

最もシンプルなRAGアーキテクチャです。多くのRAGチュートリアルがこの形式を採用しています。

Naive RAGのアーキテクチャ:

[Indexing Phase]
ドキュメント → チャンキング → Embedding → ベクトルDB格納

[Query Phase]
ユーザーの質問 → Embedding → ベクトル検索 → Top-K取得 → プロンプト構築 → LLM → 回答

Naive RAGの課題

課題詳細影響
検索精度の限界クエリとドキュメントの表現が異なると検索にヒットしない関連ドキュメントを見逃す
チャンクの品質固定長分割ではコンテキストが途切れる不完全な情報でLLMが回答する
冗長な検索結果Top-Kに重複・無関係な結果が含まれるプロンプトのトークン浪費
ハルシネーション検索結果が不十分だとLLMが推測で補完する誤った回答が生成される

Advanced RAG

Pre-Retrieval最適化

検索前にクエリや入力を最適化するアプローチです。

Advanced RAG(Pre-Retrieval):

ユーザーの質問

[Pre-Retrieval]
├── Query Rewriting(クエリ書き換え)
├── Query Expansion(クエリ拡張)
├── HyDE(仮説的ドキュメント生成)
└── Step-back Prompting(抽象化クエリ)

ベクトル検索

LLM → 回答
手法概要効果
Query RewritingLLMがクエリを検索に適した形に書き換える検索ヒット率の向上
Query Expansion同義語や関連語でクエリを拡張するRecallの向上
HyDELLMで仮の回答を生成し、それをクエリとして検索セマンティックギャップの解消
Multi-Query複数の異なるクエリを生成して並列検索多角的な検索結果の取得

Post-Retrieval最適化

検索後に結果を最適化するアプローチです。

Advanced RAG(Post-Retrieval):

ベクトル検索結果(Top-K)

[Post-Retrieval]
├── Reranking(再順位付け)
├── Compression(圧縮)
├── Filtering(フィルタリング)
└── Fusion(複数検索結果の統合)

最適化されたコンテキスト

LLM → 回答
手法概要効果
RerankingCross-Encoderで検索結果を再スコアリングPrecisionの大幅向上
Compression検索結果から関連部分のみを抽出トークン効率の向上
Reciprocal Rank Fusion複数検索手法の結果を統合検索の多様性確保
Contextual CompressionLLMでコンテキストを要約ノイズ除去

Modular RAG

コンセプト

RAGの各処理をモジュール化し、ユースケースに応じて自由に組み合わせるアーキテクチャです。

Modular RAGの構成要素:

[Indexing Modules]
├── Document Loader
├── Chunker(複数戦略から選択)
├── Embedder(モデル選択可能)
└── Index Builder

[Routing Modules]
├── Query Router(ドメイン別にルーティング)
├── Intent Classifier(意図分類)
└── Complexity Estimator(複雑度判定)

[Retrieval Modules]
├── Vector Search
├── Keyword Search(BM25)
├── Knowledge Graph Search
└── SQL Search

[Post-Processing Modules]
├── Reranker
├── Filter
├── Compressor
└── Validator

[Generation Modules]
├── Prompt Builder
├── LLM Selector
├── Output Parser
└── Citation Generator

3つのアーキテクチャの比較

観点Naive RAGAdvanced RAGModular RAG
実装難易度
検索精度基本的高い最も高い
カスタマイズ性低い中程度非常に高い
開発コスト
運用コスト高(モジュール数に比例)
適するケースPoC、シンプルなFAQ本番システム大規模・高精度要件
レイテンシ中(前後処理追加)可変(パイプライン構成次第)

RAGアーキテクチャの選定基準

要件推奨アーキテクチャ理由
PoCで素早く検証したいNaive RAG最小構成で動作確認可能
社内FAQ(精度要件: 中)Naive RAG + Rerankingコスト効率とのバランス
技術文書検索(精度要件: 高)Advanced RAGPre/Post最適化で精度向上
マルチドメイン対応Modular RAGドメイン別のルーティングが必要
規制対応(金融・医療)Advanced/Modular RAG高精度 + 根拠の追跡が必要

「最初からModular RAGを目指す必要はない。Naive RAGで始めて、ボトルネックが見えたらAdvanced RAGに進化させる。段階的に成長させるのがプロの仕事だ」 — 田中VPoE


まとめ

ポイント内容
Naive RAGシンプルな検索+生成。PoCや低精度要件向け
Advanced RAGPre/Post-Retrieval最適化で精度向上。本番システム向け
Modular RAGモジュール化により高いカスタマイズ性。大規模・高精度要件向け
選定基準精度要件、コスト、開発リソースのバランスで判断

チェックリスト

  • Naive RAGの基本構成と課題を理解した
  • Advanced RAGのPre/Post-Retrieval最適化手法を説明できる
  • Modular RAGのモジュール構成を理解した
  • 要件に応じたアーキテクチャ選定基準を理解した

次のステップへ

次は「Embeddingの基礎」を学びます。テキストをベクトルに変換する仕組みと、Embeddingモデルの選び方を理解しましょう。


推定読了時間: 30分