Amazon Bedrock を使用して簡素化された Corrective RAG アシスタントを構築する
概要
Amazon Bedrock は、主要な AI スタートアップと Amazon の高性能基盤モデル (FM) を統合 API を通じて利用できるようにするフルマネージド サービスです。幅広い基盤モデルから選択して、ユースケースに最適なモデルを見つけることができます。 Amazon Bedrock は、セキュリティ、プライバシー、責任ある AI を備えた生成 AI アプリケーションを構築するための幅広い機能も提供します。 Amazon Bedrock を使用すると、ユースケースに合わせた最上位の基盤モデルを簡単に実験して評価したり、微調整や取得拡張生成 (RAG) などの技術を使用してデータでプライベートにカスタマイズしたり、エンタープライズ システムを使用してタスクを実行するエージェントを構築したりできます。そしてデータソース。
大規模言語モデル (LLM) は、カプセル化されたパラメトリックな知識だけでは生成されたテキストの精度を確保できないため、必然的に幻覚を示します。検索拡張生成 (RAG) は LLM を補完する実用的なものですが、検索されたドキュメントの関連性に大きく依存しているため、検索が失敗した場合にモデルがどのように動作するかについて懸念が生じます。
Corrective RAG のような高度な RAG 技術は、生成の堅牢性を向上させるために提案されました。 CRAG では、軽量の検索エバリュエーターは、クエリに対して取得されたドキュメントの全体的な品質を評価するように設計されており、さまざまなナレッジ検索アクションをトリガーできるかどうかに基づいて信頼度を返します。静的で限定されたコーパスからの検索では次善の文書しか返されないため、大規模な Web 検索が検索結果を増強するための拡張機能として利用されます。 CRAG はプラグアンドプレイであり、さまざまな RAG ベースのアプローチとシームレスに結合できます。
このリポジトリには、簡素化された CRAG ベースのアシスタントを構築するプロセスを説明するコードが含まれています。取得フェーズの 2 つのシナリオについて説明します。
- (シナリオ 1)指定されたクエリによく一致するドキュメントがナレッジ ベースにあります。
- (シナリオ 2)指定されたクエリに厳密に一致するドキュメントがナレッジ ベースにありません。その結果、一致するドキュメントを取得するために Web 検索が実行されます。
始めるには
- 使用する AWS アカウントを選択し、そのアカウント内にすべてのリソースを作成してください。
- Anthropic Claude 3 および Titan Embeddings G1 - Text モデルを備えた Amazon Bedrock がある AWS リージョンを特定します。
- そのリージョンで、次のファイルを選択した新規または既存の Amazon S3 バケットにコピーします。このバケットが AWS CloudFormation で読み取れることを確認してください。
- wikipedia_search_bedrock_agent.zip
- 次の手順を使用して、
py312_opensearch-py_requests_and_requests-aws4auth.zip
という名前の Lambda レイヤー ファイルを作成し、ステップ 3 と同じ Amazon S3 バケットにアップロードします。- Windows 10 以降の場合:
- Python 3.12 と pip がインストールされ、ユーザーの PATH 変数に設定されていることを確認してください。
- 7-zip をダウンロードし、
C:/Program Files/7-Zip/
にインストールします。 - Windows のコマンド プロンプトを開きます。
- 新しいディレクトリを作成し、そこに
cd
。 - そのディレクトリ内から lambda_layer_file_create.bat を実行します。
- これにより、
py312_opensearch-py_requests_and_requests-aws4auth.zip
という名前の Lambda レイヤー ファイルが作成されます。
- Linux の場合:
- Python 3.12 と pip がインストールされ、ユーザーの PATH 変数に設定されていることを確認してください。
- Linux コマンド プロンプトを開きます。
- 新しいディレクトリを作成し、そこに
cd
。 - そのディレクトリ内から lambda_layer_file_create.sh を実行します。
- これにより、
py312_opensearch-py_requests_and_requests-aws4auth.zip
という名前の Lambda レイヤー ファイルが作成されます。
- 提供された AWS CloudFormation テンプレート simplified-corrective-rag-cfn.yaml を取得し、次のパラメータを更新します。
- DeploymentArtifactsS3BucketName - これをステップ 3 の Amazon S3 バケットの名前に設定します。
- 更新されたテンプレートを使用して AWS CloudFormation スタックを作成します。
- Amazon SageMaker ノートブックインスタンスコンソールに移動し、 simplified-crag-instanceという名前のインスタンスの[Open Jupyter]リンクをクリックして、 simplified-corrective-rag.ipynbという名前の Jupyter ノートブックを開きます。
リポジトリ構造
- AWS CloudFormation テンプレートと依存するアーティファクトを含むアセットフォルダー。
- ウェブ検索を実行するために Bedrock Agent によって呼び出される AWS Lambda 関数の Python コード。これも依存アーティファクトとしてこのファイルに圧縮されています。
- これから作業する Jupyter ノートブックに関連するすべての成果物が含まれるノートブック フォルダー。
安全
詳細については、「貢献」を参照してください。
ライセンス
このライブラリは、MIT-0 ライセンスに基づいてライセンスされています。 LICENSE ファイルを参照してください。