在向量儲存貯體中建立向量索引 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在向量儲存貯體中建立向量索引

注意

Amazon S3 Vectors 為 Amazon Simple Storage Service 的預覽版本,可能會有所變更。

注意

請仔細選擇向量索引組態參數。建立向量索引後,您無法更新向量索引名稱、維度、距離指標或無法篩選的中繼資料索引鍵。若要變更任何這些值,您必須建立新的向量索引。

向量索引是向量儲存貯體中的資源,可存放和組織向量資料,以進行有效率的相似性搜尋。建立向量索引時,您可以定義該索引中所有向量必須共用的特性,例如維度、用於相似度計算的距離指標,以及選擇性不可篩選的中繼資料索引鍵。如需向量索引命名需求、維度需求、距離指標選項和不可篩選中繼資料金鑰的詳細資訊,請參閱 限制

向量索引必須在現有的向量儲存貯體內建立,並需要建立後無法修改的特定組態參數。

建立向量索引

  1. 開啟位於 https://console.aws.amazon.com/s3/ 的 Amazon S3 主控台。

  2. 在導覽窗格中,選擇向量儲存貯體。

  3. 在向量儲存貯體清單中,選擇您要建立向量索引的儲存貯體名稱。

  4. 選擇建立向量索引

  5. 針對向量索引名稱,輸入向量索引的名稱。

    向量索引名稱在向量儲存貯體中必須是唯一的。索引名稱必須介於 3 到 63 個字元之間。有效字元為小寫字母 (a-z)、數字 (0-9)、連字號 (-) 和點 (.)。如需向量索引命名需求的詳細資訊,請參閱 限制

  6. 針對維,輸入每個向量中的值數目。

    注意
    • Dimension 的值決定每個向量將包含多少數值。

    • 新增至此索引的所有向量必須具有此數量的值。

    • 維度必須介於 1 到 4096 之間。

    • 較大的維度需要更多的儲存空間。

    • 根據內嵌模型的輸出維度選擇 。

    如需維度需求的詳細資訊,請參閱 限制

  7. 針對距離指標,選擇下列其中一個選項:

    • Cosine – 測量向量之間角度的餘弦。最適合標準化向量,以及當方向超過幅度時

    • Euclidean – 測量向量之間的直線距離。當方向和大小都很重要時最佳。

  8. (選用) 在無法篩選的中繼資料下,設定要存放但不用於篩選的中繼資料金鑰:

    若要新增無法篩選的中繼資料金鑰:

    1. 選擇 Add key (新增金鑰)

    2. 輸入索引鍵名稱 (1-63 個字元,在此向量索引中是唯一的)。

    3. 重複 以新增其他金鑰 (最多 10 個金鑰)。

    注意

    當您在建立向量索引之後插入向量資料時,您可以將可篩選的中繼資料做為索引鍵/值對連接至每個向量。根據預設,連接至向量的所有中繼資料金鑰都是可篩選的,並且可以做為相似性查詢中的篩選條件。只有在向量索引建立期間指定為不可篩選的中繼資料金鑰,才會排除在篩選之外。如需每個向量中繼資料大小限制的詳細資訊,包括總中繼資料限制和可篩選中繼資料限制,請參閱 限制

  9. 請仔細檢閱您的組態。

    注意

    這些設定無法在建立後變更。

  10. 選擇建立向量索引

若要在向量儲存貯體中建立向量索引,請使用下列範例命令user input placeholders,並以您自己的資訊取代 。

範例 1:使用無法篩選的中繼資料金鑰建立向量索引

aws s3vectors create-index \ --vector-bucket-name "amzn-s3-demo-vector-bucket" \ --index-name "idx" \ --data-type "float32" \ --dimension 1 \ --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" \ --dimension 4096 \ --distance-metric "euclidean"

此外,使用 GetVectorsListVectorsQueryVectors 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" } } ] }

回應將包含與向量相關聯的所有中繼資料,無論其在索引建立期間被指定為可篩選還是不可篩選。