LLMなどの生成AIの存在は広く浸透し、多くの企業や公的な機関が利用し、さらには一般ユーザーも課金して利用することも珍しくない人気ぶりです。
業務の利便性を高めることができるため、業界、業種を問わずに活用が進んでいます。

さらに次の段階の技術として人気が高まっているのがRAG(検索拡張生成)です。
RAGはAIに学習させるデータだけでなく、外部の情報を組み合わせて回答を導くため、従来のLLMの弱点であるもっともらしいウソをついてしまうハルシネーションの解決などの多数のメリットを持ちます。

本記事では、RAGの概要、仕組みやメリット、留意点などについて解説します。
導入を検討するご担当者様はぜひご活用ください。

RAG(検索拡張生成)とは?

RAGとは、Retrieval Augmented Generationの略で、日本語に訳した場合は検索拡張生成といいます。
従来の大規模言語モデル(LLM)によるテキストなどの生成AIに、外部データの検索を加えて拡張する技術のためこのような名称となっています。

RAGの特徴の一つが、自社に蓄積された大量の業務文書・規定などの社内情報や外部の最新情報を活用する手段となることです。

RAGとLLM単体の従来の生成AIとの大きな違いとして、学習済みのデータに加え、社内の機密情報や最新の業界動向などの外部データを参照して回答に反映できることがあげられます。

■関連記事
大規模言語モデル(LLM)とは?仕組み、種類一覧を解説

なぜ、RAGが必要とされているのか?

従来のLLMによる生成AIは機械学習によって学習済みの情報から回答を求める仕組みであり、学習したデータの範囲の中からしか回答できないという制約があります。
さらに、新たな情報を学習させるためには、コンピューターに多量の処理を行わせる学習コストが発生します。
このため、社内の機密情報や独自のルールなどの外部に公開していない情報、最新の業界動向、法改正などに対応した回答をさせるのが難しいという問題もあります。

また、従来の生成AIは学習していない内容についての質問や時間経過によってルールが変わったことなどには正確でない回答を返してしまう「ハルシネーション(幻覚)」という問題も存在します。

業務に生成AIを取り入れて効率化を図る場合には、これらの課題を残したままでは全面的に適用することは難しいでしょう。
誤った内容、古い内容の答えが多いようでは業務に支障がでて、効率化の実現どころか成果はマイナスとなってしまうかもしれません。

RAGはこの従来のLLMによる生成AIの課題を補完することができる技術です。
これまで生成AIを利用してきた中で課題としてあがってきた下記二つのニーズを満たせることが、RAGが求められている理由といえるでしょう。

  • 学習内容外や学習した情報の最新性などによる回答精度低下を改善したい
  • 自社に蓄積された社内情報や外部の最新情報を活用したい

RAGの仕組み

RAGの概要について、下記の図をベースに説明します。

  1. ユーザー(利用者)はRAGに対し、問い合わせ(質問)を行います。例えば、Webをインタフェースとして利用する場合、Web画面からプロンプト(質問の入力欄)に質問内容のテキストを入力します。
  2. 質問内容に対し、RAG内の検索エンジンで外部データの検索を行います。この外部データとは、企業内にある機密情報やインターネット上から取得した最新の企業動向、法令などLLMが学習していないデータを意味します。
  3. 外部データより問い合わせに関係する情報を取得します。
  4. LLMは取得した情報とすでに学習済みの情報から回答を生成します。回答はテキスト形式などとなります。
  5. LLMの生成した回答を、RAGの返答としてユーザーに返します。例えば、Webをインタフェースとして利用する場合、Web画面上に返答を表示してユーザーはそれを参照します。

なお、利用する製品などによって、検索エンジンやLLMの動作順序は異なることがあります。
また、LLMや外部データはRAGの外と考える場合もあります。

RAGを導入する4つのメリット

業務上で生成AIを利用する際に、単にLLMを利用する場合とRAGを利用する場合を比較すると、RAGの使用には下記のメリットがあります。

  • 外部情報を容易にアップデートできる
  • 生成する回答結果の精度や信頼性が高まる
  • 非公開情報や機密情報を扱えるようになる
  • 費用対効果が高まる

以下、メリットの詳細を説明します。

外部情報を容易にアップデートできる

RAGは回答を生成するための元となるデータを比較的アップデートしやすいことがメリットの一つです。

LLMは学習済みの情報から推論して回答を求める仕組みです。したがって、LLMが持つデータをアップデートするには、最新情報を追加学習させるファインチューニングが必要となります。
ファインチューニングとは、機械学習において、学習済みのモデルを特定のタスクやデータセットに適応させるために、モデルのパラメーターを調整するプロセスです。

ファインチューニングでは、学習データの追加や内部のパラメーターの最適化が発生し、またすでに学習済みのデータについてもチューニングが行われます。
このため、ファインチューニングにはコンピュータリソースを多く必要とする一定のコストがかかります。

RAGはLLMも利用しますが、それに加えて外部情報を検索してテキスト生成を行う仕組みのため、情報の追加に際しファインチューニングを行う必要がありません。RAGでは情報のアップデートをする際、外部情報となるデータをアップデートすればよく、LLMよりもデータの更新がしやすい仕組みといえます。

生成する回答結果の精度や信頼性が高まる

RAGは信頼性の高い外部情報を検索し、生成AIと連携して回答を生成させることができるため、回答精度や回答の信頼性を高めることができる点もメリットです。

専門分野に特化した問い合わせや情報のリアルタイム性が求められる問い合わせでも、外部データが適切、最新であれば、精度の高い回答をすることが可能です。
例えば、自社内にしかない事例についても外部データとして社内資料を参照していれば、信頼できる回答が求められるでしょう。

非公開情報や機密情報を扱えるようになる

RAGは外部データとするデータベースに作業マニュアルや顧客情報などの組織特有の情報を登録することで、その情報に基づいた回答を生成することが可能です。
非公開情報や個人情報などの機密情報を参照することで、正確性の高い回答が得られる仕組みを構築することができます。

一般的にLLMの学習データに秘匿性の高い情報は含まれておらず、従来の生成AIでは正しい回答が出せない苦手な分野でした。RAGは外部データの参照という仕組みにより、この問題を回避しています。

費用対効果が高まる

問い合わせをしてその回答を得る仕組みとして、従来のLLMと比較して費用対効果が高めやすいこともメリットの一つです。

費用対効果を高められる理由となっているのが、回答をするための元となる情報のアップデートに必要なコストを抑えられることです。
従来のLLMでは追加学習となるファインチューニングにて、学習情報全体のチューニングが発生し、多量のコンピューター処理(コスト)が発生します。
RAGでは外部データの追加に対しての学習の必要がなく、この点でコストを抑えやすく費用対効果が高いとされることが一般的です。

RAGの活用シーン

RAGを活用した業務の効率化、自動化として想定できるシーンには次のようなものがあげられます。

  • 専門知識の共有
  • カスタマーサポート
  • 資料の作成
  • データ分析

以下、それぞれの活用シーンをより詳細に解説します。

専門知識の共有

RAGによる問い合わせの外部参照データに社内文書やマニュアル、メールなどを当てることで、専門知識の共有を行うナレッジベースとして利用できます。
業務に関するFAQの自動回答、ベテランの持つノウハウを若手へ継承するトレーニングへの活用、事例集としての利用などがより具体的な利用方法です。

カスタマーサポート

対話型の生成AIは、これまでもカスタマーサポート用のチャットボットとして利用されてきました。
このカスタマーサポート用のチャットボットの仕組みのバックエンドにRAGを用いることで、より高精度な応答をするサービスの提供が可能です。
また、RAGの外部データとして顧客情報やカスタマーサポートの履歴を連携することで、顧客満足度の向上が図れるでしょう。

資料の作成

業務の中で利用するあらゆる資料作成でも、RAGを活用することで効率的に信頼性の高い情報を集めることが可能です。
社内にしかない情報もRAGを使って効率的に参照し、資料作成に利用できます。より具体的な資料として、営業のプレゼン資料、製品カタログ、ブログ記事などのコンテンツ作成などが想定できます。

データ分析

RAGの外部データを参照できる仕組みを利用して、データの分析やそのレポート作成などにも活用できます。
ファインチューニングなどの時間のかかる学習をさせずに参照する外部データをアップデートできるため、市場データやトレンド、消費者のフィードバック、業界レポートなどの外部情報を収集して動向を分析する用途でもスピーディーに利用可能です。

RAGを導入する際に注意すべき4つの留意点

「RAGを導入する4つのメリット」で紹介した通りRAGはLLMを単体で運用する場合と比べて多くのメリットを持っています。しかし、導入や利用にあたっては注意すべき点もあります。

以下では、RAGの導入、利用に関する留意点を説明します。
導入を検討されている際は、ご確認ください。

回答精度がデータベースの質に左右される

LLMも学習データに基づいて推論して回答を行うように、RAGも回答精度は参照するデータベースの質に左右されます。
RAGを使った場合も正しく、有用なデータからは精度の高い回答をすることができますが、参照する外部データの質が低ければ、誤った回答や有効性の低い回答となる可能性があります。
データの質が低いとは、誤った情報が含まれている場合やデータが古い場合が該当します。

LLMの使用コストが高くなることがある

「RAGの仕組み」にて記載した通り、RAGはLLMを利用する仕組みです。
一般的にLLMは外部のサービスとして提供されているものを利用します。
よく知られているLLMのサービスとして、ChatGPTGeminiMicrosoft CopilotClaudeなどがあげられます。

LLMのサービスの多くは従量課金制です。このため、RAGを通した利用でも利用回数などが増えるとコストが高まる場合があります。
これは、LLMを単体で利用した場合でも同様であり、RAGを利用することによるメリットの費用対効果の向上とは関係のない別の留意すべき点となります。

個人情報や機密情報漏えい対策が必須

外部のデータとして個人情報や機密情報を利用する場合には、情報漏えいへの対策が必須となります。
利用するデータの性質や利用方法などによって異なりますが、アクセス制限やデータベースに登録する情報のうちセキュリティ上の問題のある内容は除外するといった対策を、導入前に検討して実装することが重要です。

回答に時間がかかることがある

RAGはLLMを単体で利用する場合に比べて回答までの時間が長くかかる傾向にあります。
RAGでは外部データに対して検索エンジンを用いて検索を行うため、その分の時間が余計に必要となるためです。
データベースのボリュームが大きいほど検索処理には時間を要するため、登録するデータの絞り込み、データの整理やチューニング、検索エンジンの最適化などでの対策が求められます。

RAGを構築する方法

RAGはLLMでファインチューニングをする場合に比べて、求められる専門的な知識は少なく、初心者でも取り組みやすい技術です。
また、さまざまなベンダーがRAGを構築できるクラウドサービスなどを提供しているため、これらを利用することで容易・手軽に使い始めることができる環境が整っています。

以下では、いくつかの製品を使ったRAGの構築について、構築手順を説明します。

Copilot Studio

Copilot Studioは、Microsoft社の提供するグラフィカルなローコードツールです。
プラグインとして外部のデータソースとの接続機能が用意されているため、あらかじめ用意されたAIツールに外部のデータを追加することで簡易なRAGを構築することができます。

簡易な構築手順は以下のステップです。

  1. Copilot Studioにアクセス
    Microsoftアカウントなどが必要です。
  2. 新しいコパイロット(エージェント)の作成
    Copilot Studio上で新しいコパイロット(エージェント)を作成します。
  3. 概要の設定
    作成したコパイロットに基本的な設定を行います。チャットボットの場合は、日本語で回答してくれるよう設定しましょう。
  4. ナレッジソースの追加
    外部からデータを参照する設定としてデータソースの追加を行います。ファイル、Webサイト、データベースなど様々なデータ形式に対応可能です。
  5. データの準備
    外部データの追加を行います。ファイル形式であればファイルをアップロードすることでデータの追加ができます。

ここまで準備すれば、すぐにチャットボットとの会話が始められます。
ただし、ここまでの作業では回答精度が低い場合も多く、回答の精度を高めるための設定変更、チューニング、テストなどを行って品質を高める必要があります。

■関連記事
【前編】Microsoft 365 Copilot と挑む作業効率化 – もう「使えない」とは言わせない、AIが創る新時代のワークスタイル

NotebookLM

NotebookLMはGoogle社の提供するAIを活用したリサーチとライティングのアシスタントツールです。
簡易的なRAGを手軽に構築することができます。
例えば、外部ソースがファイルの場合はファイルをアップロードすることで、ファイルを参照する簡易なRAGが構築できます。

簡易な構築手順は以下の通りです。

  1. NotebookLMへのアクセス
    Webブラウザからアクセスできます。
  2. Notebookの作成
    Notebookを新規作成します。
  3. ソースを追加
    ソースを追加で参照する外部データが追加できます。
  4. データの準備
    URLの指定やファイルのアップロードによりデータを追加します。
  5. 自動で要約を表示
    ファイルのアップロードを行うと自動的に要約を行ってくれます。
  6. 深掘りの質問などが可能
    要約に対して深掘りの質問など、チャットから問い合わせが可能です。

■関連記事
AI搭載!あなたの情報整理コンシェルジュ NotebookLM を徹底解説

Azure AI Searchで構築

より本格的なRAGのアプリケーションを作成する場合、Microsoft社のAzure内のサービスAzure AI Search等を組み合わせて構築することが可能です。
バックエンドにAzure OpenAIなどを用いてより詳細に設定したRAGが作成できます。

以下はAzure AI Search、Azure OpenAI Service、Azure Storageを用いた簡易な手順です。
サービスの組み合わせなどは複数存在するため、あくまで一例です。

この例では、Azure AI Searchが問い合わせのためのプロンプト提供と外部データの検索、Azure OpenAI ServiceがLLM、Azure Storageが外部データを保存する領域となります。

  1. Azureアカウントの作成
  2. Azure OpenAI Serviceの作成
  3. Azure AI Searchの作成
  4. Azure Storageの作成
  5. Azure Storageへのデータのアップロード
    ※外部データがファイルの場合

それぞれのリージョンを合わせて接続することで、プロンプトへの問い合わせなどが行えます。

■関連記事
Azure OpenAI とは?一般的なOpenAIとの違いとは

まとめ

RAG(検索拡張生成)とは、大規模言語モデル(LLM)による生成AIに、外部データの検索を加えて拡張する技術です。

企業の機密情報や顧客情報などをRAGの参照データとすることで、LLMの単体での使用でおこるハルシネーションなどを防ぎやすいことが特徴で、知識の共有やカスタマーサポート、資料作成の補助、データ分析などのビジネスシーンでの活用が期待されています。

Copilot Studio、NotebookLM、Azure OpenAIといった製品を使って容易に構築することができます。
ぜひビジネスへの導入をご検討ください。