RAG(検索拡張生成)とは?仕組みとDifyでの使い方を画像で解説

  • 2026.08.28
       
【RAG】Difyで社内データに答えるAIを作る

生成AIを業務で活用する機会が増える中、AIに最新情報や社内独自の情報を参照させる技術として「RAG(ラグ)」が注目されています。
本記事では、RAGの仕組みや活用事例、Difyを使った構築方法を中心に、メリット・デメリットやファインチューニングとの違いまで、初心者向けに分かりやすく解説します。

▼こちらもチェック▼

RAGとは?

RAGとは、「Retrieval-Augmented Generation」の略で、日本語では検索拡張生成とも呼ばれます。生成AIが回答を作る際に、外部データから必要な情報を検索し、その内容を参考にしながら回答を生成する仕組みのことです。

AWS公式サイトのRAG(検索拡張生成)の解説ページ
AWS公式サイトでも、RAG(検索拡張生成)について詳しく解説されています。

一般的な生成AIは学習時に取り込んだ情報をもとに回答するため、学習後に発生した最新情報や社内資料などの独自データには正確に答えられません。LLM(大規模言語モデル)が「文章を理解し回答を作る技術」であるのに対し、RAGは「回答に必要な情報を外部から補う仕組み」で、両者を組み合わせることでAI単体では持たない知識にも対応できるようになります。

RAGが必要とされる理由

生成AIは、学習していない情報には正しく回答できず、もっともらしい嘘を回答してしまう「ハルシネーション」を起こすこともあります。RAGは、質問に関連する情報を外部データから検索して回答の根拠にするため、AIが何の情報も持たない状態で回答してしまうケースを減らせる点が大きな特徴です(完全に無くせるわけではありません)。

RAGが回答を生成するまでの仕組み

RAGが回答を作るまでの流れは、大きく次の3ステップに分けられます。

外部データをチャンク分割・ベクトル化・検索しLLMが回答を生成するRAGの処理フロー図
RAGでは、外部データを分割・ベクトル化して関連情報を検索し、質問と検索結果をLLMに渡して回答を生成します。

外部データを分割して準備する
PDFやテキストファイルなどの外部データを、検索しやすいように一定の単位(「チャンク」と呼ばれます)へ分割して準備します。分割の粒度は検索精度に直結するため、細かすぎず、粗すぎない調整が必要です。

文章をベクトル化して関連情報を検索する
分割した文章は、「ベクトル(embeddings)」と呼ばれる数値データに変換され、意味の近さをもとに検索されます。例えば「休暇を申請する方法」と「有給休暇の取り方」のように表現が異なっていても、意味が近い文章を検索できる点が、従来のキーワード検索との違いです。

検索結果をもとにLLMが回答を生成する
検索でヒットした情報とユーザーの質問をあわせてLLMに渡すことで、検索結果をそのまま表示するのではなく、質問に合わせて分かりやすく整理された回答を生成できます。これが、RAGの基本的な仕組みです。

RAGでできること・活用事例

RAGは、主に以下のような用途で活用されています。

社内文書・ナレッジの検索
業務マニュアルや社内規則などを検索対象として登録しておけば、正確なファイル名や保存場所を知らなくても、質問の意味に近い情報を検索できます。

FAQ・問い合わせ対応の自動化
過去の問い合わせ内容やFAQを検索対象にすることで、AIが質問に関連する情報を探して回答できます。同じような質問への対応を自動化し、業務負担を軽減できる点が魅力です。

チャットボットへの組み込み
あらかじめ質問と回答のパターンを用意しなくても、蓄積したデータをもとに柔軟に応答できるチャットボットを構築できます。回答内容の変更も、検索元のデータを修正するだけで反映できるのも利点です。

RAGを構築・導入する方法

構築の基本的な流れ

RAGを構築する際は、①参照させたい情報を決める→②文書を分割してベクトル化する→③検索結果をもとに回答を生成する仕組みを組み込む、という流れで進めます。初めて構築する場合は、RAGに対応したフレームワークやサービスを利用すると、比較的簡単に導入できます

Difyを使ってRAGを試す

今回は、ノーコードでAIアプリを構築できるDifyを使用して、実際にチャットボットの回答にRAGが利用されるまでの流れを解説します。
Difyでは、Knowledge機能にPDFやテキストファイルを登録するだけで、RAGの検索対象データベースとして利用できます。

①Knowledgeにテストデータを登録する
まず、DifyのKnowledge機能を利用して、RAGで参照する外部データを登録します。今回は例として、架空の製品「SmartBottle Mini」に関する簡単な製品情報を用意しました。

DifyのKnowledgeにテストデータとして製品情報を登録する画面
Knowledge機能を使って、RAGで参照する外部データを登録します。

②Retrieval Testingで検索結果を確認する
登録したデータから必要な情報を検索できるか、Difyの検索テスト機能で確認します。質問に関連する情報が検索できていればOKです。

DifyのRetrieval Testingで質問に関連する検索結果を確認する画面
Retrieval Testingを実行すると、質問に関連する情報が検索できているかを確認できます。

③Knowledgeを利用したチャットボットで回答を生成する
最後に、登録したKnowledgeを参照するチャットボットを作成します。ユーザーから質問を受けると、関連情報を登録データから検索し、その内容を参考にLLMが回答を生成します。

Knowledgeを参照したチャットボットが質問に回答している画面
チャットボットに質問すると、登録したKnowledgeを参照した回答が生成されます。
Dify公式サイトで詳しい機能を見る

RAGのメリット・デメリット

RAGには、以下のようなメリット・デメリットがあります。導入前に押さえておきましょう。

項目 メリット デメリット
情報の鮮度 モデルを再学習せず、データ更新だけで最新情報に対応できる データが古い・誤っていると回答精度も下がる
回答の根拠 参照した情報に基づいた回答を生成しやすい ハルシネーションを完全には防げない
導入・運用 AIモデル自体を作り直す必要がない 検索基盤の構築・運用に知識とコストが必要

回答の正確性は「AIの性能」だけでなく「検索対象データの質」にも左右されるため、RAGを導入する際は、参照させる情報を整理し、最新かつ信頼できる状態に保つことが重要です。

RAGとファインチューニングの違い

生成AIに独自の情報を活用させる方法には、RAGのほかに「ファインチューニング」と呼ばれる方法もあります。既存のAIモデルに追加データを学習させ、振る舞いを調整する方法で、毎回外部データを検索するRAGとはアプローチが異なります。

項目 RAG ファインチューニング
アプローチ 外部データを検索して回答に追加 モデル自体に追加データを学習させる
情報の更新 データを更新するだけで反映できる 反映のたびに再学習が必要
得意なこと 頻繁に更新される情報の活用 出力形式・回答スタイルの調整
導入のしやすさ 比較的簡単に始めやすい 学習データの準備や計算リソースが必要

RAGとファインチューニングは、どちらか一方しか選べないものではなく、目的によって組み合わせて使うことも可能です。まずRAGで社内情報を参照できる環境を作り、必要に応じてファインチューニングを検討するという進め方もあります。

まとめ

生成AIにすべての情報を覚えさせるのではなく、必要な情報を必要なタイミングで参照させるという考え方が、RAGの本質です。
今回紹介したDifyのように、RAGに対応したサービスを使えば、専門知識がなくても比較的簡単に導入を試せます。まずは身近なデータを使って、実際にRAGを構築してみましょう。

     

AI・機械学習カテゴリの最新記事