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: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ヶ月半で社内導入