CTS-KB

RAG(検索拡張生成)

らぐ

Retrieval-Augmented Generation検索拡張生成検索拡張retrieval augmented generationグラウンディングgrounding
#RAG#embedding#ベクター検索#LLM#AI#ハルシネーション

RAG(Retrieval-Augmented Generation / 検索拡張生成) は、LLM に回答させる前に 外部の知識ベースから関連文書を引いてきて、プロンプトに添える 手法。モデルを再学習(ファインチューニング)せずに、社内データや最新情報を回答へ反映できる。

概要

LLM は学習時点の知識しか持たず、社内固有の情報も知らない。RAG はこの限界を「外付けの知識」で補う。

  1. 検索(Retrieval):ユーザーの質問を embedding にし、知識ベースから ベクター検索 で関連文書を引く
  2. 拡張(Augmented):引いた文書を「根拠(コンテキスト)」としてプロンプトに添える
  3. 生成(Generation):LLM がその根拠に基づいて回答する

回答が外部文書に「接地」するため、ハルシネーション(もっともらしい嘘)を抑え、出典を示せる。ファインチューニングと違い、知識ベースを更新するだけで回答も最新化できるのが利点。

なぜ検索精度が回答品質を決めるのか

RAG の品質は 「正しい根拠を引けているか」 にほぼ依存する。検索(Retrieval)が的外れな文書を拾えば、LLM はその誤った根拠に基づいて自信たっぷりに間違える(“garbage in, garbage out”)。

したがって RAG の精度改善は、生成モデルより 検索側の作り込み が要になる。

  • どんなテキストを embedding にするか(チャンク分割の粒度)
  • 保存側(document)と検索側(query)で task_type を正しく使い分けているか(非対称検索
  • 類似度の閾値・上位 N 件の絞り込み

⚠️ task_type を誤ると、エラーは出ないのに検索のヒット率だけが静かに落ち、RAG 全体の回答品質が下がる。詳細は ベクター検索の落とし穴 を参照。

RAG と context engineering

引いた文書をどうプロンプトへ配置し、限られたコンテキスト窓に何を残すかは context engineering の領域。RAG は「外部知識をコンテキストに注入する」具体的な一手段といえる。

関連記事・用語

外部リソース