RAG(検索拡張生成)とは?AIビジネスに不可欠な要素をわかりやすく解説

「RAGとは何か?」
「RAGを導入するメリットは?」

この記事は、上記のような疑問をもつ方におすすめです。

RAGとは生成AIのインプット領域を広げ適切な回答出力をサポートする仕組みです。この記事では、RAGの概要、仕組みやメリット、導入の方法について解説します。AIビジネスに携わっている方は特にご一読ください。

アバター画像
監修者 kniwa

現役エンジニアです。プログラミングは基本的にどの言語も好きですが、特にSQLとVBAが好きです。趣味は釣り。

\エキスパートが回答!/
この記事に関する質問はこちら
記事に関するご質問以外にも、システム開発の依頼やAIの導入相談なども受け付けております。

    会社名必須
    必須
    必須
    Eメール必須
    電話番号必須
    ご依頼内容必須

    RAG(検索拡張生成)とは

    RAGは「Retrieval Augmented Generation」の頭文字をとった言葉で、読み方は「ラグ」です。日本語では「検索拡張生成」と言います。

    RAGを一言で表すと、生成AIの一種であるLLM(大規模言語モデル)に検索機能を付与し、LLMが学習していない外部データを回答に反映させる技術です。

    RAGを取り入れると最新の情報やインターネット上にない社内データにAIがアクセス可能になり、収集したデータを使い精度の高い回答を得られます。

    現在はChatGPTなど生成AIのユーザーはどんどん増え、ビジネスにおいても活用が進んでいます。新しい情報や企業独自のデータを扱えるRAGの注目も高まっていくでしょう。

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

    機械学習の過程で、新しいタスクに対応したいときや学習データを最新化したい場合にファインチューニングという手法が使われます。ファインチューニングとはモデルに新たなデータセットを使って追加学習をし、モデルのパラメータを微調整する作業です。

    RAGと混同されるケースもあるため、ここでは、表を使って2つの違いを見ていきましょう。

    RAG ファインチューニング
    ソース 外部資料をデータベースに格納 LLMに追加データセットを用意
    目的 最新または専門的な外部データの参照、
    特定または広範の回答精度の向上
    新しいタスクやデータへの対応、
    特定領域の回答精度の向上
    実装内容 データベース構築、検索機能の実装 モデルの再学習
    ランニングコスト 高い傾向(トークン量が多いため) 低い傾向(トークン量が少ないため)

    RAGはLLMが外部資料へアクセス可能とする仕組みであり、ファインチューニングはモデルの再学習作業を指します。アプローチや用途が異なるため、生成AIの精度を高めたい場合は自社のAIの使い方や将来的なコストを考慮し、慎重に方法を決定しましょう。

    RAGの仕組み

    RAGの処理はデータ検索と回答生成に分けられます。主な方式であるベクトル方式を例に、それぞれのフェーズの仕組みを見ていきましょう。

    クエリに基づき情報を検索する

    ユーザーがチャットAIに質問(クエリ)を入力すると、AIはベクトル形式にエンコードし質問文をクエリベクトルに変換します。クエリベクトルとは、クエリに含まれる単語や文章を解析し統計処理が可能な数値形式に変換したものです。

    ベクトル方式のほかに、検索エンジンのように情報を探すキーワード検索や、両者を混ぜたハイブリッド方式という方法もあります。

    関連性の高い情報を抽出する

    クエリベクトルが発行されると、データベース内で類似度の計算がおこなわれ、類似度が高いと判定された情報が結果として返されます。

    類似度の計算方法について簡単に解説します。

    ベクトルとはデータの向きや大きさを矢印で表したものです。ベクトル間の距離が近いほど類似度が高いと判断されます。検索が実行されると、検索対象と関連データに向かってベクトルが引かれ、類似度が計算される仕組みです。

    この方式では単純な文字判定とは異なり、単語や関連用語を含め類似度を計算するため、関連情報の正確な抽出が可能となります。

    データベースの情報は分割して格納されており、分割後の情報の塊をチャンクと呼びます。類似度はチャンクごとに計算されるため、類似度計算の精度や応答速度のチューニングにはチャンクサイズの調整がよくおこなわれます。

    情報をわかりやすくまとめて回答する

    AIは受けとった情報とユーザーが入力したクエリをもとに、LLMへ渡すプロンプトを作成します。LLMはプロンプトを受け、学習済データと受け取った情報をとりまとめて回答文を作るのです。

    回答を生成後、「回答が適切か」「文章は正しいか」などチェックが入る場合もあります。チェックなど後処理がすべて終わった回答はユーザーに表示され、RAGの一連の処理は完了です。

    関連記事
    【入門】大規模言語モデル(LLM)とは?仕組みや学習本、生成AIとの違いなどわかりやすく解説!
    【入門】大規模言語モデル(LLM)とは?仕組みや学習本、生成AIとの違いなどわかりやすく解説!

    RAGをAIに活用するメリットとは

    ここまでは、RAGの各フェーズの動きを解説しました。次は、AIにRAGを導入した場合のメリットについて見ていきましょう。

    回答精度を高められる

    RAGを導入すると、AIが確度の高い情報をインプットして扱えます。

    AIはインターネット上の情報などで事前学習をしていますが、残念ながらネット上の全ての情報が正しいとは限りません。そのため、誤情報をもとに誤った回答が作成されてしまうリスクがあります。

    RAGでは自社が用意した確かな情報をAIにインプットできるため、上記のようなリスクを低減できるのです。

    資料作成のサポートや意思決定のための情報収集など、昨今はビジネスでAIを使用するケースが増加しています。RAGの導入は回答精度を高められるため、AIビジネスの効率化やリスク低減に有効です。

    質の高い情報を扱える

    目的に合わせて質の高い情報ソースを扱えるのも、RAGのメリットです。

    RAGでは顧客情報や社内情報など、一般的なLLMでは学習していない自社独自の情報を扱えます。たとえば自社業務のマニュアルを使って、社員向けのFAQに対応するチャットボットを開発すれば、社員の求める業務情報を出力できます。

    RAGを使ってマーケティングをおこなう場合は、データベースに業種や会社規模などの顧客属性を格納すると、属性に応じたマーケティング文章を作成可能です。

    質の高い情報を扱うと回答の質が上がるため、業務効率化やマーケティングなどさまざまな副次的なメリットがあります。

    「わからない」と回答させられる

    RAGのメリットの一つに、AIに「わからない」と回答するように訓練可能なことがあります。RAGでは情報検索や回答生成の過程で信頼度などのチェック機能を設け、信頼度が低い場合には「わからない」と出力するよう実装が可能です。

    AIが誤った内容を真実のように出力するハルシネーション(幻覚)という現象があり、生成AIの使用においてハルシネーション対策は重要視されています。

    顧客に誤った情報が伝わると、信頼が低下し今後のビジネスに影響する可能性もあります。AIをビジネスで使用する場合は「わからない」と回答できるよう訓練や実装をしてAIを活用しましょう。

    学習効率が向上する

    学習が容易な点も、RAGのメリットと言えるでしょう。

    従来のLLMでは新しい情報を学習したり、新しいタスクに対応するには大規模なデータセットを用意する必要があります。一方で、RAGは外部データにアクセスできるため必要なデータセットは少なく、効率的に学習が可能です。

    社内マニュアルや資料など、RAGで参照するデータに更新があった際は、データベースを更新すればAIにも反映できます。そのため、再学習が必要になりにくいのです。

    頻繁に情報のアップデートが必要になる業界で生成AIを利用している場合、RAGを取り入れるメリットは大きくなります。該当する方はぜひRAGの導入を検討してみてください。

    LLMが抱える課題の解消に役立つ

    LLMは最新の情報に対応できない点や追加学習が大掛かりとなる課題がありますが、RAGを導入するとこれらの問題を解消できます。

    LLMはインプットが学習データに限られてしまいますが、RAGを実装すると最新情報や社内独自の情報も扱えるため、LLMの学習データに依存せず文章を生成できます。

    追加学習のコストが低い点もメリットの一つです。従来のLLMでは追加学習に大規模なデータセットが必要となり、コストが高くなる傾向があります。RAGでは、情報をメンテナンスしたい場合は外部データを更新すればよいので、データセット準備と比べてコストを低く抑えられます。

    RAGの活用事例

    RAGを導入すると、多くのメリットを享受できます。

    ビジネスにおいてどのようなことに役立つのか具体例を見ていきましょう。

    顧客対応ができるチャットボット

    RAGの活用例の一つにチャットボットがあります。RAGは社内データを参照し回答精度を高められるので、安心して顧客対応を任せることが可能です。

    たとえば製品一覧を外部データとして格納しておけば、機能や型番など製品についての問い合わせに対応できます。もしAIが答えられない質問が来た場合は、別途担当から連絡するように伝えれば問題ありません。

    AIに顧客対応を任せると、営業など社員が顧客対応する時間が減り、ほかの重要な業務に集中できます。また、昼夜問わずリアルタイムで回答してもらえるという点で顧客にもメリットがあります。顧客対応が多い企業はぜひ導入を検討してみてください。

    社内用のサポートデスク

    RAGは社内のサポートデスクにも有効です。

    オペレーションマニュアルをRAGで参照可能とすると、社内システムの利用方法や経費の申請方法など、社員からの問い合わせにAIから回答が可能です。社員からの問い合わせはある程度決まった質問が多いので、一問一答形式で情報をとりまとめておくとAIの検索もスムーズになります。

    AIにサポートデスクを任せることで、担当者が回答する工数を節約でき、リアルタイムに回答を得られるため社員の業務効率の向上にもなります。社員が多い大企業では、質問も多くサポートデスクの手間も大きくなるため、ぜひRAGの導入を検討してみましょう。

    管理業務の支援ツール

    情報検索を得意とするRAGは、管理業務にも役に立ちます。

    管理業務ではさまざまな情報を取り扱うため、情報の整理や文書の検索でRAGを活用できます。

    具体的には、各プロジェクトの進捗情報を整理したり、過去の契約書や請求書を検索したりできます。売上レポートの作成も可能です。

    管理職の方はタスクが多く、書類作成や情報探しに時間を取られるのは避けたいものです。RAGを活用して効率よく管理業務をおこなっていきましょう。

    社内情報を反映したコンテンツ生成

    RAGは自社情報にアクセスできるため、製品一覧やブログ記事など社内情報を反映したコンテンツ生成にも活用できます。

    たとえば最新の製品情報をAIにインプットすると、AIが製品情報を収集してメールマガジン文を作成・配信するなど、リアルタイムなコンテンツマーケティングが可能です。また、顧客属性を参照して性別や年代にあった文章の作成にも活かせます。

    社内情報を参照すると、AIが自社独自のコンテンツを作成できるようになります。他社との差別化やコンテンツ作成の効率化の効果もあるため、積極的にRAGを活用していきたいですね。

    RAG導入の流れ

    ここでは、RAGの導入手順を解説します。
    LLMと親和性が高いベクトルデータベースを使用する場合で、導入から運用までの流れを見ていきましょう。

    データベースの準備

    まず、データの保管庫となるベクトルデータベースを選びます。下記はRAG導入にあたり人気の種類です。

    • Elasticsearch
    • OpenSearch
    • Chroma
    • Pinecone

    種類によっては有料であったり、OSSで無償で使用可能なものもあります。費用や特徴は種類によって異なるため、何種類か確認し用途や利用規模に合ったものを選びましょう。

    ベクトルDBの構築

    使用するデータベースが決まったら、データ格納を進めましょう。手順は下記の通りです。

      1. データベースや関連ライブラリのインストール
      2. 外部ファイルをテキスト形式へ変換
      3. データ分割
      4. データをベクトル化
      5. ベクトルデータベースへロード

    ベクトル化は難易度が高く感じるかもしれませんが、たとえばChatGPTで有名なOpenAIはEmbeddingというベクトル化のサービスを展開しています。既存サービスをうまく使い、効率的に作業を進めましょう。

    RAGの実装

    次はベクトル化の仕組みや検索のフローを実装します。

    1. LLMのセットアップ
    2. クエリをベクトル化する仕組み(エンベディングモデル)を準備
    3. ベクトル検索のフローを実装
    4. (必要に応じて)検索結果の類似性チェックやエラーハンドリングを実装

    上記が完了すれば、データベース内の検索とLLMへの連携が可能になります。難易度が高いと不安に思うかもしれませんが、エンベディングモデルは既存APIを使用可能であり、検索コードもサンプルが多く公開されています。

    一からすべてを実装する必要はないので、安心してRAGの導入を検討してください。

    評価や改善

    ここまでの手順で構築作業は完了ですが、本番運用を始める前に動作確認をしましょう。テスト観点の例を紹介します。

    • 応答時間は長すぎないか、回答生成までの時間を計測
    • 回答が正しいかファクトチェック
    • ベクトルデータベースの内容をAIに質問し、正しく接続ができているか確認

    問題が見つかった場合は接続やデータ内容を確認してトラブルシューティングします。もし問題の特定が難しい場合はプロンプトや生成途中の回答を出力してデバッグが可能です。

    本格的な運用

    テスト作業が終わったら、いよいよ運用を開始します。

    RAGという用語はエンジニア職の人は分かるかもしれませんが、専門職でない人には認知度が低い用語です。機能の概要と使い方を説明したり、サポート窓口を設置するなど、利用者が使いやすいようなかたちで運用を開始しましょう。

    RAGの活用における注意点とは

    RAGには注意点も存在します。RAGをうまく活用するために、気をつけるべき問題と対策を見ていきましょう。

    検索結果はデータベースに依存する

    RAGでは検索結果をもとに回答を作成するため、出力はデータベースに依存します。データが正しくメンテナンスされていれば問題はないのですが、仮に誤った情報が格納されている場合、AIも誤回答を出す可能性が高まるのです。

    また、古い情報からアップデートされていない場合も要注意です。最新でない情報で回答が作られると社内業務に混乱が生じたり、顧客にわたってしまうとビジネス機会の損失もありえます。

    RAGを使用する場合は、データベース内の情報は正しいか、最新の情報にアップデートされているか適切に管理しましょう。

    機密情報の流出リスクがある

    RAGは使い方を誤ると、機密情報の流出を起こすリスクがあります。RAGは外部資料として用意されたものについて、機密情報かに関わらずすべてをインプットし、回答を生成するためです。

    たとえば検索資料に顧客の個人情報が含まれていた場合、AIは個人情報を回答に含めてしまい、重大な問題につながるリスクがあります。

    もしも個人情報が流出してしまった場合、信頼の低下は避けられず、損害賠償を請求される可能性もあります。RAG構築で外部データを登録する際は、機密情報が含まれていないことを複数人で確認するなど入念にチェックをしましょう。

    まとめ:RAGとはLLMの機能補完に欠かせないAIシステム

    本記事ではRAGの概要やメリット、導入の流れや注意点を解説してきました。下記に内容をまとめます。

    • RAGとは生成AIに外部データの検索機能を追加する技術である
    • 外部データはデータベースに格納される
    • 生成AIの回答精度を上げ、新しい情報に対応することができる
    • 外部データはデータベースに依存する点と機密情報の流出には注意が必要である

    もしLLMをビジネスで利用している方、または今後利用予定の方はRAGを導入すると最新の情報への対応や回答精度アップなどメリットは大きいです。ぜひ導入を検討してみてください。

    RAGについて質問や相談がある場合は、株式会社Jiteraにご連絡ください。
    豊富な実績をもつITの専門家が回答いたします。
    株式会社Jiteraへ相談する

    例:開発手順、ツール、プロンプト

    メルマガ登録

    社内で話題になった「生成AIに関するニュース」をどこよりも早くお届けします。