Shikata Ga Nai

Private? There is no such things.

第13回:RAGの3ステップ「インデックス・検索・生成」とは

Hello there, ('ω')ノ

「RAGって、どう動いてるの?」

ここまで読んできて、こんな疑問を感じている方も多いのではないでしょうか?

💬「RAGってすごそうだけど、実際にはどう動いてるの?」
💬「AIに答えさせるまでに、何が起きてるの?」

RAG(検索拡張型生成)は、ただAIに質問して終わり、ではありません。
その裏では、3つのステップが密接に連携して働いています。

その3ステップとは──

✅ インデックス(Indexing)
✅ 検索(Retrieval)
✅ 生成(Generation)

今回は、それぞれのステップで何が行われているのか?どこに工夫の余地があるのか?を、初心者の方にもわかるように丁寧に解説します。


全体像:RAGの流れを一言でまとめると?

① インデックス:社内の文書を“検索しやすい形”に準備する  
② 検索:質問に合った情報を探し出す  
③ 生成:探し出した情報を元にAIが答える

では、それぞれの工程を詳しく見ていきましょう。


🧩 ステップ①:インデックス(Indexing)

= データの“ベクトル化と整理”

RAGを始めるには、まず「AIが読むべき資料(社内データ)」を、検索できる状態に変換する必要があります。

この作業が「インデックス」です。

🔧 主な作業内容

  1. 文書の読み込み(PDF, Word, Excel, テキストなど)
  2. 分割(チャンク化):段落・文ごとなど、検索単位に分ける
  3. ベクトル化(埋め込み):それぞれの文章を“意味ベースの数値”に変換
  4. 保存(インデックス化):ベクトルデータベースに登録

🧠 ここで作られるのは「AIが意味で探せるデータの地図」のようなものです。


🔍 ステップ②:検索(Retrieval)

= 質問に合う“意味が近い情報”を取り出す

ユーザーが質問を入力すると、まずAIはその質問もベクトル化して、
さきほどの「意味の地図」から近い位置にある情報を探します。

🧭 何が起きている?

  • 「質問」→ベクトル化(Embedding)
  • 「質問ベクトル」と近い文書ベクトルをスコア順で取得
  • 上位n件の文書を抜き出す(一般的には3〜5件)

🔍 つまりこの工程は、「今の質問に一番近い情報を探す」という意味検索フェーズです。


🧠 ステップ③:生成(Generation)

= 見つけた情報を使って、AIが回答を作る

検索された文書(=文脈)を元に、ChatGPTなどのLLMが回答を生成します。

✨ ここで行われること

  • 検索結果+ユーザーの質問 → プロンプトとして組み合わせ
  • LLMに渡す(コンテキストウィンドウ内で)
  • AIが自然な言葉で回答を生成
  • 必要に応じて、引用元を添えて表示

📎 このステップにより、「根拠のある答え」をAIが出せるようになるのです。


3ステップの流れをまとめて図解!

【Step 1】インデックス  
社内文書をベクトル化してベクトルDBに保存

【Step 2】検索  
質問ベクトルと“意味が近い”文書を探す

【Step 3】生成  
見つけた文書を使って、LLMが回答を作成

→ 根拠付きの自然な回答が返ってくる!

どこに工夫の余地があるの?

RAGの精度や信頼性は、各ステップでの「設計の質」によって大きく左右されます。

ステップ 改善ポイント
インデックス 文書の分割方法・不要な情報の除外・メタデータ設計
検索 ベクトル化の精度・検索件数の調整・ハイブリッド検索の活用
生成 プロンプトの設計・LLMの選定・引用表示の工夫

特にプロンプト設計情報の分割の仕方は、現場での精度向上に大きな影響を与える重要ポイントです。


実務でのイメージ(例:社内FAQ対応)

💬 質問例:
「有給休暇はいつまでに申請すればいいですか?」

🧩 インデックス:
就業規則、社内ポータル、FAQをベクトル化・保存

🔍 検索:
「申請期限」などの記載を含むページをベクトル検索

🧠 生成:
「有給休暇の申請は3営業日前までに必要です」など、規則に基づいた回答を出力

📎 出典:
「(就業規則 第10条より)」などを明記


まとめ:RAGは「検索→生成」の協調プレー

  • RAGは「インデックス」「検索」「生成」の3ステップから構成されている
  • 文書の分割やベクトル化(インデックス)が土台
  • ベクトル検索で“意味の近い情報”を探し出すのがカギ
  • LLMが情報を読み取り、人間の言葉で答えを生成
  • 各ステップに工夫を加えることで、AIの回答精度を大きく向上できる!

Best regards, (^^ゞ