RAG(Retrieval-Augmented Generation)とは、外部の知識ソースから関連情報を検索し、その結果を LLM の入力に付加することで、回答の正確性と最新性を向上させる手法である。
LLM は学習時点までの知識しか持たない。そして、持っている知識でも自信満々に間違えることがある(ハルシネーション)。RAG はこの二つの弱点に対する実務的な対処法として定着した。
仕組みは直感的だ。ユーザーの質問を受け取ったら、まず社内ドキュメントやナレッジベースから関連する文書を検索する。次に、検索結果を質問と一緒に LLM へ渡す。
LLM は自分の知識だけでなく、渡された文書を根拠にして回答を生成する。出典を明示することもできるため、回答の検証が容易になる。RAG を構成する要素を分解すると、文書の前処理(チャンク分割)、ベクトル埋め込み、類似度検索(セマンティック検索)、そして LLM への入力構成になる。
各ステップに選択肢があり、チャンクの切り方一つで回答品質が大きく変わる。ファインチューニングとの使い分けは頻繁に議論されるが、役割が違う。RAG は「外部の知識を参照させる」手法で、ファインチューニングは「モデルの振る舞いやトーンを調整する」手法だ。
社内マニュアルの内容を正確に答えさせたいなら RAG、回答の形式や文体を統一したいならファインチューニング、が出発点として妥当だろう。両者を併用するプロジェクトも多い。


ヒューマン・イン・ザ・ループ(HITL)とは?AIで業務自動化を定着させる「人間参加型」設計の基礎
ナレッジグラフとベクトル検索を組み合わせ、エンティティ間の関係性を活用して検索精度を向上させる次世代RAGアーキテクチャ。