RAG(検索拡張生成)とは
RAG(Retrieval-Augmented Generation:検索拡張生成)は、大規模言語モデル(LLM)に外部データの検索機能を組み合わせることで、回答の正確性と最新性を向上させる技術です。
ChatGPTやClaudeなどのLLMは、学習時点までの知識しか持っていません。RAGを使うと、回答生成時にリアルタイムで外部データベースや文書を検索し、その情報を元に回答を生成するため、ハルシネーション(AIの嘘)を大幅に削減できます。
なぜRAGが必要なのか
LLM単体には以下の限界があります。
| LLMの限界 | 具体例 | RAGによる解決 |
|---|---|---|
| 知識の鮮度 | 学習データ以降の出来事を知らない | 最新の文書を検索して回答に反映 |
| ハルシネーション | 知らないことも「もっともらしく」回答してしまう | 根拠となる文書を明示して回答 |
| 社内情報の欠如 | 社内マニュアルや顧客データにアクセスできない | 社内文書をベクトルDBに格納し検索 |
| 出典の不明確さ | どの情報源に基づく回答か不明 | 参照元ドキュメントを提示 |
RAGの仕組み
RAGは3つのフェーズで動作します。
フェーズ1:インデックス作成(事前準備)
- 文書の分割:PDF、Webページ、社内文書などを適切なサイズのチャンク(断片)に分割
- ベクトル化:各チャンクを埋め込みモデル(Embedding Model)で数値ベクトルに変換
- ベクトルDBへ格納:変換したベクトルをPinecone、Chroma、pgvectorなどのベクトルデータベースに保存
フェーズ2:検索(Retrieval)
- ユーザーの質問を同じ埋め込みモデルでベクトル化
- ベクトルDB内で、質問ベクトルと意味的に近いチャンクを検索(類似度検索)
- 関連度の高い上位K件のチャンクを取得
フェーズ3:生成(Generation)
- 取得したチャンクをLLMへのプロンプトに「コンテキスト」として追加
- LLMがコンテキストを参照しながら回答を生成
- 出典情報とともにユーザーに回答を返す
RAGの進化:Simple RAG → Advanced RAG
| 手法 | 特徴 | 適した場面 |
|---|---|---|
| Simple RAG | 基本的な類似度検索 + LLM生成 | FAQ、シンプルな文書検索 |
| Advanced RAG | クエリ書き換え、リランキング、ハイブリッド検索 | 複雑な質問への回答 |
| Modular RAG | 各コンポーネントを柔軟に組み合わせ | 大規模システム |
| Graph RAG | 知識グラフとLLMを組み合わせ | 関係性の複雑なデータ |
| Agentic RAG | AIエージェントがRAGを動的に制御 | マルチステップの調査タスク |
ベクトルデータベースの比較
RAGの性能を左右するベクトルデータベースの主要な選択肢:
| サービス | 特徴 | 料金 | おすすめ用途 |
|---|---|---|---|
| Pinecone | フルマネージド、高速 | フリーミアム | 本番環境 |
| Chroma | オープンソース、軽量 | 無料 | プロトタイプ開発 |
| pgvector | PostgreSQL拡張 | 無料 | 既存PostgreSQL環境 |
| Weaviate | マルチモーダル対応 | フリーミアム | 画像+テキスト検索 |
| Qdrant | 高性能、Rust製 | フリーミアム | 大規模データセット |
RAGの活用事例
社内ナレッジベースの構築
社内マニュアル、議事録、FAQ文書をRAGに取り込み、社員が自然言語で質問できるチャットボットを構築。NTTドコモ、KDDI、三菱UFJなど大手企業での導入が進んでいます。
カスタマーサポート
製品マニュアルや過去の問い合わせ履歴をRAGに活用し、正確な回答を自動生成。人間のオペレーターの負荷を削減しつつ、回答品質を向上。
法務・コンプライアンス
法律文書や社内規定をRAGで検索可能にし、「この契約書にリスクはあるか?」といった質問に根拠を示しながら回答。
教育・研修
教科書やeラーニング教材をRAGに取り込み、受講者の質問に対して教材の該当箇所を引用しながら解説。
RAG構築の簡単な始め方
ノーコードで試す場合
- Dify:ドキュメントをアップロードするだけでRAGチャットボットが完成
- ChatGPTのGPTs:Knowledge機能でファイルをアップロードし、カスタムGPTを作成
コードで構築する場合
- LangChain + Chroma:Python数十行でRAGパイプラインを構築可能
- LlamaIndex:ドキュメントのインデックス作成に特化したライブラリ
RAGの課題と対策
- チャンクサイズの最適化:小さすぎると文脈が失われ、大きすぎるとノイズが増加
- 検索精度:埋め込みモデルの選定とハイブリッド検索(セマンティック+キーワード)の組み合わせが重要
- 最新性の維持:ドキュメントの更新に合わせてベクトルDBも定期更新が必要
- コスト管理:大量の文書をベクトル化する際のAPI料金と、ベクトルDBのストレージ費用
まとめ
RAG(検索拡張生成)は、LLMの知識の限界を外部データの検索で補完する技術です。ハルシネーションの低減、最新情報への対応、社内データの活用など、実用的なAIシステム構築に不可欠な技術となっています。
DifyやLangChainなどのツールを使えば、比較的簡単にRAGシステムを構築できるため、「AIを業務に活用したい」という企業のファーストステップとして最適な技術です。
