【2025年5月完全版】RAGの教科書
この記事の内容
- RAG(Retrieval-Augmented Generation)の基本的な仕組みとメリットを解説します
- ネイティブRAG・グラフRAG・ハイブリッドRAG・エージェントRAGの4つのアプローチを紹介します
- 近年注目を集める「エージェントRAG」の多段階処理フローを詳しく説明します
- チャンク分割・検索手法・Embeddingモデルなど、精度向上のための要素技術を整理します
- RAGとファインチューニングの違いと、両者を組み合わせるアプローチについて触れます
RAGとは何か
RAG(Retrieval-Augmented Generation)は、大規模言語モデル(LLM)が元々持っていない知識や最新情報に基づいて正確な回答を生成させるための、非常に人気の高いアーキテクチャです。
その基本的な仕組みは、以下の3つのステップで構成されています。
- 事前準備: 回答に必要となる情報を、テキストやドキュメントなど様々な形式から収集し、AIが利用しやすいように加工してデータストア(Azure AI Searchなど)に格納しておきます。
- 情報検索(Retrieval): ユーザーから質問が届いたとき、その質問を直接LLMに渡すのではなく、まずデータストアから質問に関連する情報を検索・取得します。
- 回答生成(Generation): ユーザーの元の質問と、検索で取得した関連情報をセットにしてLLMに渡します。これにより、LLMは提供された情報に基づいて、より正確で文脈に沿った回答を生成できます。
RAGを使う3つのメリット
このアーキテクチャを採用することで、次のような大きなメリットが得られます。
- ハルシネーション(幻覚)の抑制: LLMが知らない情報について、事実であるかのように誤った回答を生成する現象を大幅に抑えられます。
- 最新かつ専門的な情報への対応: LLMの学習データに含まれていない社内文書や最新データに基づいた回答が可能になります。
- 回答の根拠提示: 回答の基になった情報ソースをユーザーに示すことが容易になり、透明性と信頼性が向上します。
RAGの4つの主要なアプローチ
RAGと一言で言っても、その実装には様々なアプローチが存在します。データの格納方法や取得方法の工夫によって、大きく以下の4つに分類されます。
1. ネイティブRAG(Native RAG)
最も基本的な形式です。一度の検索と生成をシンプルに実行します。RAGの基本概念をそのまま実装したアプローチで、導入のしやすさが特徴です。
2. グラフRAG(Graph RAG)
データストアにグラフ構造(エンティティとリレーションシップ)を用いるアプローチです。情報間の関係性を活用することで、より複雑な質問に対しても的確な情報を取得できます。
3. ハイブリッドRAG(Hybrid RAG)
ネイティブRAGとグラフRAGなど、複数のアプローチを組み合わせてそれぞれの長所を活かす手法です。
4. エージェントRAG(Agentic RAG)
近年特に注目されている、最も高度なアプローチです。情報検索のプロセス自体を自律的な「エージェント」が担い、推論や複数のツールを駆使しながらより複雑なタスクを実行します。
これらのアプローチは、下に行くほど複雑性が増し、より高度で柔軟な処理が可能になります。
エージェントRAGの処理フロー
エージェントRAGは、従来のシンプルなRAGとは一線を画す、多段階で循環的なプロセスを採用しています。その処理フローの一例は以下の通りです。
- 質問分析と戦略決定: ユーザーの質問を分析し、どのような手順で情報を検索するのが最適かをAIが判断します。
- 外部ソースの検索: 構築済みのデータベースやWeb検索など、複数の情報源から最適なものを選択して検索を実行します。
- 初期回答の生成: 収集した情報に基づいて、最初の回答案を作成します。
- 評価と改善のループ: 生成された回答が十分な品質か、根拠に基づいているかを評価します。不十分であれば、追加の検索やツールを利用して情報を補強し、回答を改善します。このプロセスは品質が基準を満たすまで繰り返されます。
- 最終回答の提示: 十分に改善された最終的な回答をユーザーに返します。
一度の質問応答の裏でLLMや外部ツールが何度も呼び出されるため、コストや時間は増加します。しかしその分、ネイティブRAGでは対応できないような複雑な要求にも応えられる、非常に柔軟で強力なシステムを構築できます。
RAGの精度を向上させる要素技術
RAGシステムの精度は、様々な要素技術の組み合わせによって決まります。主な改善アプローチを以下に整理します。
データ準備
- チャンク分割: テキストを適切なサイズに分割する手法です。チャンクサイズやオーバーラップの設定が検索精度に大きく影響します。
- メタデータ設計: 検索対象のデータにメタ情報を付与し、フィルタリングなどに活用します。
検索手法
キーワード検索・ベクトル検索・ハイブリッド検索など、目的に応じて異なる検索方法を使い分けることが重要です。また、検索が失敗した場合に検索範囲を広げるといったフォールバック戦略を用意しておくことも有効です。
その他の要素
- Embeddingモデルの選択: テキストをベクトル化するモデルの選択も精度に影響します。
- プロンプトエンジニアリング: LLMに渡す指示(プロンプト)を工夫することで、回答の質を向上させられます。
- LLMモデルの選択: タスクに応じて最適なLLMを選択します。
これらの要素を適切に選択・調整し、目的に応じて試行錯誤を繰り返すことが、高性能なRAGシステムを構築する鍵となります。
RAGとファインチューニングの違い
RAGとしばしば比較される技術に「ファインチューニング」があります。ファインチューニングは特定のタスクや文体にLLMを適応させる手法であり、外部知識を注入するRAGとは目的が異なります。
ただし、これら2つは排他的なものではありません。「RAG+ファインチューニング」のように組み合わせることで、それぞれの利点を活かすアプローチも有効です。
まとめ
RAGは、単純な情報検索と回答生成の仕組みから、自律的なエージェントが推論を繰り返す高度なアーキテクチャへと進化を続けています。
すでに社内でRAGを導入している場合でも、チャンク分割の最適化や検索手法の見直し、さらにはエージェントRAGのような先進的なアプローチを取り入れることで、システムの品質をさらに高められる可能性があります。
日本マイクロソフトの多木祐介氏が2025年5月に公開したブログ記事「RAGの教科書」は、これらの技術を体系的に学ぶための包括的なリソースとなっています。RAGをより深く理解したい方は、ぜひ原文もあわせてご参照ください。