Retrieval-Augmented Generation(RAG)とは

Alan Zeichick |技術コンテンツ・ストラテジスト| 2023年9月19日

生成AI(人工知能)は、膨大な数のデータをトレーニングした大規模言語モデル(LLM)に基づいてテキスト応答を生成する能力に優れています。幸いなことに、多くの場合において生成されたテキストは読みやすく、プロンプトと呼ばれることの多いソフトウェアに尋ねられた質問に幅広く適用できる詳細な回答が得られることです。

しかし残念ながら、応答を生成するために使用される情報は、生成AI(多くの場合、一般的なLLM)を訓練するために使用される情報に限定されます。LLMのデータは数週間、数ヶ月、数年以上前の古いものである可能性があり、企業のAIチャットボットでは、その企業の製品やサービスに関する具体的な情報が含まれていない場合があります。その結果、顧客や従業員のテクノロジーに対する信頼感を損ないかねない、不正確な応答につながる可能性があります。

Retrieval-Augmented Generation(RAG)とは

そこで、Retrieval-Augmented Generation(RAG)の出番となります。RAGは、基礎となるモデル自体に変更を加えることなく、対象となる情報を用いてLLMの出力を最適化する方法を提供します。この対象となる情報は、LLMよりも最新のものである場合もあれば、特定の組織や業界に特化したものである場合もあります。つまり、生成AIシステムは、プロンプトに対してよりコンテキストに適した回答を提供できるだけでなく、それらの回答は極めて最新のデータに基づいているということです。

RAGは、Patrick Lewis氏とFacebook AI Researchのチームによる2020年の論文「Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks」の発表をきっかけに生成AI開発者の注目を集めました。RAGのコンセプトは、生成AIシステムの価値を大幅に向上させる方法として、多くの学界や業界の研究者によって取り入れられています。

Retrieval-Augmented Generationについての説明

あるスポーツリーグが、ファンやメディアがチャットを使用してデータや選手、チーム、スポーツの歴史やルール、現在の成績や順位に関する質問への回答にアクセスできることを望んでいると考えてみてください。一般的なLLMは、歴史やルールに関する質問に答えたり、おそらく特定のチームのスタジアムについて説明することができます。しかし、前夜の試合について論じたり、特定のスポーツ選手の怪我について最新の情報を提供することは、LLMにはそのような情報がないためできないでしょうし、LLMの再トレーニングには膨大なコンピューティング能力が必要であることを考えると、モデルを常に最新の状態に維持することは現実的ではありません。

大規模で非常に静的なLLMに加え、スポーツリーグは、データベース、データウェアハウス、選手の経歴を含むドキュメント、各試合を詳細に論じるニュース・フィードなど、その他多くの情報ソースを所有、またはそれにアクセスすることができます。RAGにより、生成AIはこうした情報を取り込むことができます。現在、チャットは、よりタイムリーで、よりコンテキストに適しており、かつより正確な情報を提供することができます。

簡単に言えば、RAGはLLMがより適切な回答を提供することを支援します。

主なポイント

  • RAGは比較的新しい人工知能技術で、大規模言語モデル(LLM)が再トレーニングなしに追加のデータ・リソースを利用できるようにすることで、生成AIの品質を向上させることができます。
  • RAGモデルは、組織独自のデータに基づいてナレッジ・リポジトリを構築し、生成AIがタイムリーでコンテキストに即した回答を提供することを支援するように、リポジトリを継続的に更新することができます。
  • 自然言語処理を使用するチャットボットやその他の対話型システムは、RAGや生成AIから大きなメリットを得ることができます。
  • RAGの導入には、新しいデータの迅速なコーディングと、そのデータに対する検索のLLMへのフィードを実現するベクトル・データベースなどのテクノロジーが必要です。

Retrieval-Augmented Generationの仕組み

構造化データベース、構造化されていないPDFやその他のドキュメント、ブログ、ニュースフィード、過去のカスタマーサービスのセッションからのチャット記録など、組織が持つあらゆる情報を考慮します。RAGでは、この膨大な量の動的データを共通のフォーマットに変換し、生成AIシステムがアクセスすることのできるナレッジ・ライブラリーに格納します。

そのナレッジ・ライブラリーのデータは、埋め込み言語モデルと呼ばれる特殊なアルゴリズムを使って数値表現に処理され、迅速な検索と正確なコンテキストの情報取得に使用できるベクトル・データベースに格納されます。

RAGと大規模言語モデル(LLM)

さて、エンドユーザーが生成AIシステムに特定のプロンプト、例えば、「今夜の試合が行われる場所はどこで、先発選手は誰で、対戦に関するレポーターのコメントを教えてほしい」という内容のものを送ったとします。クエリはベクトルに変換され、その質問のコンテキストに関連する情報を取得するためのベクトル・データベースへのクエリに使用されます。そのコンテキストの情報と元のプロンプトがLLMにフィードされ、LLMはやや古くなった一般的なナレッジと極めてタイムリーなコンテキストの情報の両方に基づいてテキスト応答を生成します。

興味深いことに、一般的なLLMをトレーニングするプロセスには時間とコストがかかりますが、RAGモデルの更新はまさにその逆です。新しいデータを組み込み言語モデルにロードし、継続的かつ段階的にベクトルに変換することができます。実際、生成AIシステム全体からの回答は、RAGモデルへのフィードバックが可能であり、事実上、同様の質問に対する過去の回答方法が把握されていることから、パフォーマンスと精度を向上させることができます。

RAGのもう1つのメリットは、ベクトル・データベースを使用することで、生成AIが、LLMでは不可能な、特定のデータ・ソースを引用した回答を提供することができることです。そのため、生成AIの出力内容に不正確な情報があった場合、その誤った情報を含むドキュメントを素早く特定および修正して、修正した情報をベクトル・データベースにフィードすることができます。

つまり、RAGは、LLM自体が提供できる以上の適時性、コンテキスト、エビデンスに基づく正確性を生成AIにもたらします。

Retrieval-Augmented Generationとセマンティック検索の比較

LLMベースの生成AIの精度を向上させるために使われる技術は、RAGだけではありません。他には、プロンプトに含まれる特定の単語やフレーズを深く理解することで、AIシステムがクエリの意味を絞り込むことを支援するセマンティック検索があります。

従来の検索はキーワードが中心でした。例えば、フランス原産の樹木の種類を尋ねる基本的なクエリでは、「樹木」と「フランス」をキーワードとしてAIシステムのデータベースを検索し、両方のキーワードを含むデータを検索することがありますが、システムがフランスにおける樹木の意味を十分に理解していないため、検索される情報が多すぎたり、少なすぎたり、あるいは間違った情報を検索する可能性があります。そのキーワードに基づく検索では、ノルマンディーを原産とする樹木が、フランスにあるにも関わらず、キーワードの抜けにより見落とされかねないというように、キーワード検索はあまりに直訳的なものであるために情報を見落とす可能性があります。

セマンティック検索は、質問やソース文書の意味を判断し、より正確な結果を取得するためにその意味を使用することにより、キーワード検索を上回る機能を提供します。セマンティック検索はRAGに不可欠な要素です。

チャット・アプリケーションにおけるRAGの活用

質問に対する回答を瞬時に得ることを望む人にとって、チャットボットの即時性と使いやすさに勝るものはありません。ほとんどのボットは、限られた数のインテント、つまり顧客の求めるタスクや結果に基づいてトレーニングされ、それらのインテントに対応します。RAG機能は、AIシステムがインテント・リストにない質問に対する回答を自然言語で提供できるようにすることで、現在のボットを強化することができます。

「質問して回答を得る」というパラダイムにより、チャットボットは多くの理由から生成AIの完璧なユースケースとなっています。質問に対する正確な回答を生成するには、特定のコンテキストが必要な場合が多く、チャットボットのユーザーが関連性と正確性に高い期待を持つことが多いことを踏まえると、RAG技術の適用方法は明らかです。実際、多くの組織にとって、チャットボットはRAGや生成AIの使用における出発点になり得ます。

質問に正確な答えを提供するためには、多くの場合特定のコンテキストが必要になります。例えば、新しく導入された製品に関する顧客からのクエリは、そのデータが以前のモデルに関するものであれば役に立ちません。そして、今度の日曜に公園が開いているかを知りたがっているハイカーは、特定の公園の特定の日付に関するタイムリーで正確な情報を求めているのです。

Retrieval-Augmented Generationのメリット

RAG技術は、生成AIシステムのプロンプトに対する応答の質をLLMのみで提供可能な以上にまで向上させるために使用することができます。メリットは以下の通りです。

  • RAGは、LLMのトレーニングに使用されたデータよりも新しい可能性のある情報にアクセスできます。
  • RAGのナレッジ・リポジトリにあるデータは、多額のコストを発生させることなく継続的に更新することができます。
  • RAGのナレッジ・リポジトリには、一般化的なLLMのデータよりもコンテキストに基づいたデータを格納することができます。
  • RAGのベクトル・データベースの情報ソースは特定が可能です。また、データ・ソースが判明しているため、RAG内の不正確な情報を修正または削除することができます。

Retrieval-Augmented Generationの課題

RAGは2020年に初めて提案された比較的新しいテクノロジーであるため、AI開発者は、RAGの情報取得メカニズムを生成AIに最適に実装する方法をまだ学んでいる段階です。主な課題

  • RAGは非常に新しいものであるため、組織における知識と理解の向上
  • コストの増加:RAGを用いた生成AIはLLM単体よりも実装コストが高くなるが、LLM自体の頻繁な再トレーニングと比較すると低コスト
  • ナレッジ・ライブラリーとベクトル・データベース内の構造化および非構造化データの最適なモデル化方法の決定
  • RAGシステムにデータを段階的にフィードするプロセスの要件の策定
  • 不正確性に関するレポートを処理し、RAGシステム内のそうした情報ソースを修正または削除するためのプロセスの導入

Retrieval-Augmented Generationの例

RAGによって拡張された生成AIの例として考えられるものは多数あります。

生成AIおよびRAG分野のリーダーであるCohereは、カナリア諸島のバケーション・レンタルについて、ビーチへのアクセス、近隣のビーチのライフ・ガード、徒歩圏内のバレーボール・コートの有無など、事実に基づいた回答を含む状況を踏まえた情報を提供できるチャットボットに関する記事を書いています。

オラクルは、財務レポートの分析、ガスや石油の探索支援、コールセンターでの顧客とのやり取り記録のレビュー、関連する研究論文の医療データベースの検索など、RAGのその他のユースケースを紹介しています。

Retrieval-Augmented Generationの未来

現在、RAGの初期段階において、このテクノロジーはクエリに対してタイムリーで正確、かつコンテキストに沿った回答を提供するために使用されています。これらのユースケースは、チャットボット、電子メール、テキスト・メッセージング、その他の対話型アプリケーションに適しています。

今後のRAGテクノロジーの方向性としては、生成AIがコンテキストの情報やユーザーのプロンプトに基づいて適切なアクションを取ることの支援などが考えられます。例えば、RAGで強化されたAIシステムが、カナリア諸島で最も評価の高いビーチ・バケーション・レンタルを特定した上で、バレーボール大会開催中のビーチから徒歩圏内にある2ベッドルームのキャビンの予約を開始するケースがが考えられます。

またRAGは、より高度な質問の支援も可能なことがあります。今日、生成AIは、企業の授業料払い戻しポリシーについて従業員に伝えることが可能であることが考えられますが、RAGは、より状況に応じたデータを追加することで、そのポリシーに適合するコースがある近隣の学校の案内、従業員の仕事や過去のトレーニングに適したプログラムの推奨、さらには、それらのプログラムの申請や払い戻しリクエストの開始を支援することができる可能性があります。

オラクルによる生成AI

オラクルは、Oracle Cloud Infrastructure(OCI)上で実行されるOracle Generative AIサービスを含む、幅広い高度なクラウドベースのAIサービスを提供しています。オラクルが提供するサービスや製品には、お客様の組織独自のデータと業界知識に基づく堅牢なモデルが搭載されています。顧客データはLLMプロバイダーと共有されることも、他の顧客に見られることもありません。また、顧客データに基づいてモデルをトレーニングしたカスタム・モデルを使用することができるのは、その顧客のみです。

また、オラクルは生成AIを幅広いクラウド・アプリケーション全体にわたり統合しており、OCIやOCIのデータベース・ポートフォリオを使用する開発者は生成AI機能を利用することができます。さらに、オラクルのAIサービスは、お客様の用途に特化したシングル・テナントのAIクラスタを使用して、予測可能なパフォーマンスと価格を実現します。

LLMと生成AIのパワーと機能は幅広く認知および理解され、過去1年間、多くのニュースの見出しを飾ってきました。Retrieval-Augmented Generationは、LLMをよりタイムリーに、より正確に、よりコンテキストに沿ったものにすることで、LLMの利点を活用します。生成AIのビジネスへの適用において、RAGは注目、研究、試験的に導入すべき重要なテクノロジーです。

オラクルが生成AIに最適な理由

オラクルは最新のデータ・プラットフォームと低コストで高性能なAIインフラストラクチャを提供します。さらに、強力で高パフォーマンスなモデル、比類のないデータ・セキュリティ、組み込みAIサービスといった要素が、オラクルのAI製品とサービスが実際に企業向けに構築されたものである理由を示しています。

Retrieval-Augmented Generationに関するFAQ

RAGと生成AIは同じものでしょうか。

いいえ。RAGは、すでにLLMに含まれているデータの外部のナレッジを使用するため、生成大規模言語モデル単体よりもクエリに対してより正確な結果を提供することができる技術です。

RAGで使用される情報の種類を教えてください。

RAGは、リレーショナル・データベース、非構造化ドキュメント・リポジトリ、インターネット・データ・ストリーム、メディア・ニュースフィード、音声トランスクリプト、トランザクション・ログなど、多くのソースからデータを取り込むことができます。

生成AIによるRAGの活用方法について教えてください。

企業のデータ・ソースからのデータはナレッジ・リポジトリに埋め込まれ、ベクトルに変換されてベクトル・データベースに保存されます。エンドユーザーがクエリを実行すると、ベクトル・データベースが関連するコンテキストの情報を取得します。このコンテキストの情報は、クエリとともに大規模言語モデルに送信され、大規模言語モデルはコンテキストの情報を利用して、よりタイムリーで正確な、コンテキストに沿った応答を作成します。

RAGが取得したデータの参考文献を引用することは可能でしょうか。

はい。RAGが用いるベクトル・データベースやナレッジ・リポジトリには、情報ソースに関する具体的な情報が含まれています。つまり、ソースの引用が可能で、そのソースの1つに誤りがあった場合、すぐに修正または削除できるため、その後のクエリで不正確な情報が返されることはありません。