벡터 검색을 처음부터 끝까지 구현하는 방법에 관한 단계별 튜토리얼은 벡터 검색 실행 방법에 관한 가이드를 참조하세요.
조정 파라미터
다음 색인 및 쿼리 매개변수는 재현율과 초당 쿼리 수 (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 간의 균형을 맞출 수 있습니다. 기본값은
의 1% 입니다 값이 높을수록 쿼리 재현율이 향상되지만 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)이 더 적합한 선택이라는 논리에 기반합니다. |
쿼리 런타임 (선택사항) |