8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RAGの基礎を理解する Part1

Last updated at Posted at 2025-07-20

はじめに

はじめまして、Orbitics株式会社データサイエンス部の上野です。
LLMのアルゴリズムを理解する」の記事で機械学習の観点でLLMについて解説しました。今回はLLMの応用技術として知られるRAG (Retrieval-Augmented Generation) について基礎的な説明をしたいと思います。

RAG はLLM の能力を飛躍的に向上させる技術として、近年非常に注目を集めています。従来のLLMが学習データに依存し、最新情報や専門性の高い情報に弱いという課題を抱えていたのに対し、RAGは外部の知識ソースを参照することで、より正確で信頼性の高い情報提供を可能にします。

1. RAGとは何か?

RAGは「AIに資料やデータを渡して、それを参考に答えさせる技術」です。RAGを使わない場合と使う場合の違いをイメージを図1に示しました。

RAGを使わない場合

一般的なLLMは、学習済みの知識に基づいて質問に回答します。しかし、企業固有のルールなど、LLMの一般知識にはない情報には対応できません。

RAGを使う場合

RAGでは、LLMが外部の資料やデータを参照して回答を生成します。これにより、社内マニュアルなどの企業固有のルールに基づいた回答も可能になります。社内の資料やデータに基づいた信頼性の高い情報を得られることが期待できます。
image.png
図1 RAGのイメージ

2. RAGのメリット・活用例

RAGには以下のメリットがあります。

  • 回答の精度向上: 最新の情報や特定のドメインの知識をLLMに提供することで、より正確で具体的な回答が得られます。
  • ハルシネーションの抑制: LLMが事実に基づかない情報を生成するリスク(ハルシネーション)を低減できます。回答の根拠が明確になるため、誤った情報を検出しやすくなります。
  • 追加学習の不要: LLM自体を再学習させることなく、新しい情報や専門知識を組み込めます。これにより、モデルの更新コストを抑えられます。
  • 情報の鮮度維持: 外部の知識ベースを更新するだけで、LLMは常に最新の情報に基づいて回答できます。
  • 透明性の向上: 回答の根拠となった情報源をユーザーに提示できるため、生成された回答の信頼性を高めることができます。
  • 多様なデータソースへの対応: 社内文書、Webサイト、データベースなど、様々な形式の情報を活用できます。

RAGの活用例は以下の通りです。

  • 社内FAQシステム: 社内規定や業務マニュアルなどの情報を基に、従業員の質問に的確に回答するチャットボット。
  • 顧客サポート: 製品マニュアルやFAQを検索し、顧客からの問い合わせに対応するシステム。
  • 金融情報サービス: 最新の市場データやニュース記事を基に、投資に関する質問に答えるAIアシスタント。
  • 医療情報検索: 最新の研究論文やガイドラインを参照し、医療に関する質問に回答するシステム。

3. RAGの技術概要と処理フロー

RAGは、主に「検索(Retrieval)」「拡張(Augmentation)」「生成(Generation)」の3要素で構成されます。入力部や出力部における課題の多くは、RAGの技術検討の中で解決できる可能性が高いです。

RAGの処理フロー

  1. ユーザー質問(クエリ): ユーザーが知りたいことを質問文で入力します。

  2. 拡張①(任意): 質問文の最適化を行います。

    • クエリリライト: 質問文を受け取り、関連文書やデータを検索するために質問文を最適化します。
    • マルチクエリ生成: 複数パターンで検索するために複数のクエリを生成します。
  3. 検索(Retrieval): ユーザーの質問やプロンプトに関連する情報を、外部の知識ソースから取得します(図2)。

    • キーワード検索: 同一のキーワードを保有する文書を上位N件抽出します。
      • メリット: 実装が比較的容易です。固有名詞や専門用語などの特定キーワードを含む文書を正確に検索できます。
      • デメリット: キーワードが一致しない場合、意味的に関連性の高い文書を逃す可能性があります(同義語や類義語など)。質問の意図や文脈を理解するのが難しいため、ノイズの多い検索結果になることがあります。
    • ベクトル検索: ユーザー質問と関連文書・データを数値ベクトル化(Embedding)し、類似度(コサイン類似度・ユークリッド距離など)が高いチャンクを上位N件抽出します。
      • メリット: 質問の意図や文脈を捉え、意味的に関連性の高い文書を検索できます。同義語や類義語、言い換え表現にも対応できます。テキストだけでなく、画像や音声などのマルチモーダルな情報の検索にも応用できます。
      • デメリット: キーワード検索ほど固有名詞や専門用語の検索精度が高くない場合があります。埋め込みモデルの性能に検索結果が大きく左右されます。計算コストがキーワード検索よりも高くなる傾向があります。
    • ハイブリッド検索: ベクトル検索の弱点を補う形でキーワード検索と組み合わせた検索方法が近年注目されています。
      image.png
      図2 「検索」の技術
  4. 拡張②: 検索で取得した関連情報を、LLMに入力するプロンプトに追加します(図3)。

    • 再ランキング: 「検索」で抽出した上位N件のチャンクに対して、ユーザー質問に対する関連度スコアを付けて、高精度で並び替えを行います。これにより、「本当に答えやすい」情報だけを選び、ハルシネーションを防ぎ、プロンプト長の無駄な消費を抑えることができます。
    • チャンクマージ: 再ランキングされたチャンクを結合し、統合されたテキストに変換します。
      image.png
      図3 「拡張」の技術
  5. 生成(Generation): 拡張されたプロンプトをLLMに入力し、回答を生成します(図4)。

    • プロンプトに検索結果を埋め込み、LLMが回答を生成します。
      image.png
      図4 「生成」の技術
  6. 拡張③(任意): 生成結果に対して、元情報との整合性確認や出典付与などを行います。

    • ファクト検証: 生成内容と元情報の整合性確認を行います。
    • 出典付与: 回答に参照リンクや文献を明示します。
    • 回答スタイル調整: 文体・フォーマット・ユーザー指向の最適化を行います。
  7. 最終回答: ユーザーに提示される最終的な回答です。

※拡張は必ずしも1か所だけでなく、検索の前後・生成後に入る可能性があります。

4. RAGとその他技術の比較

通常のファイルアップロードとの違い

RAGは、大量の文書や専門知識を基にした質問応答システムを構築する際に、より効率的で精度の高いソリューションを提供できます。

項目 通常のファイルアップロード (Geminiなど) RAG
情報の提供方法 プロンプトへの直接入力 外部知識ベースからの検索・参照
扱える情報 比較的少量・トークン数制限あり (例:Gemini 2.0 Flashでは最大10ファイル、各ファイルサイズ最大100MBまで) 大量・長文のデータも効率的に処理可能
情報の再利用 基本的に一回限り 複数回・継続的に利用可能
質問応答の効率性 ファイル全体を考慮 質問に関連する情報のみを効率的に検索
回答の精度と具体性 ファイルの質に大きく依存 関連情報に基づくため、向上しやすい

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

主に社内資料に基づく業務活用を想定している場合、ファインチューニングではなくRAGが採用されます。

項目 ファインチューニング RAG
知識の取り込み 学習データセット (再学習が必要) 外部知識ベース (更新が容易)
LLMの変更 内部パラメータを調整する 基本的に変更しない
得意なこと 特定タスクへの特化、推論能力向上、出力フォーマット制御 最新情報、専門知識の活用、透明性、幅広いタスク、迅速な導入
苦手なこと データと計算リソース、学習時間、知識更新の難しさ、過学習のリスク LLMの根本的な能力向上、複雑な推論、出力制御の難しさ
主な用途 特定ドメインの専門的なタスク、感情分析、テキスト生成スタイルの調整など 質問応答、情報検索、文書理解など
基本的な仕組み あらかじめ学習済みのLLMを、特定の目的やデータに合わせて、追加で学習させ、LLMはその特定の目的により適した応答ができるように、内部の動作を調整する LLMへの入力時に、外部の知識ベースから関連情報を検索・取得し、その情報をプロンプトに追加(拡張)する。LLMは、自身の持つ知識と検索された外部情報を組み合わせて回答を生成する。LLM自体は、追加の学習(パラメータの調整)を基本的には行わない

まとめ

本記事では、LLMの応用技術として注目されるRAG (Retrieval-Augmented Generation) の基礎を解説しました。RAGは、LLMが外部の知識ソースを参照することで、従来のLLMが抱えていた最新情報や専門性の高い情報への弱さ、ハルシネーションの問題を解決し、より正確で信頼性の高い情報提供を可能にする技術です。

RAGは、「検索」「拡張」「生成」の3つの要素で構成され、ユーザーの質問に関連する情報を外部から取得し、その情報をLLMのプロンプトに組み込むことで、より精度の高い回答を生成します。また、通常のファイルアップロードやファインチューニングといった他の技術と比較しても、大量のデータを効率的に扱い、情報の鮮度を保ちながら、迅速に導入できるというRAGの大きなメリットを説明しました。社内FAQシステムや顧客サポート、金融・医療情報検索など、その活用範囲は多岐にわたります。

RAGシステムの導入は多くの企業にとって大きな可能性を秘めていますが、その効果を最大限に引き出すためには、システムが生成する回答の品質をいかに評価し、改善していくかが非常に重要になります。次回のPart2では、RAGシステムを実際に運用する上で避けて通れない品質評価の重要性に焦点を当て、具体的な指標や評価プロセス、改善手法について詳しく解説していきます。RAGシステムの構築を検討されている方、既に運用されている方にとって、実践的な内容となるでしょう。

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?