検索拡張生成とは何ですか?

検索拡張生成 (RAG) は、大規模な言語モデルの出力を最適化するプロセスです。そのため、応答を生成する前に、トレーニングデータソース以外の信頼できる知識ベースを参照します。大規模言語モデル (LLM) は、膨大な量のデータに基づいてトレーニングされ、何十億ものパラメーターを使用して、質問への回答、言語の翻訳、文章の完成などのタスクのためのオリジナルの出力を生成します。RAG は、LLM の既に強力な機能を、モデルを再トレーニングすることなく、特定の分野や組織の内部ナレッジベースに拡張します。LLM のアウトプットを改善するための費用対効果の高いアプローチであるため、さまざまな状況で関連性、正確性、有用性を維持できます。

検索拡張生成が重要なのはなぜです?

LLM は、インテリジェントチャットボットやその他の自然言語処理 (NLP) アプリケーションを支える重要な人工知能 (AI) 技術です。目標は、信頼できるナレッジソースを相互参照することで、さまざまなコンテキストでユーザーの質問に答えることができるボットを作成することです。残念なことに、LLM テクノロジーの性質上、LLM の応答には予測がつかないという問題があります。さらに、LLM のトレーニングデータは静的であり、蓄積された知識に期限を設けています。

LLM の既知の課題には以下が含まれます:

  • 答えがないのに虚偽の情報を提示すること。
  • ユーザーが特定の最新の応答を期待している場合に、古くなった、または一般的な情報を提示する。
  • 権限のないソースからの回答の作成。
  • 用語の混乱により、異なるトレーニングソースが同じ用語を使用して異なる内容について話すため、回答が不正確になります。

大規模言語モデルは、最新の出来事について常に情報を得ることを拒否しながら、常に自信を持ってすべての質問に答える、熱心すぎる新入社員と考えることができます。残念ながら、このような態度はユーザーの信頼に悪影響を及ぼす可能性があり、チャットボットに真似してほしくないものです!

RAG は、これらの課題のいくつかを解決するための 1 つのアプローチです。LLM をリダイレクトして、信頼できる事前に決められたナレッジソースから関連情報を取得します。組織は生成されたテキスト出力をより細かく制御でき、ユーザーは LLM がどのように応答を生成するかについての洞察を得ることができます。

検索拡張生成にはどのような利点がありますか?

RAG 技術は、組織の生成 AIの取り組みにいくつかの利点をもたらします。

コスト効率の高い実装

チャットボットの開発は通常、基盤モデルを使用して開始します。基盤モデル (FM) は、一般化されたデータやラベル付けされていないデータに基づいて広範囲にトレーニングされた API アクセス可能な LLM モデルです。組織またはドメイン固有の情報を得るために FM を再トレーニングするには、計算コストと財務コストが高くなります。RAG は、LLM に新しいデータを導入するための、よりコスト効率の高いアプローチです。これにより、生成人工知能 (生成 AI) 技術がより広く利用しやすくなり、使いやすくなります。

現在の情報

LLM の元のトレーニングデータソースがニーズに適していたとしても、関連性を維持することは困難です。RAG を使用すると、開発者は最新の研究、統計、またはニュースを生成モデルに提供できます。RAG を使用して、LLM をライブのソーシャルメディアフィード、ニュースサイト、またはその他の頻繁に更新される情報ソースに直接接続できます。その後、LLM は最新の情報をユーザーに提供できます。

ユーザー信頼の強化

RAG により、LLM はソース属性を使用して正確な情報を提示できます。出力には、出典への引用または参照を含めることができます。さらに詳しい説明や詳細が必要な場合は、ユーザーがソースドキュメントを自分で調べることもできます。これにより、生成 AI 解決に対する信頼と自信が高まります。

開発者によるコントロールの強化

RAG を使用すると、開発者はチャットアプリケーションをより効率的にテストして改善できます。LLM の情報ソースを制御および変更して、変化する要件や部門間の使用に適応させることができます。開発者は、機密情報の取得をさまざまな権限レベルに制限し、LLM が適切な応答を生成するようにすることもできます。さらに、LLM が特定の質問について誤った情報源を参照している場合、トラブルシューティングや修正を行うこともできます。組織は、より幅広いアプリケーションに生成 AI の技術をより自信を持って実装できます。

検索拡張生成はどのように機能しますか?

RAG を使用しない場合、LLM はユーザー入力を受け取り、トレーニングされた情報、または既に知っている情報に基づいて応答を作成します。RAG では、ユーザー入力を利用して最初に新しいデータソースから情報を引き出す情報検索の成分が導入されました。ユーザークエリと関連情報は両方とも LLM に渡されます。LLM は、新しい知識とそのトレーニングデータを使用して、より良い回答を作成します。以下のセクションでは、プロセスの概要を説明します。

外部データの作成

LLM の元のトレーニングデータセットの外にある新しいデータは、外部データと呼ばれます。API、データベース、ドキュメントリポジトリなど、複数のデータソースから取得できます。データは、ファイル、データベースレコード、長文テキストなど、さまざまな形式で存在する可能性があります。埋め込み言語モデルと呼ばれる別の AI 技術では、データを数値表現に変換してベクトルデータベースに格納します。このプロセスにより、生成 AI モデルが理解できるナレッジライブラリが作成されます。

関連情報を取得する

次の段階は、関連性検索を実行することです。ユーザークエリはベクトル表現に変換され、ベクトルデータベースと照合されます。たとえば、組織の人事に関する質問に答えることができるスマートチャットボットを考えてみましょう。従業員が 「年次休暇はどのくらいあるの?」と検索した場合システムは、個々の従業員の過去の休暇記録とともに、年次休暇ポリシー文書を取得します。これらの特定の文書は、従業員が入力した内容と非常に関連性が高いため、返却されます。関連性は、数学的なベクトル計算と表現を使用して計算および確立されました。

LLM プロンプトの拡張

次に、RAG モデルは、取得した関連データをコンテキストに追加することで、ユーザー入力 (またはプロンプト) を強化します。このステップでは、プロンプトエンジニアリング手法を使用して LLM と効果的に通信します。拡張プロンプトにより、大規模な言語モデルでもユーザークエリに対する正確な回答を生成できます。

外部データを更新

次の疑問は、外部データが古くなったらどうなるかということかもしれません。 最新の情報を取得できるように維持するには、ドキュメントを非同期で更新し、ドキュメントの埋め込み表現を更新します。これは、自動リアルタイム処理または定期的なバッチ処理によって行うことができます。これはデータ分析に共通する課題です。変更管理には、さまざまなデータサイエンスのアプローチを使用できます。

次の図は、LLM で RAG を使用する場合の概念的なフローを示しています。


 

セマンティック検索は、LLM アプリケーションに膨大な外部ナレッジソースを追加したい組織の RAG 結果を強化します。現代の企業は、マニュアル、よくある質問、調査レポート、カスタマーサービスに関するガイド、人事に関する書類など、膨大な情報をさまざまなシステムに保存しています。コンテキスト検索は大規模では難しく、結果として生成出力の品質が低下します。

セマンティック検索の技術は、さまざまな情報の大規模なデータベースをスキャンし、データをより正確に取得できます。たとえば、「昨年、機械の修理にいくら費やされたか?」などの質問に答えることができ、質問を関連文書にマッピングして、検索結果の代わりに特定のテキストを返すというものです。その後、開発者はその回答を使用して LLM により多くのコンテキストを提供できます。

RAG の従来の検索の解決やキーワード検索の解決では、知識集約型のタスクでは結果が限られます。また、開発者は手作業でデータを準備する際に、単語の埋め込み、文書のチャンク化、その他の複雑な作業にも対処する必要があります。これとは対照的に、セマンティック検索技術はナレッジベースの準備作業をすべて行うため、開発者はそのような作業を行う必要はありません。また、RAG ペイロードの品質を最大限に高めるために、意味的に関連性の高いパッセージとトークンワードを関連性の高い順に生成します。

AWS はお客様の検索拡張生成の要件をどのようにサポートできますか?

Amazon Bedrock は、開発を簡素化し、プライバシーとセキュリティを維持しながら、生成 AI アプリケーションを組み立てるための高性能な基盤モデルと幅広い機能を提供する完全マネージド型サービスです。Amazon Bedrock のナレッジベースを使用すると、数回クリックするだけで、FM を RAG のデータソースに接続できます。ベクトル変換、取得、および改善された出力生成はすべて自動的に処理されます。

独自の RAG を管理している組織にとって、 Amazon Kendra は機械学習を活用した高精度のエンタープライズ検索サービスです。最適化された Kendra 取得 API が提供されており、これを Amazon Kendra の高精度セマンティックランカーと一緒に使用して RAG ワークフローのエンタープライズリトリーバーとして使用できます。たとえば、取得 API では次のことができます:

  • セマンティックに関連のある文章を、それぞれ最大 200 個のトークンワードから読み出せます。内容は関連性の高い順に並べられ、100 個取得します。
  • Amazon Simple Storage Service 、SharePoint、Confluence、その他の Web サイトなどの一般的なデータ技術には、事前に組み立てされたコネクタを使用できます。
  • HTML、ワード、PowerPoint、PDF、Excel、およびテキストファイルなど、幅広いドキュメント形式をサポートします。
  • エンドユーザーの権限で許可されているドキュメントに基づいて回答をフィルターします。

Amazon は、より多くのカスタム生成 AI 解決を組み立てる組織向けのオプションも提供しています。Amazon SageMaker JumpStart は、FM、組み込みアルゴリズム、事前組み立てされた ML 解決を備えた ML ハブであり、数回クリックするだけで展開できます。既存の SageMaker ノートブックとコード例を参照することで、RAG の実装をスピードアップできます。

今すぐ無料アカウントを作成して、AWS での検索拡張生成を始めましょう

AWS での次のステップ

無料のアカウントにサインアップ

AWS 無料利用枠にすぐにアクセスできます。

サインアップ 
コンソールで構築を開始する

AWS マネジメントコンソールで構築を始めましょう。

サインイン