RAG(検索拡張生成)
Retrieval-Augmented Generation(RAG) は、外部データベースや文書から関連情報を動的に検索し、LLMのプロンプトに挿入することで、モデルが知らない知識や最新情報を活用できるようにする手法。コンテキストエンジニアリングの代表的な実装パターン。
基本構造
ユーザーのクエリ
↓
① 検索(Retrieval): ベクトルDB等から関連ドキュメントを検索
↓
② 拡張(Augmented): 検索結果をプロンプトに挿入
↓
③ 生成(Generation): LLMが拡張されたプロンプトで回答を生成
なぜRAGが重要か
LLMの課題:
- 学習データの知識カットオフ(最新情報を知らない)
- 企業固有・個人固有の情報を持っていない
- ハルシネーション(事実でないことを自信満々に生成)
RAGはこれらをモデルの再学習なしに解決する。
Embeddingとの関係
RAGの検索ステップには Embedding(埋め込みベクトル) が活用される。テキストを数値ベクトルに変換し、コサイン類似度でクエリと文書の意味的近似度を測る。DeNA勉強会ではEmbedding API呼び出し + コサイン類似度計算のハンズオンを実施。
Agentic RAG
AIエージェントが文脈に応じてプロジェクト内ファイルや外部DBを自律的に検索・参照する発展形。Claude Codeの文脈では「プロジェクトフォルダへの情報集約+自律的ファイル参照」がAgentic RAGとして機能し、AIの長期記憶として活用できる(KAJI 梶谷健人提唱)。
ファインチューニングとの使い分け
| 手法 | 適するケース | コスト |
|---|---|---|
| RAG | 最新情報・大量の外部文書・頻繁な情報更新 | 低〜中(推論時に検索) |
| ファインチューニング | モデルの振る舞い・スタイルを変える・特定ドメインへの適応 | 高(再学習が必要) |
| 強化学習(RLHF等) | 品質・方向性の全体調整 | 非常に高 |
実装時の考慮点
- チャンク分割の粒度(検索精度に直結)
- ベクトルDBの選択(Pinecone, Chroma, FAISS等)
- リランキング(検索結果の再順位付け)によるノイズ除去
- Deep Research設計: 複数ステップの検索・要約・再検索を組み合わせた高度なRAGパイプライン
関連概念
- コンテキストエンジニアリング — RAGはコンテキストエンジニアリングの実装手段の一つ
- LLMプロダクト開発 — RAGはLLMプロダクトのパーソナライズ・知識補強の主要手法
- AIエージェント開発入門プロセス — エージェントとRAGを組み合わせたAgentic RAGの文脈
ノーコード RAG:NotebookLM
Google の NotebookLM は、コーディングなしに「特定文書ベースの Q&A」を実現するノーコード RAG として機能する。PDF・Google Docs をソースに設定するだけで、LLM がその文書に基づいた回答を生成する。
田部井勝彦 が 2025年7月に開発した目標設定支援ツールでは、独自 RAG 環境の代わりに NotebookLM を採用し、開発期間を1ヶ月半に短縮した(「NotebookLM がなければ独自 RAG 環境構築が必要で、同期間での導入は不可能だった」)。
詳細: Gemini と NotebookLM を組み合わせて目標設定の負荷を軽減する方法
関連エンティティ
- Tomoki Yoshida — DeNA勉強会でRAGの基本構造・Embeddingをハンズオン形式で解説
- KAJI 梶谷健人 — Agentic RAGをClaude Code非エンジニア活用の核心として提唱
- 田部井勝彦 — NotebookLM(ノーコード RAG)を活用して目標設定支援ツールを1ヶ月半で社内導入