検索拡張生成 (RAG)
検索拡張生成 (RAG) は、外部知識ソースに基づいてモデルを作成することで LLM の内部情報表現を補完するために使用される人工知能フレームワークであり、それによって LLM によって生成される応答の品質が向上します。 RAG は、外部ソースから取得したファクトを使用して生成 AI モデルの精度と信頼性を向上させる手法で、ナレッジ ベースを生成する前にトレーニング データ ソースの外部の権威を引用できるようにします。LLM ベースの質問応答システムに RAG を実装することの主な利点は 2 つあります。1. モデルが最新の信頼できる事実に確実にアクセスできるようになります。2. ユーザーがモデルのソースにアクセスできるようになり、その主張が保証されます。正確性と真実性をチェックでき、最終的には信頼されるようになります。
RAG は、情報検索コンポーネントとテキスト ジェネレーター モデルを組み合わせます。 RAG は微調整でき、モデル全体を再トレーニングすることなく、その内部知識を効率的に変更できます。
検索強化生成のメリット
RAG テクノロジーは、組織の生成 AI の取り組みにいくつかのメリットをもたらします。
- 費用対効果の高い実装方法:チャットボットの開発は通常、基本的なモックアップから始まります。基本モデル (FM) は、広範囲の一般化されたラベルなしデータでトレーニングされた、API でアクセス可能な LLM です。組織またはドメイン固有の情報について FM を再トレーニングする場合、計算コストと財務コストが高くなります。 RAG は、新しいデータを LLM に導入するためのよりコスト効率の高い方法であり、生成 AI テクノロジーがより広く利用可能になり、使いやすくなります。
- 最新情報の提供: LLM の元のトレーニング データ ソースがユーザーのニーズに適している場合でも、データの関連性を維持するのは困難です。 RAG を使用すると、開発者は、生成されたモデルに最新の研究、統計、またはニュースをフィードすることができます。 RAG を使用して、LLM をライブのソーシャル メディア フィード、ニュース Web サイト、またはその他の頻繁に更新される情報ソースに直接接続できます。 LLM はユーザーに最新の情報を提供できます。
- ユーザーの信頼を高める:RAG を使用すると、LLM はソースの帰属を通じて正確な情報を提示できます。出力には、出典への引用または参照を含めることができます。さらに詳しい説明や詳細な情報が必要な場合は、ユーザー自身でソース ドキュメントを参照することもできます。これにより、生成 AI ソリューションに対する信頼と自信が高まります。
- 開発者はより詳細な制御が可能: RAG を使用すると、開発者はチャット アプリケーションをより効率的にテストおよび改善できます。彼らは、変化するニーズに合わせたり、部門を超えて使用したりするために、LLM の情報ソースを制御および変更できます。開発者は、機密情報の取得をさまざまな認証レベルに制限し、LLM が適切な応答を生成するようにすることもできます。さらに、LLM が特定の問題に関して間違った情報源を引用した場合、トラブルシューティングを行って問題を修正できます。組織は、より自信を持って、幅広いアプリケーション向けの生成 AI テクノロジーを実装できるようになります。
拡張機能によって生成されたワークフローを取得する
RAG を使用しない場合、LLM はユーザー入力を受け入れ、トレーニングされた情報またはすでに知っている情報に基づいて応答を作成します。 RAG は、ユーザー入力を活用して新しいデータ ソースから最初に情報を抽出する情報取得コンポーネントを導入しています。ユーザーのクエリと関連情報は LLM に提供されます。 LLM は、新しい知識とそのトレーニング データを使用して、より適切な応答を作成します。次のセクションでは、プロセスの概要を説明します。
- 外部データの作成: LLM 元のトレーニング データ セットの外にある新しいデータは、LLM と呼ばれます。外部データ。 API、データベース、ドキュメント リポジトリなどの複数のデータ ソースから取得することができます。データは、ファイル、データベース レコード、長いテキストなど、さまざまな形式で存在する場合があります。埋め込み言語モデリングと呼ばれる別の AI 技術は、データを数値表現に変換し、ベクトル データベースに保存します。このプロセスにより、生成 AI モデルが理解できる知識ベースが作成されます。
- 関連情報の取得:次のステップは、相関検索を実行することです。ユーザーのクエリはベクトル表現に変換され、ベクトル データベースと照合されます。たとえば、組織の人事に関する質問に答えることができるインテリジェントなチャットボットについて考えてみましょう。従業員が「年次休暇はどのくらいありますか?」と検索すると、システムは年次休暇ポリシー文書と従業員の個人的な過去の休暇記録を取得します。これらの特定の文書は、従業員が入力した内容と関連性が高いため、返されます。相関関係は、数学的なベクトル計算と表現を使用して計算および確立されます。
- LLM の強化に関するヒント: 次に、RAG モデルは、取得した関連データをコンテキスト内に追加することで、ユーザー入力 (またはプロンプト) を強化します。このステップでは、プロンプト エンジニアリング技術を使用して LLM と効果的に通信します。強化されたヒントにより、大規模な言語モデルでユーザーのクエリに対する正確な回答を生成できるようになります。
- 外部データを更新する:次の疑問は、外部データが古くなったらどうなるかということでしょう。 現在の情報を取得用に維持するには、ドキュメントを非同期的に更新し、ドキュメントの埋め込み表現を更新します。これは、リアルタイム プロセスまたは定期的なバッチ処理を自動化することで実現できます。これはデータ分析における一般的な課題です。変更管理はさまざまなデータ サイエンス手法を使用して実行できます。
次の図は、LLM で RAG を使用する概念的なフローを示しています。

画像ソース: aws.amazon
参考文献
【1】https://aws.amazon.com/cn/what-is/retrieval-augmented-generation/?nc1=h_ls