S3 Vectors と Amazon Bedrock ナレッジベースを使用する - Amazon Simple Storage Service

S3 Vectors と Amazon Bedrock ナレッジベースを使用する

注記

Amazon S3 Vectors は Amazon Simple Storage Service のプレビューリリースであり、変更される可能性があります。

S3 Vectors は Amazon Bedrock ナレッジベースおよび Amazon SageMaker AI Unified Studio と統合され、検索拡張生成 (RAG) アプリケーションのベクトルストレージのコストを簡素化し、削減します。

Amazon Bedrock 埋め込みモデルを S3 Vectors オペレーションと統合する高レベルの CLI コマンドの詳細については、次を参照してください。

インテグレーションの概要

Amazon Bedrock でナレッジベースを作成する場合、ベクトルストアとして S3 ベクトルを選択できます。この統合により、次のことが可能になります。

  • 大きなベクトルデータセットを持つ RAG アプリケーションのコスト削減

  • Amazon Bedrock のフルマネージド RAG ワークフローとのシームレスな統合

  • Amazon Bedrock サービスによって処理される自動ベクトル管理

  • ナレッジベース取得オペレーションの 1 秒未満のクエリレイテンシー

Amazon Bedrock ナレッジベースは、フルマネージドのエンドツーエンド RAG ワークフローを提供します。S3 Vectors を使用してナレッジベースを作成すると、Amazon Bedrock は S3 データソースからデータを自動的に取得し、コンテンツをテキストブロックに変換して埋め込みを生成し、ベクトルインデックスに保存します。その後、ナレッジベースをクエリし、ソースデータから取得したチャンクに基づいてレスポンスを生成できます。

どのようなときにこの統合を使うか

以下が必要な場合は、S3 Vectors と Amazon Bedrock ナレッジベースを使用することを検討してください。

  • 1 秒未満のクエリレイテンシーがアプリケーション要件を満たしている大規模なデータセットの費用対効果の高いベクトルストレージ

  • マニュアル、ポリシー、ビジュアルコンテンツの検索などのユースケースのテキストおよびイメージベースのドキュメントの取得

  • 超低レイテンシーレスポンスよりもストレージコストの最適化を優先する RAG アプリケーション

  • S3 Vectors API オペレーションを直接学習する必要のないマネージドベクトルオペレーション – 馴染みのある Amazon Bedrock インターフェイスを引き続き使用できます。

  • Amazon S3 の耐久性とスケーラビリティを備えた長期ベクトルストレージ

この統合は、S3 Vectors のコストメリットが許容可能なクエリパフォーマンス要件と一致し、書き込まれたコンテンツやイメージを検索してインサイトを抽出する必要がある RAG アプリケーションを構築する組織に最適です。

サポートされている埋め込みモデル

S3 Vectors と Amazon Bedrock ナレッジベースの統合では、以下の埋め込みモデルがサポートされています。

  • amazon.titan-embed-text-v2:0 - テキストベースの埋め込み用

  • amazon.titan-embed-image-v1 - イメージおよびマルチモーダル埋め込み用

  • cohere.embed-english-v3 - 多言語および特殊なテキスト埋め込み用

前提条件とアクセス許可

S3 Vectors でナレッジベースを作成する前に、以下の条件がそろっていることを確認してください。

  • S3 Vectors と Amazon Bedrock サービスの両方に対する適切な IAM アクセス許可。S3 Vectors の IAM アクセス許可の詳細については、「S3 Vectors での ID およびアクセス管理」を参照してください。Amazon Bedrock ナレッジベースサービスロールが S3 Vectors にアクセスするための IAM アクセス許可の詳細については、「Amazon Bedrock ユーザーガイド」の「Permissions to access your vector store in Amazon S3 Vectors」を参照してください。

  • ナレッジベースへの取り込み用に準備されたソースドキュメント。

  • 埋め込みモデルの要件についての理解。

セキュリティ設定を設定する場合、必要な AWS サービスにアクセスするためのアクセス許可を Amazon Bedrock に付与する IAM ロールを選択できます。Amazon Bedrock にサービスロールを作成させることも、独自のカスタムロールを使用することもできます。カスタムロールを使用する場合、ベクトルバケットとベクトルインデックスへのアクセスをカスタムロールに制限するベクトルバケットポリシーを設定してください。

必要なアクセス許可と IAM ロールの詳細については、「Amazon Bedrock ユーザーガイド」の「Create a service role for Amazon Bedrock Knowledge Bases」を参照してください。サービスロールには、S3 Vectors と AWS KMS API オペレーションのアクセス許可も必要です。

S3 Vectors を使用したナレッジベースを作成する

2 つの方法で S3 Vectors を使用するナレッジベースを作成できます。

方法 1: Amazon Bedrock コンソールを使用する

Amazon Bedrock コンソールでナレッジベースを作成する場合、ベクトルストアオプションとして「S3 ベクトルバケット」を選択できます。2 つのセットアップオプションがあります。

  • 新しいベクトルストアをクイック作成 - Amazon Bedrock は S3 ベクトルバケットとベクトルインデックスを作成し、必要な設定を行います。デフォルトでは、ベクトルバケットは、Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3) を使用して暗号化されます。オプションで、AWS KMS を使用してバケットを暗号化できます。コンソールでの新しいベクトルストアをクイック作成の詳細については、「Amazon Bedrock ユーザーガイド」の「Create a knowledge base by connecting to a data source in Amazon Bedrock Knowledge Bases」を参照してください。

  • 作成したベクトルストアを選択 - 以前に作成したアカウントから既存の S3 ベクトルバケットとベクトルインデックスを選択します。Amazon Bedrock ナレッジベースコンソールで S3 ベクトルバケットとベクトルインデックスを作成する方法の詳細については、「Amazon Bedrock ユーザーガイド」の「Prerequisites for using a vector store you created for a knowledge base」の「S3 Vectors」タブを参照してください。

詳細な手順については、「Amazon Bedrock ユーザーガイド」の「Create a knowledge base by connecting to a data source in Amazon Bedrock Knowledge Bases」を参照してください。

方法 2: Amazon SageMaker Unified Studio を使用する

Amazon SageMaker AI Unified Studio の Amazon Bedrock により S3 Vectors を使用してナレッジベースを作成し、管理することもできます。これにより、ナレッジベースを使用する AI アプリケーションを構築し、テストするための統合開発環境が提供されます。

SageMaker AI Unified Studio の Amazon Bedrock は、統合されたノートブック機能を必要とし、複数の AWS ML および分析サービス間で作業するユーザー向けに設計されています。生成 AI アプリケーションを構築するときに、S3 ベクトルバケットをすばやく作成し、ナレッジベースのベクトルストアとして設定できます。

SageMaker AI Unified Studio の Amazon Bedrock で S3 Vectors を使用する方法の詳細については、「SageMaker AI Unified Studio ユーザーガイド」の「Add a data source to your Amazon Bedrock app」を参照してください。

ナレッジベースの管理とクエリ

データの同期と管理

Amazon Bedrock ナレッジベースは、データソースとベクトルの埋め込みを同期させるための取り込みジョブオペレーションを提供します。データソースを同期すると、Amazon Bedrock は各ドキュメントをスキャンし、ベクトルストアにインデックスが作成されたかどうかを確認します。IngestKnowledgeBaseDocuments オペレーションを使用して、直接ベクトルストアにドキュメントのインデックスを作成することもできます。ベストプラクティスは、データ同期を確実に行うために、ナレッジベースごとに個別のベクトルストアを作成することです。

ナレッジベースまたはデータソースリソースを削除する場合、Amazon Bedrock は Delete (デフォルト) と Retain の 2 つのデータ削除ポリシーを提供します。Delete ポリシーを選択すると、ベクトルインデックスとベクトルバケットのベクトルは自動的に削除されます。

クエリと取得

ナレッジベースを設定した後、以下を実行できます。

  • Retrieve API オペレーションを使用して、ソースデータからチャンクを取得します。

  • RetrieveAndGenerate API オペレーションを使用して、取得したチャンクに基づいてレスポンスを生成します。

  • Amazon Bedrock コンソールで直接、クエリをテストします。

元のソースデータへの引用を含めてレスポンスが返されます。

制限

S3 Vectors と Amazon Bedrock ナレッジベースを使用することが必要な場合、以下の制限を理解しておきます。

  • セマンティック検索のみ: S3 Vectors はセマンティック検索をサポートしていますが、ハイブリッド検索機能はサポートしていません。

  • S3 Vectors のサイズ制限: 各ベクトルには、メタデータの合計サイズ制限とフィルタリング可能なメタデータのサイズ制限があり、カスタムメタデータとフィルタリングオプションを制限することがあります。メタデータとフィルタリング可能なメタデータのサイズ制限の詳細については、「制限と制約」を参照してください。

  • チャンク化戦略の制約: メタデータのサイズ制限により、コンテンツを最大 500 トークンのチャンクに分割するモデルに限定されます。

  • 浮動小数点ベクトルのみ: バイナリベクトルの埋め込みはサポートされていません。

Amazon Bedrock ナレッジベースの使用に関する包括的なガイダンスについては、「Amazon Bedrock ユーザーガイド」の「Retrieve data and generate AI responses with Amazon Bedrock Knowledge Bases」を参照してください。