처음부터 끝까지 벡터 검색을 구현하는 방법에 관한 단계별 가이드는 벡터 검색 실행하기 가이드를 참고하세요.
매개변수 미세 조정
다음 색인 및 쿼리 매개변수는 재현율과 초당 쿼리 수 (QPS)의 적절한 균형을 찾는 데 사용됩니다.
| 조정 파라미터 | 설명 | 옵션 유형 |
|---|---|---|
mode |
ScaNN 색인을 자동으로 조정된 색인 또는 수동으로 조정된 색인으로 정의합니다. 사용 가능한 옵션은 다음과 같습니다.
자세한 내용은 ScaNN 색인 만들기를 참고하세요. |
색인 생성 (선택사항) |
max_num_levels |
K-평균 클러스터링 트리의 최대 중심 수준 수입니다. 이 값을 설정하는 방법에 관한 안내는 ScaNN 색인 조정을 참고하세요.
사용 가능한 값은 다음과 같습니다.
|
색인 생성 (선택사항) |
num_leaves |
이 색인에 적용할 파티션 수입니다. 최댓값은 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)이 더 적합한 선택이라는 논리에 기반합니다. |
쿼리 런타임 (선택사항) |