벡터 인덱스

벡터 인덱스 (Vector indexes)

벡터 인덱스가 무엇이고 만들 때 어떤 파라미터를 정해야 하는지 설명하는 문서예요.

출처: Vector indexes

본문

벡터 인덱스 구성 파라미터는 신중하게 선택하세요. 벡터 인덱스를 만든 뒤에는 인덱스 이름, 차원(dimension), 거리 메트릭(distance metric), 비필터 가능 메타데이터 키(non-filterable metadata keys)를 업데이트할 수 없어요. 이 값들 중 하나라도 바꾸려면 새 벡터 인덱스를 만들어야 해요.

벡터 인덱스는 벡터 버킷 안의 리소스로, 효율적인 유사도 검색을 위해 벡터 데이터를 저장하고 조직화해요. 벡터 인덱스를 만들 때는 거리 메트릭(Cosine 또는 Euclidean), 벡터가 가져야 할 차원 수, 그리고 선택적으로 유사도 질의 중 필터링에서 제외하려는 메타데이터 필드 목록을 지정해요.

버킷당 벡터 인덱스 제한, 인덱스당 벡터 제한, 벡터당 차원 제한에 대한 자세한 내용은 Limitations and restrictions을 참고해 주세요.

각 벡터 인덱스에는 고유한 Amazon Resource Name(ARN)이 있어요. 벡터 인덱스의 ARN 형식은 다음과 같아요.

arn:aws:s3vectors:region:account-id:bucket/bucket-name/index/index-name

벡터 인덱스 이름 요구 사항 (Vector index naming requirements)

  • 벡터 인덱스 이름은 벡터 버킷 안에서 유일해야 해요.
  • 벡터 인덱스 이름은 3자에서 63자 사이여야 해요.
  • 유효한 문자는 소문자(a-z), 숫자(0-9), 하이픈(-), 점(.)이에요.
  • 벡터 인덱스 이름은 문자나 숫자로 시작하고 끝나야 해요.

차원 요구 사항 (Dimension requirements)

차원(dimension)은 벡터 안의 값의 개수예요. 인덱스에 추가되는 모든 벡터는 정확히 이 값의 개수를 가져야 해요.

  • 차원은 1에서 4096 사이의 정수여야 해요.
  • 차원이 클수록 더 많은 저장 공간이 필요해요.

거리 메트릭 옵션 (Distance metric options)

거리 메트릭은 벡터 사이의 유사도가 어떻게 계산되는지를 지정해요. 벡터 임베딩을 만들 때는 임베딩 모델이 권장하는 거리 메트릭을 선택해야 더 정확한 결과를 얻을 수 있어요.

  • Cosine – 벡터 사이의 각도의 코사인을 측정해요. 정규화된 벡터에, 그리고 방향이 크기보다 더 중요할 때 가장 좋아요.
  • Euclidean – 벡터 사이의 직선 거리를 측정해요. 방향과 크기 둘 다 중요할 때 가장 좋아요.

비필터 가능 메타데이터 키 (Non-filterable metadata keys)

메타데이터 키를 사용하면 저장·검색 중에 벡터에 키-값 쌍으로 추가 정보를 붙일 수 있어요. 기본적으로 모든 메타데이터는 필터 가능(filterable)해서 질의 결과를 필터링하는 데 쓸 수 있어요. 하지만 특정 메타데이터 키를 필터링에 쓰지 않고 벡터와 함께 정보를 저장하고 싶다면, 그 키를 비필터 가능으로 지정할 수 있어요.

기본 메타데이터 키와 달리, 이 키들은 질의 필터로 쓸 수 없어요. 비필터 가능 메타데이터 키는 검색·질의·필터링은 불가능하지만 조회는 가능해요. 인덱스를 찾은 뒤에만 접근할 수 있어요.

비필터 가능 메타데이터 키를 사용하면 검색 결과와 함께 조회하고 싶지만 필터링에는 필요 없는 추가 컨텍스트로 벡터를 풍부하게 만들 수 있어요. 흔한 예는 텍스트를 벡터로 임베딩할 때 원문 텍스트 자체를 비필터 가능 메타데이터로 포함하는 경우예요. 이렇게 하면 필터 가능 메타데이터 크기 제한을 늘리지 않고도 벡터 검색 결과와 함께 원문 텍스트를 돌려줄 수 있어요. 또 다른 예로는 생성 타임스탬프, 소스 URL, 참고용 설명 정보를 저장하는 경우가 있어요. 비필터 가능 메타데이터 키는 벡터를 조회할 때 접근할 수 있지만, 기본 메타데이터 키와 달리 질의 필터로는 쓸 수 없어요.

비필터 가능 메타데이터 키의 요구 사항은 다음과 같아요.

  • 비필터 가능 메타데이터 키는 벡터 인덱스 안에서 유일해야 해요.
  • 비필터 가능 메타데이터 키는 1자에서 63자 사이여야 해요.
  • 벡터 인덱스를 만든 뒤에는 비필터 가능 메타데이터 키를 수정할 수 없어요.
  • S3 Vectors는 인덱스당 최대 10개의 비필터 가능 메타데이터 키를 지원해요.

비필터 가능 메타데이터 키에 대한 자세한 내용은 Non-filterable metadata를 참고해 주세요.

더 알아보기 (Learn more)