

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 取得拡張生成について
<a name="what-is-rag"></a>

Retrieval Augmented Generation (RAG) は、会社の内部ドキュメントなどの外部データを使用して大規模言語モデル (LLM) を補強するために使用される手法です。これにより、特定のユースケースに対して正確で有用な出力を生成するために必要なコンテキストをモデルに提供します。RAG は、企業で LLMs を使用するための実用的で効果的なアプローチです。次の図は、RAG アプローチの仕組みの概要を示しています。



![オーケストレーターはカスタムドキュメントに対してセマンティック検索を実行し、LLM に入力を提供します。](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/retrieval-augmented-generation-options/images/how-rag-works.png)


大まかに言うと、RAG プロセスは 4 つのステップです。最初のステップは 1 回実行され、残りの 3 つのステップは必要な回数だけ実行されます。

1. 埋め込みを作成して、内部ドキュメントをベクトルデータベースに取り込みます。*埋め込み*は、データの意味的またはコンテキスト的な意味をキャプチャするドキュメント内のテキストの数値表現です。*ベクトルデータベース*は基本的にこれらの埋め込みのデータベースであり、*ベクトルストア*または*ベクトルインデックス*と呼ばれることもあります。このステップでは、データのクリーニング、フォーマット、チャンキングが必要ですが、これは 1 回限りの前払いアクティビティです。

1. 人間は自然言語でクエリを送信します。

1. オーケストレーターはベクトルデータベースで類似度検索を実行し、関連するデータを取得します。オーケストレーターは、取得したデータ (*コンテキスト*とも呼ばれます) をクエリを含むプロンプトに追加します。

1. オーケストレーターはクエリとコンテキストを LLM に送信します。LLM は、追加のコンテキストを使用してクエリへのレスポンスを生成します。

ユーザーの観点から見ると、RAG は任意の LLM とやり取りしているように見えます。ただし、システムは問題のコンテンツについてより多くの知識を持ち、組織のナレッジベースに微調整された回答を提供します。

RAG アプローチの仕組みの詳細については、 ウェブサイトの[「RAG とは](https://aws.amazon.com/what-is/retrieval-augmented-generation/) AWS 」を参照してください。

## 本番稼働レベルの RAG システムのコンポーネント
<a name="components"></a>

本番稼働レベルの RAG システムを構築するには、RAG ワークフローのさまざまな側面について考える必要があります。概念的には、本番稼働レベルの RAG ワークフローには、特定の実装に関係なく、次の機能とコンポーネントが必要です。
+ **コネクタ** — さまざまなエンタープライズデータソースをベクトルデータベースに接続します。構造化データソースの例としては、トランザクションデータベースや分析データベースなどがあります。非構造化データソースの例としては、オブジェクトストア、コードベース、Software as a Service (SaaS) プラットフォームなどがあります。データソースごとに異なる接続パターン、ライセンス、設定が必要になる場合があります。
+ **データ処理** — データは、PDFs、スキャンされた画像、ドキュメント、プレゼンテーション、Microsoft SharePointファイルなど、さまざまな形状と形式で提供されます。インデックス作成のためにデータを抽出、処理、準備するには、データ処理手法を使用する必要があります。
+ **埋め込み **— 関連性検索を実行するには、ドキュメントとユーザークエリを互換性のある形式に変換する必要があります。言語モデルを埋め込むことで、ドキュメントを数値表現に変換します。これらは基本的に基盤となる基盤モデルの入力です。
+ **ベクトルデータベース** — ベクトルデータベースは、埋め込み、関連するテキスト、メタデータのインデックスです。インデックスは検索と取得に最適化されています。
+ **リトリーバー** — ユーザークエリの場合、リトリーバーはベクトルデータベースから関連するコンテキストを取得し、ビジネス要件に基づいてレスポンスをランク付けします。
+ **基盤モデル** — RAG システムの基盤モデルは、通常 LLM です。コンテキストとプロンプトを処理することで、基盤モデルはユーザーのレスポンスを生成してフォーマットします。
+ **ガードレール** — ガードレールは、クエリ、プロンプト、取得されたコンテキスト、LLM レスポンスが正確で、責任があり、倫理的で、幻覚やバイアスがないことを確認するように設計されています。
+ **オーケストレーター** — オーケストレーターはend-to-endのワークフローのスケジュールと管理を担当します。
+ **ユーザーエクスペリエンス** — 通常、ユーザーはチャット履歴の表示やレスポンスに関するユーザーのフィードバックの収集など、豊富な機能を備えた会話型チャットインターフェイスを操作します。
+ **ID とユーザー管理** — アプリケーションへのユーザーアクセスをきめ細かく制御することが重要です。では AWS クラウド、通常、ポリシー、ロール、アクセス許可は [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) によって管理されます。

明らかに、RAG システムの計画、開発、リリース、管理には多大な労力がかかります。Amazon Bedrock や Amazon Q Business などの[フルマネージドサービスは](rag-fully-managed.md)、未分化の重労働の一部を管理するのに役立ちます。ただし、[カスタム RAG アーキテクチャ](rag-custom.md)では、リトリーバーやベクトルデータベースなどのコンポーネントをより詳細に制御できます。