벡터 버킷에서 벡터 인덱스 만들기
참고
Amazon S3 Vectors는 Amazon Simple Storage Service의 미리 보기 릴리스이며 변경될 수 있습니다.
참고
벡터 인덱스 구성 파라미터를 신중하게 선택합니다. 벡터 인덱스를 만든 후에는 벡터 인덱스 이름, 차원, 거리 지표 또는 필터링할 수 없는 메타데이터 키를 업데이트할 수 없습니다. 이러한 값을 변경하려면 새 벡터 인덱스를 만들어야 합니다.
벡터 인덱스는 효율적인 유사성 검색을 위해 벡터 데이터를 저장하고 구성하는 벡터 버킷 내의 리소스입니다. 벡터 인덱스를 만들 때 차원, 유사성 계산에 사용되는 거리 지표, 필터링 불가능한 메타데이터 키(선택 사항)와 같이 해당 인덱스의 모든 벡터가 공유해야 하는 특성을 정의합니다. 벡터 인덱스 이름 지정 요구 사항, 차원 요구 사항, 거리 지표 옵션 및 필터링 불가능한 메타데이터 키에 대한 자세한 내용은 한계 및 제한 섹션을 참조하세요.
벡터 인덱스는 기존 벡터 버킷 내에서 만들어야 하며, 만든 후 수정할 수 없는 특정 구성 파라미터가 필요합니다.
벡터 인덱스 생성
-
https://console.aws.amazon.com/s3/
에서 S3 콘솔을 엽니다. -
탐색 창에서 벡터 버킷을 선택합니다.
-
벡터 버킷 목록에서 벡터 인덱스를 만들려는 버킷의 이름을 선택합니다.
-
그런 다음 벡터 인덱스 생성을 선택합니다.
-
벡터 인덱스 이름에 벡터 인덱스의 이름을 입력합니다.
벡터 인덱스 이름은 벡터 버킷 내에서 고유해야 합니다. 인덱스 이름은 3~63자 이내로 작성해야 합니다. 유효한 문자는 소문자(a~z), 숫자(0~9), 하이픈(-), 점(.)입니다. 벡터 인덱스 이름 지정 요구 사항에 대한 자세한 내용은 한계 및 제한 섹션을 참조하세요.
-
차원에 각 벡터의 값 수를 입력합니다.
참고
-
차원 값은 각 벡터에 포함될 숫자 값의 수를 결정합니다.
-
이 인덱스에 추가된 모든 벡터에는 정확히 이 수의 값이 있어야 합니다.
-
차원은 1에서 4,096 사이여야 합니다.
-
차원이 클수록 스토리지 공간이 더 많이 필요합니다.
-
임베딩 모델의 출력 차원에 따라를 선택합니다.
차원 요구 사항에 대한 자세한 내용은 한계 및 제한 섹션을 참조하세요.
-
-
거리 지표에서 다음 옵션 중 하나를 선택합니다.
-
코사인 - 벡터 간 각도의 코사인을 측정합니다. 정규화된 벡터 및 방향이 크기보다 중요한 경우에 가장 적합합니다.
-
유클리드 - 벡터 간의 직선 거리를 측정합니다. 방향과 크기가 모두 중요한 경우에 가장 적합합니다.
-
-
(선택 사항) 필터링 불가능한 메타데이터 아래에서 저장되지만 필터링에 사용되지 않는 메타데이터 키를 구성합니다.
필터링 불가능한 메타데이터 키 추가:
-
키 추가를 선택합니다.
-
키 이름(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" } } ] }
응답에는 인덱스 생성 중에 필터링 가능 또는 필터링 불가능으로 지정되었는지 여부에 관계없이 벡터와 연결된 모든 메타데이터가 포함됩니다.