見出し画像

【今さら聞けない!】RAGの全貌を5分で理解!メリット・活用事例まとめ

W&B インターンの金澤 (Xアカウント) です。生成AIの普及に伴い、RAGの導入が急速に進んでいますが、「名前は聞いたことがあるものの、具体的にはあまり知らない」という方も多いのではないでしょうか。今回の記事では、RAGの概要、メリット・デメリット、ユースケースについて包括的に解説し、RAGについての理解を深めていただくことを目的としています。
記事は5分程度で読めるので、ぜひお気軽にお読みください!


RAGの概要

近年、レポートの執筆からプログラミングコードの生成まで、幅広い分野で活用されているのが大規模言語モデル(LLM)です。LLMは、膨大なデータを長時間かけて学習させることで、多様なタスクをこなせるようになりました。しかし、学習時点で含まれていない最新情報や、企業内部の非公開情報といったプライベートなデータについては、モデルが知識を持ち合わせていないため、正確な回答が難しいという課題があります。

そこで注目されているのが「RAG(Retrieval-Augmented Generation)」という手法です。LLMに外部のデータソースからの情報を追加し、それを元に生成を行うことでLLMが元々持たない知識について回答させることができます。

通常、LLMを使う場合はユーザーがプロンプトを入力して回答させるだけですが、RAGの場合はあらかじめ「外部データソース」と「検索の仕組み」を用意する必要があります。ユーザーがプロンプトを入力し質問をすると(画像中:①)、それに関連する情報が外部のデータソースから検索され、(画像中:②)そのデータをもとにLLMで回答の生成が行われます(画像中:③)このような仕組みを通して、RAGを使えば「LLMが学習していない情報でもアクセスして回答できる」ようになります。

RAGはその特性から既に多くの産業で活用されつつあります。多くの企業がRAGに注目する最大の理由は、業務で扱う最新情報や自社だけがアクセスできる非公開の情報を活用しながら、LLMの高い言語生成能力を引き出せる点にあります。例えば、社内に点在するドキュメントやデータベースと連携し、「情報を一元化してQA対応できるチャットボット」を構築したり、「最新のニュースをリアルタイムで取り込み、常にアップデートされた情報を要約」したりするなどが可能になります。こうした用途の広がりに伴い、RAGは多くの産業界で生成AIの代表的なユースケースとして認知されつつあります。

RAGのメリットとデメリット

ここまでRAGの概要を解説しましたが、RAGについてさらに深く、多角的に理解するために、RAGのメリット・デメリットをご紹介します。

RAGのメリット

  • 最新情報、独自情報の反映:先述したように、RAGでは回答を生成する際にLLMの学習データ外にあるデータを参照するため、モデルが学習時点で持っていた情報だけに依存せず、最新の情報や社外秘な機密情報も反映させることが可能です。例えばニュース記事や株価情報など、刻一刻と変化する情報や、自社のドキュメントに関しての情報などを扱う場合には、RAGだと情報を取り入れて、回答を生成してくれます。

  • 虚偽の回答(ハルシネーション)を低減する:LLM単体では、知識が不十分なトピックに対して自信満々に誤情報を生成してしまう(いわゆるハルシネーション)のが大きな課題です。RAGを使用するとLLMは与えられた情報を基に回答を生成しようとする傾向を持つので、ハルシネーションが発生しにくくなります。

  • 透明性の担保:RAGを用いると、生成された回答の根拠を明確にすることが可能です。「なぜそう答えたのか?」という疑問に対して、「このデータソースからこの情報を参考にしたので、このような回答をした」という推論の根拠をLLMに出力させることができます。そのため、実際に運用する上でも透明性が担保しやすく、LLMの回答に問題があった場合には原因を特定しやすいというメリットがあります。

  • システムの柔軟性:RAGによるLLMの推論は外部のデータソースに依存しているので、そのデータソースを更新すれば、RAGが参照する情報を簡単に変更することができます。また、RAGの仕組み自体は、特定のLLMや機能(Function Calling・JSONモードなど)に依存しにくく、テキスト生成が出来るモデルであれば基本的に使用可能です。

RAGのデメリット

  • 実装の複雑さ:RAGは単純にLLMを利用することに比べて、外部データソースや検索システムとLLMを組み合わせるための実装が必要になります。単にAIの知識だけでなく、インフラやシステム開発のスキルが必要となるため、導入や保守のコストが大きくなってしまいます。

  • 回答までの時間が長くなる:RAGを使用すると、回答までに要する時間が長くなる可能性があります。これはさまざまな要因が関与しており、例えば、LLMが参照するデータソースが膨大な場合や、システム間のやり取りに時間がかかる場合、検索アルゴリズムに無駄がある場合などが挙げられます。RAGはLLM単体で回答を生成するわけではないため、回答までの時間を考慮して導入することが必要です。

RAG vs Fine-tuning

RAGと類似のテクニックとしてfine-tuningがあります。fine-tuningは、すでに学習済みのモデルに対して、特定の用途やドメインのデータを使って追加の学習を行う手法で、RAGと同様に最新情報や機密情報を、LLMに追加の知識として注入することが可能です。一見似たようなテクニックですが、果たしてRAGとfine-tuningはどちらにどのような優位性があるのでしょうか。

  • 知識の精度:RAGが優位

知識を問うような質問に関しては、fine-tuningに比べてRAGが有用であることが示されています[参考]。これは、RAGは質問への回答に加えて、質問のコンテキストの情報も追加で理解できることと、fine-tuningは「破壊的忘却」と呼ばれる知識が大きく損なわれるリスクを持つことが要因として挙げられます。基本的には知識を問う場合に関しては、基本的にはRAGを使うことに優位性があると考えられます。

💡Tips:RAGとfine-tuningを組み合わせるアプローチが最も効果的?
一部の研究や事例では、RAGとfine-tuningの両方を組み合わせることで、精度がさらに向上することが示されています[参考]。将来的には両者を組み合わせることが当たり前になるかもしれません。

  • 一貫性:fine-tuningが優位

fine-tuningをすることで、知識を注入することに加え、LLMに特定の「性格」や「特徴」を付与しやすくなります。たとえば、丁寧語やカジュアルな口調を一貫して使うように学習させたり、セーフガードとして「特定のテーマには答えない」ように振る舞いを制御することも可能です。RAGは情報を外部ソースから持ってきて推論させることがメインのため、LLMの基本的な言語生成のスタイルや一貫性を大きく変えるのは得意ではありません。LLMの話し方や振る舞いを制御したいときや、厳格なガイドラインに沿った回答を求めたいときは、fine-tuningのほうが適しています。

RAGの実運用

RAGを本番環境で上手く活用するには、大きく「実装」「評価」「運用」という3つのステップを繰り返していく必要があります。ここでは、それぞれのステップを説明します。

実装

要件定義に基づき、RAGに使用するLLMや埋め込みモデルなど、中核となる機能の実装を進めます。同時に、オンプレかクラウドかといったインフラ選択や、データを保存・管理するためのデータベースの種類などを検討し、適切な環境を構築します。最終的にはそれらを統合し、ユーザーからの応答に対してきちんとデータを読み込んで回答を生成するパイプラインを構築します。

評価

実装したRAGが、要求を満たす性能に達しているかを評価します。想定ユースケースに沿った質問や、難易度の異なる質問などで構成されるテストデータを準備し、構築したRAGがどの程度正確に回答を生成できるかを確認します。テスト結果をもとにシステム構成やデータ構造、パラメータ、使用するモデル等を調整し、性能を高めていきます。また、応答速度やエラー率など、実運用を踏まえた指標も検証し、必要に応じて改善することも必要です。本番環境へリリースできる性能や要件を満たすまで、評価と実装のサイクルを繰り返し改善を行います。

運用

RAGを本番環境で公開し、実際のユーザーに使ってもらう段階です。運用を開始すると、計画時や評価時には想定できなかった問い合わせやエラーが生じる可能性があります。そこで、回答内容やシステムの動作を常にモニタリングし、不適切な回答やシステムの問題を素早く修正できる体制を整えておくことが重要です。さらに、ユーザーからのフィードバックを定期的に収集し、追加のデータセットを取り込むことで最新情報に対応するなど、運用の継続的な改善を実施することも必要です。改善を行う度に、再度「実装」「評価」「運用」のステップを辿ることで体系的で効率的なRAGの開発・運用体制となります。

RAGの具体的なユースケース

実際にRAGはどのような場面でどのように活用されているのか、最新のユースケースをいくつかご紹介します。

【製造】 トヨタ自動車:ベテランエンジニアの知見をRAGで継承する「O-Beya」システム

24 時間 365 日いつでも相談できる AI エキスパートたちの「仮想の大部屋」を作り上げるという構想のもと、トヨタ自動車は「O-Beya」という RAGシステムを構築しました。O-Beya システムには複数のAIエージェントが実装されており、振動の専門家や燃費の専門家など、多くの分野をカバーしています。例えば、エンジニアが「より速く走る車を作るにはどうすればよいか」と質問した場合、エンジンエージェントはエンジン出力の観点から回答を提供し、一方で規制エージェントは排出ガス規制の観点から回答を提案し、最終的にO-Beya システムがこれらの回答を一つに統合します。従来であれば個々のベテランが記憶をたどりながら探し出していた情報が「組織の知恵」として集約され、誰もが同じスタートラインから開発を進められるようになっています。

参考:
https://news.microsoft.com/ja-jp/features/241120-toyota-is-deploying-ai-agents-to-harness-the-collective-wisdom-of-engineers-and-innovate-faster/

【金融】 三井住友カード: RAG 技術を活用して顧客サポートを効率化

引用:https://prtimes.jp/main/html/rd/p/000000047.000047565.html

三井住友カードでは、キャッシュレス決済の普及に伴い新規申し込みが増加し、対応品質の向上および対応可能件数の拡大が急務となっていました。そこで、同社はお問い合わせ対応のメールやチャットにおいて、RAGを活用した生成AIをコンタクトセンターに導入しました。このシステムは、社内に蓄積された豊富なドキュメントを迅速に検索し、オペレーターに最適な回答案を瞬時に作成する仕組みです。これにより、オペレーターはスピーディーかつ正確にお客様に応答できるようになり、結果として対応にかかる時間を大幅に短縮することが期待されています。最終的には、対応時間を最大で60%削減できる見込みです。このようなお問い合わせ対応はRAGが威力を発揮できる代表的なユースケースです。

参考:
https://prtimes.jp/main/html/rd/p/000000047.000047565.html

【建設】 大成建設:生成AIで建築施工ノウハウを継承する「建築施工技術探索システム」

引用:https://www.taisei.co.jp/about_us/wn/2024/241031_10191.html

大成建設は、膨大な社内技術資料と生成AIを融合させたRAGを活用し、建築施工に関する専門的な質問に対して正確かつ迅速に回答できる「建築施工技術探索システム」を開発しました。このシステムにより、業務経験が浅い社員からベテラン社員まで、的確で迅速な技術サポートを受けるとともに、建築施工技術に関する情報や知識の共有が実現され、確実な技術継承が可能となります。さらに、誤った回答があった場合には、専門家チームがフィードバックと修正を行い、模範解答として蓄積します。これにより、AIの精度が継続的に向上し、ハルシネーションの防止や情報の信頼性強化につながっています。

参照:
https://www.taisei.co.jp/about_us/wn/2024/241031_10191.html

【医療】 くすりの窓口:RAG 技術で生成AIチャットボットを導入し、社内問合せ対応を効率化

引用:https://classmethod.jp/cases/kusurinomadoguchi/

国内最大級の薬局検索予約サイト「EPARKくすりの窓口」を運営するヘルステック企業、くすりの窓口は、お客様からの質問対応の品質向上を目指し、社内向けAIチャットボットの導入を進めています。具体的には、まず従業員がAIチャットボットを活用して精度の高い回答を取得し、それを基に実際の対応に活かす仕組みを構築しました。サービスはSlackで提供されており、社内チャットで質問すると関連する情報がRAGを活用して出力されます。今後は新人教育用のチャットボットのリリースも予定しています。このように、まずは社内向けのチャットボットからRAGを初めてみようというケースも増えつつあります。

参照:
https://classmethod.jp/cases/kusurinomadoguchi/

RAGを構築・運用する上での課題

RAGの構築から運用に至るまでには、モデルやデータ選定の技術的な課題から、評価手法やセキュリティに関する実践的な課題まで、多岐にわたる問題が存在します。本章では、RAGの導入において特に注意が必要なポイントを「実装」「評価」「運用」において解説します。

実装における課題

使用するデータ:RAGは与えられたデータをもとに回答を生成するため、どのようなデータをどの程度与えるかが性能を左右する重要なポイントとなります。誤情報を含むデータやRAGの想定ユースケースとは関連性の低いデータは使用を避けるべきです。特に実装においては、RAGに与えるデータの種類や構造を把握し、適切に取り込めるように準備が必要です。たとえば以下のような観点が考えられます。

  • ファイル形式(pdf, txt, pptx, docx 等)はどこまでカバーするのか

  • 文書内に含まれる要素(テキスト、画像、表、グラフ 等)は何か

あらかじめ想定されるデータを網羅的に取り込めるシステムを構築しておかないと、想定外の形式や構造に対応しきれず、不十分な回答につながる可能性があります。

適切なLLM、埋め込みモデルの検討:使用するデータと同様、LLMや埋め込みモデルの種類・性能によって、最終的な回答の品質や処理速度が大きく異なります。新しいモデルは日々アップデートされているので、過去の情報だけを鵜呑みにするのではなく、一度立ち止まって最新のモデルやベストプラクティスを確認することが重要です。

埋め込みモデルごとの性能比較の例
引用:Fully Connected Tokyo 2024 Upstage社の講演

評価における課題

検索性能の評価と応答性能の評価を切り分ける:RAGは①質問に関連するデータを検索し、②そのデータをもとにLLMが回答を生成するという2段階の流れで動作します。したがって、データを正しく検索できているか(①)と、LLMが質問に対して適切な回答を生成できているか(②)を分けて評価する必要があります。これらを一括りに評価してしまうと、問題がどこに起因しているのかを正確に把握しづらくなります。

繰り返し可能な評価パイプラインを構築しておく:RAGの実装後の評価は、本番リリースに耐えうる性能かどうかを確認するためだけでなく、継続的な改善のサイクルを回すためにも重要です。そのため、一度きりのテストで終わるのではなく、繰り返し使用できる評価パイプラインを整備しておくことが望ましいです。これにより、

  • 改善案が出た場合、容易に再評価ができる

  • 新たなモデルやデータを追加した際も、同じパイプラインで性能をチェックできる

といったメリットが得られます。

運用における課題

ユーザーのリテラシー:RAGの回答をユーザーが絶対視してしまうリスクを運営側は常に想定する必要があります。AIの回答は誤りを含む場合があるため、ユーザーには根拠や引用元URLなどを提示し、必要に応じて自分で検証する姿勢を促すことが大切です。回答を丸ごと鵜呑みにせず、参照情報として利用してもらう運用フローを作ることで、RAGの利点を活かしつつリスクを抑えることができます。

セキュリティとプライバシー:RAGに機密情報や個人情報が含まれるデータを組み込む場合、データ漏洩を防ぐための取り組みが欠かせません。データ保管やアクセス権限の設定を厳格に管理し、必要に応じて非公開データを匿名化やマスキング処理するなど、機密性を保つ工夫を徹底する必要があります。これらの対策を疎かにすると、データの誤用や漏洩により組織が大きなリスクを負うことになるため、注意が必要です。

ユーザーフィードバックや追加のデータの反映:運用中のRAGは、ユーザーが実際に使うことで多くの改善点や新しい要望が浮かび上がります。同時に、RAGに追加で取り入れたいデータが発生することも少なくありません。こうした追加のフィードバックやデータに基づいたRAGを構築するために、初めから継続的な改善を前提とした開発体制を作っておくことが重要です。

まとめ

RAGの概要からメリットデメリット、実際のユースケースまで、現状のRAGの概念的な部分を包括的に解説しました。RAGは産業で非常に注目度が高いので、この記事を参考にぜひRAGについて理解を深めてみてください。
次回はRAGの評価に焦点を当てた記事を投稿予定です。この記事でRAGの概要を学んだ方は、ぜひそちらの記事もチェックしてみてください!

いいなと思ったら応援しよう!