재현율: 검색이 지정된 쿼리와 관련된 모든 항목을 얼마나 효과적으로 검색하는지 정의합니다. 예를 들어 데이터베이스의 항목을 각각 나타내는 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은 유사성을 기반으로 기존 고객 데이터 포인트를 작은 그룹으로 나눕니다. |
|
AlloyDB Omni의 일반적인 ANN 기반 벡터 색인 유형 두 가지는 ScaNN과 HNSW입니다. 다음 가이드라인을 사용하여 사용 사례에 가장 적합한 색인 유형을 결정하세요.
| 색인 유형 | 사용하는 경우 | 이점 | 열 기반 엔진 가속 |
| ScaNN |
일반적으로 저차원 데이터 또는 메모리를 초과하는 대규모 데이터 세트에 적합합니다. 벡터 100억 개까지 확장 가능 |
표준 PostgreSQL의 HNSW에 비해 다음과 같은 이점이 있습니다.
|
ScaNN 색인을 사용한 벡터 검색은 AlloyDB Omni 열 기반 엔진으로 가속화할 수 있습니다. 자세한 내용은 열 기반 엔진으로 벡터 검색 가속화를 참조하세요. |
| HNSW |
일반적으로 인메모리 캐시에 대부분 들어가는 고차원 데이터에 적합합니다. 1,000만~2,000만 개의 벡터로 확장 가능 |
AlloyDB Omni의 pgvector 열 기반 엔진 가속화 HNSW 색인은 표준 PostgreSQL보다 최대 5배 더 빠른 벡터 쿼리를 제공합니다. | HNSW 색인을 사용한 벡터 검색은 AlloyDB Omni 열 기반 엔진으로 가속화할 수 있습니다. 자세한 내용은 열 기반 엔진으로 벡터 검색 가속화를 참조하세요. |
벡터 검색 쿼리의 성능을 최적화하려면 벡터 색인을 만드는 것이 좋습니다. 유사성 검색에 ANN 색인이 사용되는 방식에 대한 자세한 내용은 ScaNN을 사용하여 색인 만들기를 참조하세요.
필터링된 KNN 검색을 가속화하려면 열 기반 엔진을 사용합니다.