벡터 색인 선택

문서 버전을 선택합니다.

이 페이지에서는 AlloyDB AI 벡터 검색 전략을 설명하고 각 전략을 사용해야 하는 경우를 설명합니다. 기본적으로 AlloyDB는 k-최근접 이웃 검색(KNN)을 사용하여 쿼리와 유사한 벡터를 찾습니다. 벡터 색인은 근사 최근접 이웃(ANN)이라는 검색 전략을 구현합니다. 벡터 색인을 만들면 AlloyDB AI에서 KNN보다 성능이 더 우수한 ANN을 사용합니다. 벡터 색인을 선택할 때는 쿼리 지연 시간과 재현율의 균형을 맞춰야 합니다.

재현율: 검색이 지정된 쿼리와 관련된 모든 항목을 얼마나 효과적으로 검색하는지 정의합니다. 예를 들어 데이터베이스의 항목을 각각 나타내는 100개의 임베딩이 있다고 가정해 보겠습니다. 타겟 벡터로 임베딩을 쿼리하고 결과를 10개로 제한합니다. KNN 벡터 검색은 무작위 대입 계산 방법을 사용하여 정확한 가장 가까운 벡터 10개를 찾으므로 재현율이 100% 입니다. 벡터 검색 색인이 생성되거나 선택되지 않은 경우 AlloyDB AI는 기본적으로 이 방법을 사용합니다. PostgreSQL용 AlloyDB에서 벡터 색인을 만들면 일반적으로 ANN이 사용되는데, ANN은 더 빠른 검색을 위해 유사성에 따라 벡터를 파티셔닝할 수 있습니다. 따라서 ANN을 사용하면 앞의 예시에서 반환된 10개의 벡터가 거리가 가장 가까운 10개의 벡터가 아닐 수 있습니다. 검색된 10개의 벡터 중 8개만 실제로 쿼리 벡터에 가장 가까운 벡터라면, 재현율은 80%가 됩니다.

쿼리 지연 시간은 검색 결과가 생성되는 속도를 정의합니다. 예를 들어 지연 시간은 쿼리를 제출한 후 벡터를 반환하기 위해 검색에 소요된 시간을 기준으로 계산됩니다.

검색 전략 선택

AlloyDB에서 벡터 검색을 실행할 때는 다음 검색 전략 중 하나를 선택하세요.

검색 전략 설명 사용 사례
K-최근접 이웃(KNN) 주어진 쿼리 데이터 포인트에 대한 k-최근접 이웃 데이터 포인트를 찾는 알고리즘입니다. 색인을 만들지 않고 벡터 검색을 실행하면 기본적으로 KNN 검색이 실행됩니다.
  • 애플리케이션이 정확도에 매우 민감하며 정확한 최근접 일치 항목이 필요합니다.
  • 벡터가 100,000개 미만입니다.
근사 최근접 이웃(ANN) 가장 가까운 데이터 포인트를 대략적으로 찾는 알고리즘입니다. ANN은 유사성을 기반으로 기존 고객 데이터 포인트를 작은 그룹으로 나눕니다.
  • 애플리케이션에 짧은 지연 시간이 필요합니다.
  • 벡터가 100,000개를 초과합니다.

벡터 검색 쿼리의 성능을 최적화하려면 벡터 색인을 만드는 것이 좋습니다. 유사성 검색에 ANN 색인이 사용되는 방식에 대한 자세한 내용은 ScaNN을 사용하여 색인 생성 및 벡터 쿼리를 참조하세요.

다음 단계