読み込み中...
読み込み中...
読み込み中...
読み込み中...
読み込み中...
RAG(Retrieval-Augmented Generation / 検索拡張生成) とは、大規模言語モデル(LLM)が回答を生成する際に、外部の知識ベースから関連情報を検索して取得し、その情報をもとに回答を生成する技術です。2020年にMeta社(旧Facebook)の研究チームによって提案されました。
LLMには学習データの時点までの知識しか持たないという根本的な制約があります。たとえば、2023年にトレーニングされたモデルは2024年以降の出来事を知りません。この制約は 知識のカットオフ(Knowledge Cutoff) と呼ばれます。RAGはこの問題を解決する有力なアプローチです。
また、LLMは学習していない情報について質問されると、もっともらしいが事実と異なる回答を生成してしまうことがあります。これが ハルシネーション(Hallucination / 幻覚) の問題です。RAGは外部の信頼できる情報源から根拠を取得して回答に利用するため、ハルシネーションを大幅に軽減できます。
RAGを導入することで得られる主なメリットは以下のとおりです。
RAGは「LLMに検索エンジンの目を与える技術」と考えるとわかりやすいでしょう。LLM単体が「記憶だけで答える学生」だとすれば、RAGを導入したLLMは「教科書や参考書を開きながら答える学生」に相当します。
LLMの性能を特定用途に最適化する方法として、ファインチューニング と RAG の2つのアプローチがあります。
| 比較項目 | ファインチューニング | RAG |
|---|---|---|
| 仕組み | モデルのパラメータを追加学習で更新 | 外部データを検索してプロンプトに付加 |
| データの鮮度 | 再学習が必要(時間とコストがかかる) | データベース更新で即座に反映 |
| コスト | 高い(GPU計算資源が必要) | 比較的低い(検索インフラのみ) |
| 根拠の提示 | 困難(モデル内部に知識が統合される) | 容易(出典を明示できる) |
| 専門知識の深さ | モデルに深く組み込まれる | 検索精度に依存する |
| 適用場面 | 特定ドメインの文体・スタイル習得 | 最新情報・社内文書の活用 |
ファインチューニングは「モデルの頭脳そのものを専門家に変える」アプローチであり、RAGは「汎用的な頭脳に専門書を渡す」アプローチです。実務では両者を組み合わせることも多く、ファインチューニングでベースとなる能力を高めたうえで、RAGで最新情報を補完するハイブリッドな運用も行われています。
RAGが注目される背景には、企業でのLLM活用における3つの課題があります。
第一に、情報の正確性の要求です。 ビジネスでの意思決定や顧客対応において、ハルシネーションは許容されません。金融・医療・法律などの分野では、誤った情報が重大な損害を引き起こす可能性があります。RAGは回答の根拠を外部データに求めるため、正確性を担保しやすくなります。
第二に、社内データの活用ニーズです。 企業には社内規定、マニュアル、過去の報告書、顧客対応履歴など膨大な独自データが蓄積されています。これらのデータをLLMに活用させるには、外部のLLMにデータを送信するのではなく、自社の管理下でRAGシステムを構築するのが安全かつ効率的です。
第三に、コスト面の現実性です。 大規模なLLMのファインチューニングには高額なGPU計算資源が必要ですが、RAGであれば既存のLLMをそのまま活用しつつ、検索システムを追加するだけで専門性を持たせることができます。
ポイント
RAG(Retrieval-Augmented Generation)はLLMの回答生成時に外部データベースから関連情報を検索・取得して活用する技術。ハルシネーションの軽減と知識のカットオフ問題の解決が主な目的。ファインチューニングがモデル自体を更新するのに対し、RAGは外部データを検索してプロンプトに注入する。試験ではRAGとファインチューニングの違い、RAGのメリット(最新情報活用・根拠提示・コスト効率)が問われやすい。
用語
RAGは Retrieval(検索)→ Augmentation(拡張)→ Generation(生成) という3つのステップで動作します。このプロセスを順に理解しましょう。
ステップ1: Retrieval(検索) — ユーザーの質問(クエリ)をベクトル化し、ベクトルデータベース内の文書と照合して、関連性の高い情報を検索・取得します。
ステップ2: Augmentation(拡張) — 検索で取得した関連情報をユーザーの元の質問と組み合わせて、拡張されたプロンプトを構築します。「以下の参考情報を基に質問に回答してください」のような指示を付加します。
ステップ3: Generation(生成) — 拡張されたプロンプトをLLMに入力し、検索結果を踏まえた回答を生成します。LLMは自身の学習知識と外部から取得した情報の両方を活用して、正確で根拠のある応答を生成します。
この3ステップにより、LLMは「自分の記憶」だけでなく「外部の参考資料」を活用して回答を生成できるようになります。
RAGの検索ステップでは 埋め込み(Embedding) という技術が中核を担います。埋め込みとは、テキストを数百〜数千次元の数値ベクトル(数値の配列)に変換する処理です。
たとえば、「犬は忠実な動物です」というテキストは [0.23, -0.45, 0.12, ...] のようなベクトルに変換されます。意味的に似たテキスト同士は、ベクトル空間上で近い位置に配置されます。「犬は忠実なペットです」のベクトルは「犬は忠実な動物です」に近く、「今日の天気は晴れです」のベクトルとは遠くなります。
コサイン類似度(Cosine Similarity) は、2つのベクトルがどれだけ似ているかを測る指標です。値は -1 から 1 の範囲で、1に近いほど類似しています。RAGでは、ユーザーの質問のベクトルとデータベース内の文書のベクトルのコサイン類似度を計算し、類似度が高い文書を検索結果として返します。
埋め込みモデルには OpenAI の text-embedding-ada-002 や、オープンソースの sentence-transformers などが広く利用されています。
長い文書をRAGで扱う際、文書全体をそのまま1つのベクトルに変換すると情報が圧縮されすぎて検索精度が下がります。そこで文書を適切なサイズの断片に分割する チャンク分割(Chunking) が必要になります。
チャンク分割の主な手法は以下のとおりです。
| 手法 | 説明 | メリット/デメリット |
|---|---|---|
| 固定サイズ分割 | 一定の文字数やトークン数で機械的に分割 | 実装が簡単だが文脈が途切れる可能性 |
| セマンティック分割 | 段落や意味のまとまりで分割 | 文脈を保持しやすいが実装が複雑 |
| オーバーラップ分割 | 隣接チャンクの一部を重複させる | 境界での情報欠落を防ぐ |
チャンクサイズの設定は検索精度に大きく影響します。小さすぎると文脈情報が失われ、大きすぎると検索の精度が落ちます。一般的には 256〜1024 トークン程度が推奨されますが、データの性質や用途に応じた最適化が求められます。
RAGの検索を高速に行うために、ベクトル化された文書は ベクトルデータベース(Vector Database) に格納されます。ベクトルデータベースは、数値ベクトル同士の類似度検索に特化したデータベースです。
代表的なベクトルデータベースは以下のとおりです。
| サービス名 | 特徴 |
|---|---|
| Pinecone | フルマネージド型。スケーラビリティが高い。SaaS提供 |
| Weaviate | オープンソース。GraphQL対応。多機能 |
| Chroma | 軽量でシンプル。ローカル開発に適する |
| Qdrant | Rust製で高速。オープンソース |
| pgvector | PostgreSQLの拡張。既存RDBに統合可能 |
ベクトルデータベースの構築フローは次のとおりです。
ユーザーからの質問が来ると、同じ埋め込みモデルで質問をベクトル化し、インデックスを使って最も関連性の高いチャンクを素早く検索します。検索結果はLLMへのプロンプトに挿入され、回答生成に活用されます。
ポイント
RAGはRetrieval(検索)→ Augmentation(拡張)→ Generation(生成)の3ステップで動作する。埋め込み(Embedding)はテキストを数値ベクトルに変換する技術で、コサイン類似度で類似性を測定する。チャンク分割は文書を適切なサイズに分割して検索精度を高める処理。ベクトルデータベース(Pinecone、Weaviate、Chromaなど)は類似度検索に特化したデータベース。
用語
RAGは多くの業界・分野で実用化が進んでいます。ここでは代表的なユースケースを具体的に紹介します。
最も一般的なRAGのユースケースが 企業内ナレッジベース の構築です。社内規定、業務マニュアル、過去の報告書、議事録、FAQなどの社内文書をベクトルデータベースに格納し、従業員が自然言語で質問すると関連情報を検索して回答を生成します。
具体例: ある製造業の企業では、数万ページに及ぶ品質管理マニュアルをRAGシステムに取り込みました。現場の作業員が「製品Xの検査基準は?」と質問すると、該当するマニュアルの記述を引用しながら回答を生成します。これにより、マニュアルを手動で検索する時間が大幅に短縮されました。
従来のキーワード検索との違いは、RAGが 意味的な検索(セマンティック検索) を行う点です。キーワードが完全一致しなくても、意味的に関連する文書を見つけることができます。
RAGを活用したカスタマーサポートチャットボットは、従来のルールベースのチャットボットと比較して大幅に柔軟な対応が可能です。
| 比較項目 | ルールベース型 | RAG型 |
|---|---|---|
| 回答の生成方法 | 事前に定義したQ&Aから選択 | FAQやマニュアルを検索して動的に生成 |
| 未登録の質問 | 対応不可(「わかりません」) | 関連情報から推論して回答を試みる |
| メンテナンス | Q&Aの追加・修正が必要 | 元文書を更新すれば自動反映 |
| 自然な対話 | パターンマッチによる定型応答 | 文脈を考慮した自然な応答 |
具体例: あるECサイトでは、商品カタログ、返品ポリシー、配送規定をナレッジベースとしてRAGチャットボットを構築しました。「注文した商品がまだ届かないのですが」という質問に対して、配送規定の情報を参照しながら「ご注文から○営業日以内にお届けしています。配送状況はこちらのURLでご確認いただけます」といった具体的な回答を生成できます。
RAGチャットボットは、回答の根拠となった文書を出典として提示できるため、顧客の信頼を得やすいという利点もあります。
法律分野 では、膨大な判例データベースや法令をナレッジベースとしたRAGシステムが活用されています。弁護士が「類似の判例はあるか」と質問すると、関連する過去の判例を検索し、要点を要約して提示します。法律文書は正確性が特に求められるため、RAGによる出典の明示は非常に重要です。
医療分野 では、臨床ガイドライン、論文データベース、薬剤情報をナレッジベースとして活用するケースが増えています。医師が診療中に「この症状に対する最新の治療ガイドラインは?」と質問すると、関連するガイドラインを検索して回答を生成します。ただし、医療分野では誤情報が患者の生命に関わるため、AIの出力は必ず専門家が確認する ヒューマン・イン・ザ・ループ(Human-in-the-Loop) の運用が不可欠です。
教育分野 では、教科書や学習教材をナレッジベースとした パーソナライズド学習(個人に最適化された学習) の実現にRAGが活用されています。学習者の質問に対して、教材の該当箇所を引用しながら解説を生成し、理解度に応じた補足説明を加えることができます。
RAGを効果的に運用するには、いくつかの重要な注意点があります。
データの前処理が品質を左右する: ナレッジベースに投入するデータの品質がRAGの性能を大きく左右します。誤った情報や古い情報が含まれていると、RAGの回答精度も低下します。PDF、Word、HTMLなど多様なフォーマットからテキストを正確に抽出し、不要な情報を除去する前処理が重要です。
チャンクサイズの最適化: 前述のとおり、チャンクサイズの設定は検索精度に直結します。小さすぎるチャンクは文脈を失い、大きすぎるチャンクは検索精度を低下させます。データの特性に合わせた試行錯誤が必要です。
セキュリティとアクセス制御: 社内文書をナレッジベースにする場合、機密情報へのアクセス制御が不可欠です。部門ごとに閲覧権限が異なる文書は、RAGの検索結果にもその権限を反映させる必要があります。
評価とモニタリング: RAGシステムの回答品質を継続的に評価する仕組みを構築することが重要です。検索精度(Retrieval Accuracy)と生成品質(Generation Quality)の両方を指標として監視し、改善を続ける必要があります。
ポイント
RAGの代表的なユースケースは企業内ナレッジベース、カスタマーサポートチャットボット、法律・医療・教育分野での専門文書検索。従来のキーワード検索と異なりセマンティック検索(意味的検索)を行う。導入時にはデータの前処理品質、チャンクサイズの最適化、セキュリティ・アクセス制御、継続的な評価・モニタリングが重要。医療分野ではヒューマン・イン・ザ・ループの運用が必須。
用語
AIエージェント(AI Agent) とは、与えられた目標に対して自律的に判断し、複数のステップにわたる行動を計画・実行できるAIシステムです。従来のチャットAIが「1つの質問に1つの回答を返す」受動的な仕組みだったのに対し、AIエージェントは「目標達成のために自ら考え、複数の行動を組み合わせて実行する」能動的な仕組みです。
たとえば、「来週の東京出張を手配して」という指示に対して、従来のチャットAIは手配方法のアドバイスを返すだけですが、AIエージェントは以下のようなステップを自律的に実行します。
このように、AIエージェントは 複雑なタスクを分解し、複数のツールやサービスを連携させて自律的に遂行する 点が最大の特徴です。
AIエージェントは一般に4つの主要な構成要素を持ちます。
| 構成要素 | 役割 | 具体例 |
|---|---|---|
| 知覚(Perception) | 外部環境から情報を取得する | ユーザーの指示を理解する、APIからデータを取得する |
| 推論(Reasoning) | 情報を分析し、次の行動を計画する | タスクを分解する、優先順位を判断する |
| 行動(Action) | 計画に基づいて実際のアクションを実行する | ツールを呼び出す、APIを操作する、ファイルを作成する |
| 記憶(Memory) | 過去の行動結果や文脈を保持する | 短期記憶(会話履歴)、長期記憶(学習結果) |
これらの構成要素が 知覚 → 推論 → 行動 → 知覚(結果の確認) というループを繰り返すことで、エージェントは目標に向けて段階的にタスクを遂行します。途中で予期しない結果が得られた場合は、推論ステップで計画を修正し、別のアプローチを試みることもできます。
このループは ReAct(Reasoning + Acting) パターンとも呼ばれ、LLMに「思考の過程」と「行動」を交互に出力させることで、より高度な問題解決を実現します。
ツール使用(Tool Use / Function Calling) は、AIエージェントの能力を拡張する中核技術です。LLM単体ではWebの検索、計算の実行、外部サービスの操作はできませんが、ツール使用機能によりこれらの操作が可能になります。
ツール使用の仕組みは以下のとおりです。
AIエージェントの開発を支援する主要なフレームワークも登場しています。
| フレームワーク | 概要 |
|---|---|
| LangChain | LLMとツール・データの連携を容易にするオープンソースライブラリ。RAGやエージェント構築に広く利用 |
| AutoGPT | GPT-4を使って自律的にタスクを遂行する実験的プロジェクト。目標を与えるだけで自動実行 |
| BabyAGI | タスクの自動生成・優先順位付け・実行を行うシンプルなAIエージェント |
| CrewAI | 複数のAIエージェントがチームとして協力してタスクを遂行するフレームワーク |
マルチエージェントシステム(Multi-Agent System) とは、複数のAIエージェントが互いに連携・協力してタスクを遂行する仕組みです。各エージェントが異なる専門性(リサーチ、分析、文書作成など)を持ち、人間のチームのように役割分担して複雑なタスクに取り組みます。
たとえば、市場調査レポートの作成タスクでは以下のように役割を分担できます。
AIエージェントのビジネス応用は急速に広がっています。カスタマーサポートの自動化、データ分析の効率化、ソフトウェア開発の支援、マーケティングコンテンツの自動生成など、多岐にわたります。
AIエージェントは今後さらに 自律性 を高め、人間の介入を最小限にしたタスク遂行が可能になると期待されています。ただし、自律性の向上に伴い、AIの判断の透明性(説明可能性) や 安全性の担保 がますます重要になります。完全に自律的なAIが誤った判断をした場合の責任の所在など、技術的課題だけでなく社会的・倫理的な課題も含めた議論が必要です。
MCP(Model Context Protocol) は、Anthropic社が2024年に提唱したオープンプロトコルです。AIエージェントが外部のツールやデータソースに 統一的な方法でアクセスする ための標準規格であり、AIエージェントの相互運用性を高めることを目的としています。
MCPの意義は、従来はAIエージェントごとに個別のAPI連携を実装する必要があったのに対し、MCPに準拠することで 一度の実装で多数のツール・データソースに接続 できるようになる点にあります。USBが周辺機器の接続を標準化したように、MCPはAIと外部サービスの接続を標準化する試みです。
2025年に入り、エージェント型AIサービスが急速に登場しています。
| サービス名 | 開発元 | 特徴 |
|---|---|---|
| GenSpark | GenSpark | AI検索エンジン。複数のAIエージェントが協調して調査・回答を生成 |
| Manus | Monica AI | 汎用AIエージェント。Web操作やファイル作成などを自律的に実行 |
| Skywork AI | 崑崙万維 | 自律型タスク実行エージェント。複雑なワークフローを自動処理 |
これらのサービスの登場は、AIが「対話の相手」から「タスクを実行するパートナー」へと進化していることを示しています。MCPのようなプロトコルの標準化が進むことで、AIエージェントのエコシステムがさらに拡大すると期待されています。
ポイント
AIエージェントは目標に対して自律的に判断・行動するAIシステムで、知覚・推論・行動・記憶の4要素で構成される。ツール使用(Tool Use)によりLLMが外部サービスを操作可能になる。MCP(Model Context Protocol)はAIエージェントが外部ツール・データソースに統一的にアクセスするためのオープンプロトコル。LangChain・AutoGPT・BabyAGIなどのフレームワークがエージェント開発を支援する。マルチエージェントシステムは複数のエージェントが役割分担して協力する仕組み。
用語