벡터 검색을 처음부터 끝까지 구현하는 방법에 관한 단계별 튜토리얼은 벡터 검색 실행 방법에 관한 가이드를 참고하세요.
매개변수 미세 조정
다음 색인 및 쿼리 매개변수는 재현율과 초당 쿼리 수(QPS)의 적절한 균형을 찾기 위해 사용됩니다.
| 조정 파라미터 | 설명 | 옵션 유형 |
|---|---|---|
mode |
ScaNN 색인을 자동으로 조정된 색인 또는 수동으로 조정된 색인으로 정의합니다. 사용 가능한 옵션은 다음과 같습니다.
자세한 내용은 ScaNN 색인 만들기를 참조하세요. |
색인 생성 (선택사항) |
max_num_levels |
K-평균 클러스터링 트리의 최대 중심 수준 수입니다. 이 값을 설정하는 방법에 대한 안내는 ScaNN 색인 조정을 참조하세요.
사용할 수 있는 값은 다음과 같습니다.
|
색인 생성 (선택사항) |
num_leaves |
이 색인에 적용할 파티션 수입니다. PostgreSQL 17 이상의 경우 최댓값은 104857600입니다. PostgreSQL 16 이하의 경우 최댓값은 30000000입니다. 이 값을 선택하는 방법에 대한 자세한 내용은 ScaNN 색인 조정 및 ScaNN 색인 조정 권장사항을 참조하세요.
|
색인 생성 (수동 조정 색인에 필요) |
quantizer |
K-평균 트리에서 사용할 양자화기의 유형입니다. 기본값은 SQ8로 설정되어 있으며, 이를 통해 재현율 손실을 최소화하면서(일반적으로 1~2% 미만) 쿼리 성능을 개선할 수 있습니다.재현율이 99% 이상이어야 하는 경우 FLAT으로 설정하세요. |
색인 만들기 (선택사항) |
scann.enable_pca |
가능한 경우 임베딩 크기를 자동으로 줄이는 데 사용되는 차원 축소 기법인 주요 구성요소 분석(PCA)을 사용 설정합니다. 이 옵션은 기본적으로 사용 설정되어 있습니다. 재현율이 저하되는 경우 false로 설정하세요. |
색인 만들기 (선택사항) |
auto_maintenance |
데이터 세트가 증가할 때 AlloyDB Omni가 중심점을 분석 및 업데이트하고 큰 이상치 파티션을 분할하도록 ScaNN 색인을 자동으로 유지보수합니다. 이렇게 하면 QPS와 검색 결과가 자동으로 개선됩니다. 자세한 내용은 자동으로 색인 유지보수를 참조하세요. |
색인 생성 (선택사항) |
scann.pct_leaves_to_search |
벡터 색인이 검색하는 파티션 수를 자동으로 관리합니다. 자세한 내용은 파티션 검색 비율을 참조하세요. | |
scann.num_leaves_to_search
|
검색할 파티션의 절대 수입니다. 이렇게 하면 쿼리 재현율과 QPS 간에 적절한 균형을 유지할 수 있습니다. 기본값은 값이 클수록 쿼리 재현율이 향상되지만 QPS는 낮아집니다. 마찬가지로 값이 작을수록 쿼리 재현율은 낮아지지만 QPS는 향상됩니다. |
쿼리 런타임 (선택사항) |
scann.pre_reordering_num_neighbors
|
초기 검색에서 후보 집합을 식별한 후 재정렬 단계에서 고려할 후보 이웃의 수를 지정합니다. 이 파라미터를 쿼리에서 반환할 이웃 수보다 큰 값으로 설정하세요. 값이 높을수록 재현율이 향상되지만 QPS는 낮아집니다.
기본값은 |
쿼리 런타임 (선택사항) |
scann.num_search_threads |
멀티 스레드 검색의 검색 스레드 수입니다. 이렇게 하면 지연 시간에 민감한 애플리케이션에서 ScaNN ANN 검색에 둘 이상의 스레드를 사용하여 단일 쿼리 지연 시간을 줄일 수 있습니다. 데이터베이스가 이미 CPU에 바인딩된 경우라면 이 설정으로 단일 쿼리 지연 시간이 개선되지 않습니다. 기본값은 2입니다. |
쿼리 런타임 (선택사항) |
|
relaxed_order로 설정하면 데이터베이스 플래그가 불충분한 재현율을 해결합니다. 쿼리의 관측된 재현율이 목표 재현율보다 낮으면 재현율이 부족할 수 있으며, 이는 필터를 사용할 때 발생할 가능성이 더 높습니다. 이 설정은 충분한 수의 결과가 발견될 때까지 벡터 스캔이 num_leaves_to_search 한도를 초과하여 계속 검색하도록 허용하여 목표 재현율을 달성하는 데 도움이 됩니다. |
쿼리 런타임 (선택사항) |
|
이 데이터베이스 플래그는 scann.satisfy_limit가 사용 설정된 상태에서 실행하는 쿼리에 대해 방문할 수 있는 총 리프 비율의 상한을 설정합니다. 이는 사용 가능한 유일한 상한 GUC이며 자동 및 수동 검색 모드 모두에 적용됩니다. 이렇게 하면 검색이 과도하게 수행되어 성능이 크게 저하되는 것을 방지할 수 있습니다. 이는 scann.satisfy_limit가 사용 설정된 경우에 적용됩니다.이 파라미터를 0~100 사이의 값으로 설정할 수 있습니다. 기본값은 15%입니다. 이 기본값은 검색에서 리프의 15% 이상을 검사해야 하는 경우 필터가 충분히 선택적일 가능성이 높으므로 근사 최근접 이웃(ANN) 검색이 이점을 제공하지 않으며 사전 필터링 k-최근접 이웃(KNN)이 더 적합한 선택이라는 근거를 기반으로 합니다. |
쿼리 런타임 (선택사항) |