ベクトルバケットでのベクトルインデックスの作成
注記
Amazon S3 Vectors は Amazon Simple Storage Service のプレビューリリースであり、変更される可能性があります。
注記
ベクトルインデックス設定パラメータを慎重に選択してください。ベクトルインデックスを作成した後、ベクトルインデックス名、ディメンション、距離メトリクス、またはフィルタリング不可能なメタデータキーを更新することはできません。これらの値を変更するには、新しいベクトルインデックスを作成する必要があります。
ベクトルインデックスは、ベクトルデータを保存および整理して効率的な類似度検索を行うベクトルバケット内のリソースです。ベクトルインデックスを作成するときは、ディメンション、類似度の計算に使用される距離メトリクス、オプションでフィルタリングできないメタデータキーなど、そのインデックス内のすべてのベクトルが共有する必要がある特性を定義します。ベクトルインデックスの命名要件、ディメンション要件、距離メトリクスオプション、フィルタリングできないメタデータキーの詳細については、「制限と制約」を参照してください。
ベクトルインデックスは既存のベクトルバケット内に作成する必要があり、作成後に変更できない特定の設定パラメータが必要です。
ベクトルインデックスを作成するには
-
Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
ナビゲーションペインで、ベクトルバケットを選択します。
-
ベクトルバケットのリストで、ベクトルインデックスを作成するバケットの名前を選択します。
-
[ベクトルインデックスを作成] を選択します。
-
[ベクトルインデックス名] に、ベクトルインデックスの名前を入力します。
ベクトルインデックス名は、ベクトルバケット内で一意である必要があります。名前は 3~63 文字にしてください。有効な文字は、小文字 (a~z)、数字 (0~9)、ハイフン (-)、ドット (.) です。ベクトルインデックスの命名要件の詳細については、「制限と制約」を参照してください。
-
[ディメンション] には、各ベクトルの値の数を入力します。
注記
-
[ディメンション] の値は、各ベクトルに含まれる数値の数を決定します。
-
このインデックスに追加されるすべてのベクトルには、正確にこの数の値が必要です。
-
ディメンションは 1~4096 である必要があります。
-
より大きなディメンションには、より多くのストレージ領域が必要です。
-
埋め込みモデルの出力ディメンションに基づいて選択します。
要件の詳細については、「制限と制約」を参照してください。
-
-
[距離メトリクス] で次のいずれかのオプションを選択します。
-
コサイン – ベクトル間の角度のコサインを測定します。正規化されたベクトル、および方向がマグニチュードよりも重要な場合に最適
-
ユークリッド – ベクトル間の直線距離を測定します。方向と大きさの両方が重要な場合に最適です。
-
-
(オプション) [フィルタリングできないメタデータ] で、保存されるがフィルタリングには使用しないメタデータキーを設定します。
フィルタリングできないメタデータキーを追加するには
-
[キーの追加] を選択します。
-
キー名 (1~63 文字で、このベクトルインデックス内で一意) を入力します。
-
繰り返してキーを追加します (最大 10 個のキー)。
注記
ベクトルインデックスの作成後にベクトルデータを挿入するときに、フィルタリング可能なメタデータをキーと値のペアとして各ベクトルにアタッチできます。デフォルトでは、ベクトルにアタッチされているすべてのメタデータキーはフィルタリング可能で、類似度クエリでフィルターとして使用できます。ベクトルインデックスの作成中にフィルタリング不可として指定されたメタデータキーのみがフィルタリングから除外されます。合計メタデータ制約とフィルタリング可能なメタデータ制約の両方を含む、ベクトルあたりのメタデータサイズ制限の詳細については、「制限と制約」を参照してください。
-
-
設定を注意深く確認します。
注記
一部の設定は、作成後に変更できません。
-
[ベクトルインデックスを作成] を選択します。
ベクトルバケットにベクトルインデックスを作成するには、次のコマンド例を使用し、user input placeholders
を独自の情報に置き換えます。
例 1: フィルタリングできないメタデータキーを使用したベクトルインデックスの作成
aws s3vectors create-index \ --vector-bucket-name "
amzn-s3-demo-vector-bucket
" \ --index-name "idx
" \ --data-type "float32" \ --dimension1
\ --distance-metric "cosine
" \ --metadata-configuration '{"nonFilterableMetadataKeys":["nonFilterableKey1
"]}'
例 2: フィルタリングできないメタデータキーなしでベクトルインデックスを作成する
aws s3vectors create-index \ --vector-bucket-name "
amzn-s3-demo-vector-bucket
" \ --index-name "idx2
" \ --data-type "float32" \ --dimension4096
\ --distance-metric "euclidean
"
さらに、すべてのメタデータ (フィルタリング可能とフィルタリング不可の両方) は GetVectors
、ListVectors
、または QueryVectors
API オペレーションを使用して同じ方法で取得されます。次の CLI コマンドは、メタデータ (フィルタリングできないメタデータを含む) を含むベクトルを取得する方法を示しています。
リクエストの例:
aws s3vectors get-vectors \ --vector-bucket-name "
amzn-s3-demo-vector-bucket
" \ --index-name "idx
" \ --keys '["vec1", "vec3"]' \ --return-data \ --return-metadata \
レスポンスの例:
{ "vectors": [ { "key": "vec1", "data": { "float32": [ 0.10000000149011612, 0.20000000298023224, 0.30000001192092896, 0.4000000059604645, 0.5 ] }, "metadata": { "category": "test", "text": "First vector" } }, { "key": "vec3", "data": { "float32": [ 0.6000000238418579, 0.699999988079071, 0.800000011920929, 0.8999999761581421, 1.0 ] }, "metadata": { "text": "Third vector", "category": "test" } } ] }
レスポンスには、インデックスの作成時にフィルタリング可能と指定されたかどうかにかかわらず、ベクトルに関連付けられたすべてのメタデータが含まれます。