在向量儲存貯體中建立向量索引
注意
Amazon S3 Vectors 目前為 Amazon Simple Storage Service 的預覽版,可能會有所變更。
注意
請仔細選擇向量索引組態參數。建立向量索引後,便無法更新向量索引名稱、維度、距離指標,或無法篩選的中繼資料索引鍵。若要變更這些值,則必須建立新的向量索引。
向量索引是向量儲存貯體內的資源,可儲存和組織向量資料以進行有效的相似度搜尋。建立向量索引時,您可以定義該索引中所有向量必須共用的特性,例如維度、用於相似度計算的距離指標,以及選用之不可篩選的中繼資料索引鍵。如需有關向量索引命名要求、維度要求、距離指標選項和不可篩選中繼資料索引鍵的詳細資訊,請參閱 限制。
向量索引必須在現有的向量儲存貯體內建立,而且需要在建立後便無法修改的特定組態參數。
建立向量索引
-
開啟位於 https://console.aws.amazon.com/s3/
的 Amazon S3 主控台。 -
在導覽窗格中,選擇向量儲存貯體。
-
在向量儲存貯體清單中,選擇您要建立向量索引的儲存貯體名稱。
-
選擇建立向量索引。
-
針對向量索引名稱,輸入向量索引的名稱。
向量索引名稱在向量儲存貯體中必須是唯一的。索引名稱長度必須介於 3 到 63 個字元之間。有效字元為小寫字母 (a-z)、數字 (0-9)、連字號 (-) 和點 (.)。如需向量索引命名要求的詳細資訊,請參閱 限制。
-
針對維度,輸入每個向量中的值數目。
注意
-
維度的值決定了每個向量將包含的數值。
-
新增至此索引的所有向量,必須具有此數目的值。
-
維度必須介於 1 到 4096 之間。
-
較大的維度需要更多的儲存空間。
-
根據您的嵌入模型輸出維度做選擇。
如需有關維度要求的詳細資訊,請參閱 限制。
-
-
針對距離指標,選擇以下其中一個選項:
-
餘弦 - 測量向量之間角度的餘弦。標準化向量以及當方向比大小重要時的最佳選擇
-
歐氏幾何 - 測量向量之間的直線距離。當方向和大小都很重要時的最佳選擇。
-
-
(選用) 在不可篩選的中繼資料下,設定要儲存但不用於篩選的中繼資料索引鍵:
新增不可篩選的中繼資料索引鍵:
-
選擇 Add key (新增金鑰)。
-
輸入索引鍵名稱 (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" } } ] }
回應內容包含與向量相關聯的所有中繼資料,無論其在建立索引期間是否指定為可篩選或不可篩選。