汎用の AI モデルは世界について多くを知っていますが、あなたのビジネスについては何も知りません。あなたの製品マニュアルも、社内ポリシーも、前四半期のレポートも見たことがないのです。検索拡張生成(retrieval-augmented generation、RAG)は、その隔たりを埋める技術です。モデルを再学習させることなく、あなたの文書を使って正確に、しかも出典付きで質問に答えさせられます。本ガイドでは RAG とは何か、どう動くのか、いつ使うべきかを解説します。

要点まとめ

  • RAG は自社コンテンツから関連する断片を取り出して prompt に含め、モデルが学習データだけでなくあなたの知識から回答するようにする
  • 仕組みは、文書を embeddings に変換して vector database に保存し、各質問に最も近い一致を取り出すというもの
  • RAG は hallucination を減らして出典を示せるようにし、fine-tuning より簡単かつ安価に最新状態を保てる
  • 「自社の情報を知っている AI」という用途の大半に適したパターンで、サポートボット、社内ナレッジアシスタント、文書 Q&A に向く

RAG が解決する課題

言語モデルには業務利用における 2 つの限界があります。学習データに含まれていたことしか知らない(つまり非公開の情報も最新の情報もない)ことと、自信を持って事実を作り上げてしまうことです。すべての文書を毎回の prompt に流し込むのは現実的ではありません。量が多すぎ、遅く高コストになるからです。RAG は各質問に対して関連する部分だけを取り出し、それに回答を根拠づけることで、この両方を解決します。

検索拡張生成の仕組み

2 つのフェーズがあります。

インデックス作成(一度行い、コンテンツの変化に応じて更新):

  1. 文書を扱いやすい chunk に分割する。
  2. 各 chunk を、その意味を捉えた数値ベクトルである embedding に変換する。
  3. それらのベクトルを vector database に保存する。

検索と生成(クエリ時):

  1. ユーザーの質問を embedding に変換する。
  2. vector database から、質問に意味が最も近い chunk を検索する。
  3. 取り出した chunk をコンテキストとして prompt に挿入する。
  4. モデルはそのコンテキストに根拠づけられた回答を生成し、理想的には使用した出典を示す。

検索が正確なキーワードではなく意味に基づくため、RAG は言い回しが違っても関連コンテンツを見つけられます。

ほとんどの場合に RAG が fine-tuning に勝る理由

fine-tuning はあなたのデータでモデルの重みを調整します。それにも用途はありますが、知識に基づく回答では通常 RAG のほうが優れた選択です。

  • 鮮度: 文書を更新して再インデックスすれば、回答は即座に更新される。fine-tuning は変更を反映するために再学習が必要。
  • コスト: インデックス作成は、繰り返す fine-tuning よりはるかに安価。
  • 制御と信頼: RAG は出典を提示できるため、回答は監査可能で信頼しやすい。fine-tuning で得た知識は不透明。
  • hallucination の低減: モデルを取り出したテキストに根拠づけることで、事実に近づける。

fine-tuning は一貫したスタイルフォーマット、または限定された専門的な振る舞いを教えるのには向きますが、知識の集まりを最新に保つのには向きません。

優れた RAG システムを作るもの

RAG は概念としては単純で、下手にやるのも簡単です。品質は次の点に左右されます。

  • chunking 戦略: chunk が大きすぎると関連性が薄まり、小さすぎるとコンテキストを失う。ここを正しくやることが重要。
  • 検索品質: 回答は取り出した chunk の良し悪しで決まる。良い embeddings、妥当なランキング、時には re-ranking が違いを生む。
  • prompt 設計: 取り出したコンテキストの使い方(そして情報がないときは「わかりません」と言うこと)をどうモデルに指示するかが信頼性を左右する。
  • インデックスを最新に保つ: 変更されたコンテンツを再インデックスするパイプラインが、長期にわたり回答を正確に保つ。

よくある用途

  • あなたのドキュメントから回答するカスタマーサポートボット。
  • ポリシー、wiki、レポートを対象とする社内ナレッジアシスタント。
  • 契約書、マニュアル、リサーチを対象とする文書 Q&A。
  • 非公開の情報や頻繁に変わる情報から回答しなければならないあらゆるアシスタント。

重要なポイント

  • RAG はクエリ時に関連する断片を取り出し、AI の回答をあなたの文書に根拠づける。
  • embeddings と vector database によって動く。一度インデックスし、質問ごとに検索して生成する。
  • 知識を最新に保つ点で、RAG は鮮度、コスト、制御、信頼で fine-tuning に勝る。
  • 品質は chunking、検索、prompt 設計、インデックスを最新に保つことから生まれる。

知識を理解する AI をビジネスに追加する

本番運用の RAG システムには、適切な chunking、検索、prompting、そして最新状態を保つインデックスパイプラインが必要です。AI 統合サービス は、練り込んだ prompt とコスト管理により、RAG で動くナレッジベースやその他の知的機能を既存のアプリケーションに組み込みます。OpenAI API 統合サービス は特に RAG ベースのアシスタントを対象とします。会話型インターフェースから始めるなら、OpenAI API で AI チャットボットを構築する をご覧ください。AI 導入をより広い視点で知るには、英国の中小企業向け AI 統合ガイド が良い出発点です。

よくある質問(FAQ)

検索拡張生成(RAG)とは何ですか? RAG は、AI モデルがあなたの文書を使って回答できるようにする技術です。あなたのコンテンツから最も関連する断片を取り出して prompt に含めるため、モデルは学習データだけでなくあなたの知識に基づいて応答します。

RAG は fine-tuning とどう違いますか? RAG はクエリ時に関連コンテンツを取り出してそれに回答を根拠づけるため、更新は即時で出典も示せます。fine-tuning はモデルの重みを変え、新しい情報を反映するには再学習が必要です。RAG は最新の知識に、fine-tuning は一貫したスタイルや限定的な振る舞いに向きます。

RAG は AI の hallucination を止めますか? 取り出した事実に回答を根拠づけることで大幅に減らし、出典を示して回答を監査可能にします。hallucination を完全になくすわけではないため、良い prompting(わからないときはそう言うようモデルに指示することを含む)は依然として重要です。

vector database とは何で、なぜ RAG に必要ですか? vector database は embeddings、すなわちあなたの文書 chunk の数値表現を保存し、質問に意味が最も近いものを見つけます。RAG はこれを使い、正確なキーワード一致ではなく意味に基づいて関連コンテキストを素早く取り出します。

RAG システムを構築するには何が必要ですか? 元となる文書、chunking と embedding のパイプライン、vector database、そして関連する chunk を取り出してそれでモデルに prompt を与えるアプリケーションです。難しいのは chunking 戦略、検索品質、そしてインデックスを最新に保つことです。