

# S3 Vectors と Amazon Bedrock ナレッジベースを使用する
<a name="s3-vectors-bedrock-kb"></a>

S3 Vectors は [Amazon Bedrock ナレッジベース](https://aws.amazon.com/bedrock/knowledge-bases/)および [Amazon SageMaker AI Unified Studio](https://aws.amazon.com/sagemaker/unified-studio/) と統合され、検索拡張生成 (RAG) アプリケーションのベクトルストレージのコストを簡素化し、削減します。

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

**Topics**
+ [インテグレーションの概要](#s3-vectors-bedrock-kb-overview)
+ [どのようなときにこの統合を使うか](#s3-vectors-bedrock-kb-when)
+ [サポートされている埋め込みモデル](#s3-vectors-bedrock-kb-models)
+ [前提条件とアクセス許可](#s3-vectors-bedrock-kb-prereq)
+ [S3 Vectors を使用したナレッジベースを作成する](#s3-vectors-bedrock-kb-create)
+ [ナレッジベースの管理とクエリ](#s3-vectors-bedrock-kb-manage)
+ [制限事項](#s3-vectors-bedrock-kb-limits)

## インテグレーションの概要
<a name="s3-vectors-bedrock-kb-overview"></a>

Amazon Bedrock でナレッジベースを作成する場合、ベクトルストアとして S3 ベクトルを選択できます。この統合により、次のことが可能になります。
+ 大規模なベクトルデータセットを持つ RAG アプリケーションの**コスト削減**。
+ Amazon Bedrock のフルマネージド RAG ワークフローとの**シームレスな統合**。
+ Amazon Bedrock サービスによって処理される**自動ベクトル管理**。
+ ナレッジベース取得オペレーションで、**コールドクエリレイテンシーは 1 秒未満、ウォームクエリレイテンシーはわずか 100 ミリ秒**。

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

## どのようなときにこの統合を使うか
<a name="s3-vectors-bedrock-kb-when"></a>

以下が必要な場合は、S3 Vectors と Amazon Bedrock ナレッジベースを使用することを検討してください。
+ 1 秒未満のクエリレイテンシーがアプリケーション要件を満たしている大規模なデータセットの**費用対効果の高いベクトルストレージ**。
+ マニュアル、ポリシー、ビジュアルコンテンツの検索などのユースケースの**テキストおよびイメージベースのドキュメントの取得**。
+ 超低レイテンシーレスポンスよりもストレージコストの最適化を優先する **RAG アプリケーション**。
+ S3 Vectors API オペレーションを直接学習する必要のない**マネージドベクトル**オペレーション – 馴染みのある Amazon Bedrock インターフェイスを引き続き使用できます。
+ Amazon S3 の耐久性とスケーラビリティを備えた**長期ベクトルストレージ**

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

## サポートされている埋め込みモデル
<a name="s3-vectors-bedrock-kb-models"></a>

「*Amazon Bedrock ユーザーガイド*」の「[ベクトル埋め込みでサポートされているモデル](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-supported.html#knowledge-base-supported-embeddings)」を参照してください。

## 前提条件とアクセス許可
<a name="s3-vectors-bedrock-kb-prereq"></a>

S3 Vectors でナレッジベースを作成する前に、以下の条件がそろっていることを確認してください。
+ S3 Vectors と Amazon Bedrock サービスの両方に対する適切な IAM アクセス許可。S3 Vectors の IAM アクセス許可の詳細については、「[S3 Vectors での ID およびアクセス管理](s3-vectors-access-management.md)」を参照してください。Amazon Bedrock ナレッジベースサービスロールが S3 Vectors にアクセスするための IAM アクセス許可の詳細については、「*Amazon Bedrock ユーザーガイド*」の「[Permissions to access your vector store in Amazon S3 Vectors](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html#kb-permissions-s3vectors)」を参照してください。
+ ナレッジベースへの取り込み用に準備されたソースドキュメント。
+ 埋め込みモデルの要件についての理解。

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

必要なアクセス許可と IAM ロールの詳細については、「*Amazon Bedrock ユーザーガイド*」の「[Create a service role for Amazon Bedrock Knowledge Bases](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)」を参照してください。サービスロールには、S3 Vectors と AWS KMS API オペレーションのアクセス許可も必要です。

## S3 Vectors を使用したナレッジベースを作成する
<a name="s3-vectors-bedrock-kb-create"></a>

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

### 方法 1: Amazon Bedrock コンソールを使用する
<a name="s3-vectors-bedrock-kb-create-console"></a>

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](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-create.html)」を参照してください。
+ **作成したベクトルストアを選択** - 以前に作成したアカウントから既存の S3 ベクトルバケットとベクトルインデックスを選択します。Amazon Bedrock ナレッジベースコンソールで S3 ベクトルバケットとベクトルインデックスを作成する方法の詳細については、「*Amazon Bedrock ユーザーガイド*」の「[Prerequisites for using a vector store you created for a knowledge base](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup.html)」の「S3 Vectors」タブを参照してください。

詳細な手順については、「*Amazon Bedrock ユーザーガイド*」の「[Create a knowledge base by connecting to a data source in Amazon Bedrock Knowledge Bases](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-create.html)」を参照してください。

### 方法 2: Amazon SageMaker Unified Studio を使用する
<a name="s3-vectors-bedrock-kb-create-studio"></a>

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

[SageMaker AI Unified Studio の Amazon Bedrock](https://aws.amazon.com/bedrock/unifiedstudio/) は、統合されたノートブック機能を必要とし、複数の 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](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/data-sources.html)」を参照してください。

## ナレッジベースの管理とクエリ
<a name="s3-vectors-bedrock-kb-manage"></a>

### データの同期と管理
<a name="s3-vectors-bedrock-kb-manage-sync"></a>

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

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

### クエリと取得
<a name="s3-vectors-bedrock-kb-manage-query"></a>

ナレッジベースを設定した後、以下を実行できます。
+ [Retrieve](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) API オペレーションを使用して、ソースデータから**チャンクを取得**します。
+ [RetrieveAndGenerate](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) API オペレーションを使用して、取得したチャンクに基づいて**レスポンスを生成**します。
+ Amazon Bedrock コンソールで直接、**クエリをテスト**します。

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

## 制限事項
<a name="s3-vectors-bedrock-kb-limits"></a>

S3 Vectors と Amazon Bedrock ナレッジベースを使用することが必要な場合、以下の制限を理解しておきます。
+ **セマンティック検索のみ**: S3 Vectors はセマンティック検索をサポートしていますが、ハイブリッド検索機能はサポートしていません。
+ **S3 Vectors のサイズ制限**: 各ベクトルには、メタデータの合計サイズ制限とフィルタリング可能なメタデータのサイズ制限があり、カスタムメタデータとフィルタリングオプションを制限することがあります。Amazon Bedrock ナレッジベースでベクトルストアとして S3 Vectors を使用する場合、ベクトルごとに最大 1KB のカスタムメタデータと 35 個のメタデータキーをアタッチできます。
+ **チャンク化戦略の制約**: Amazon Bedrock ナレッジベースの階層チャンキングで非常に多くのトークン数を使用する場合、親子チャンク関係と階層コンテキストがフィルタリング不可能なメタデータとして S3 Vectors に保存されるため、最大メタデータのサイズ制限を超える可能性があります。ベクトルあたりのメタデータサイズ制限の詳細については、「[制限と制約](s3-vectors-limitations.md)」を参照してください。
+ **浮動小数点ベクトルのみ**: バイナリベクトルの埋め込みはサポートされていません。

Amazon Bedrock ナレッジベースの使用に関する包括的なガイダンスについては、「*Amazon Bedrock ユーザーガイド*」の「[Retrieve data and generate AI responses with Amazon Bedrock Knowledge Bases](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html)」を参照してください。