AlloyDB AI에서 벡터 색인 선택

문서 버전을 선택합니다.

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

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

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

검색 전략 선택

AlloyDB Omni에서 벡터 검색을 수행할 때는 다음 검색 전략 중 하나를 선택합니다.

검색 전략 설명 사용 사례
K-최근접 이웃(KNN)

지정된 쿼리 데이터 포인트에 대한 k-최근접 이웃 데이터 포인트를 찾는 알고리즘입니다. 색인을 만들지 않고 벡터 검색을 수행하면 기본적으로 KNN 검색이 수행됩니다.

KNN 검색의 성능을 더욱 향상시키려면 열 기반 엔진의 열 스토어에 임베딩 열과 쿼리와 관련된 다른 열을 추가합니다. 열을 수동으로 추가하거나 자동 열 지정을 사용하여 열을 추가할 수 있습니다.

  • 애플리케이션이 정확도에 매우 민감하며 정확한 최근접 일치 항목이 필요합니다.
  • 벡터가 수만 개 있습니다.
근사 최근접 이웃(ANN) 가장 가까운 데이터 포인트를 대략적으로 찾는 알고리즘입니다. ANN은 유사성을 기반으로 기존 고객 데이터 포인트를 작은 그룹으로 나눕니다.
  • 애플리케이션을 사용하려면 지연 시간이 짧아야 합니다.
  • 벡터가 100,000개를 초과합니다.

AlloyDB Omni의 일반적인 ANN 기반 벡터 색인 유형 두 가지는 ScaNN과 HNSW입니다. 다음 가이드라인을 사용하여 사용 사례에 가장 적합한 색인 유형을 결정하세요.

색인 유형 사용하는 경우 이점 열 기반 엔진 가속
ScaNN

일반적으로 저차원 데이터 또는 메모리를 초과하는 대규모 데이터 세트에 적합합니다.

벡터 100억 개까지 확장 가능

표준 PostgreSQL의 HNSW에 비해 다음과 같은 이점이 있습니다.

  • 최대 6배 더 빠른 벡터 쿼리와 최대 10배 더 빠른 필터링된 벡터 검색 쿼리
  • 최대 16배 빠른 색인 생성
  • 최대 24배 높은 쓰기 처리량
  • 메모리를 최대 4배 적게 사용
ScaNN 색인을 사용한 벡터 검색은 AlloyDB Omni 열 기반 엔진으로 가속화할 수 있습니다. 자세한 내용은 열 기반 엔진으로 벡터 검색 가속화를 참조하세요.
HNSW

일반적으로 인메모리 캐시에 대부분 들어가는 고차원 데이터에 적합합니다.

1,000만~2,000만 개의 벡터로 확장 가능

AlloyDB Omni의 pgvector 열 기반 엔진 가속화 HNSW 색인은 표준 PostgreSQL보다 최대 5배 더 빠른 벡터 쿼리를 제공합니다. HNSW 색인을 사용한 벡터 검색은 AlloyDB Omni 열 기반 엔진으로 가속화할 수 있습니다. 자세한 내용은 열 기반 엔진으로 벡터 검색 가속화를 참조하세요.

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

필터링된 KNN 검색을 가속화하려면 열 기반 엔진을 사용합니다.

다음 단계