AlloyDB AI에서 벡터 색인 선택

이 페이지에서는 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을 사용하여 색인 및 쿼리 벡터 만들기를 참고하세요.

다음 단계