Parâmetros de ajuste
Os parâmetros de índice e as flags de banco de dados a seguir são usados juntos para encontrar o equilíbrio certo de recall e QPS.
| Parâmetro de ajuste | Descrição | Tipo de opção |
|---|---|---|
max_num_levels |
O número máximo de níveis de centroide da árvore de clusterização K-means.
|
Criação de índice (opcional) |
num_leaves |
O número de partições a serem aplicadas a esse índice. O número de partições que você aplica ao criar um índice afeta o desempenho dele. Ao aumentar as partições para um número definido de vetores, você cria um índice mais refinado, o que melhora o recall e o desempenho da consulta. No entanto, isso tem o custo de tempos de criação de índice mais longos. Como as árvores de três níveis são criadas mais rapidamente do que as árvores de dois níveis, é possível aumentar o num_leaves_value ao criar um índice de árvore de três níveis para alcançar um melhor desempenho.
|
Criação de índice (obrigatório) |
quantizer |
O tipo de quantizador que você quer usar para a árvore K-means. O valor padrão é definido como SQ8, que oferece melhor desempenho de consulta com perda mínima de recall (normalmente menos de 1 a 2%).Defina como FLAT se um recall de 99% ou mais for necessário. |
Criação de índice (opcional) |
scann.enable_pca |
Ativa a análise de componentes principais (PCA, na sigla em inglês), que é uma técnica de redução de dimensão usada para reduzir automaticamente
o tamanho da incorporação quando possível. Essa opção é ativada por padrão. Defina como false se você observar deterioração no recall. |
Criação de índice (opcional) |
scann.pct_leaves_to_search (Preview) |
Essa flag de banco de dados permite [gerenciar automaticamente o número de folhas ou partições a serem pesquisadas](/alloydb/omni/containers/15.7.1/docs/ai/maintain-vector-indexes#manage-leave-to-search-split-partitions). Defina esse valor como o número atual de partições. Por exemplo, para pesquisar 1% do número atual de partições, defina esse valor como 1. É possível definir esse parâmetro como qualquer valor entre 0 e 100. O valor padrão é 0, que desativa esse parâmetro e usa o `scann.num_leaves_to_search` para calcular o número de folhas a serem pesquisadas. O parâmetro é desativado por padrão. |
Tempo de execução da consulta (opcional) |
scann.num_leaves_to_search |
Essa flag de banco de dados controla o número absoluto de folhas ou partições a serem pesquisadas, o que permite fazer uma troca entre recall e QPS. O valor padrão é 1% do valor definido em num_leaves. Um valor mais alto resulta em um recall melhor, mas em um QPS mais baixo. Da mesma forma, um valor mais baixo resulta em um recall mais baixo, mas em um QPS mais alto. |
Tempo de execução da consulta (opcional) |
scann.pre_reordering_num_neighbors |
Quando definida, a flag de banco de dados especifica o número de vizinhos candidatos a serem considerados durante os estágios de reordenação depois que a pesquisa inicial identifica um conjunto de candidatos. Defina esse parâmetro como um valor maior que o número de vizinhos que você quer que a consulta retorne. Um valor mais alto resulta em um recall melhor, mas em um QPS mais baixo. Defina esse valor como 0 para desativar a reordenação. O padrão é 0 se a PCA não estiver ativada durante a criação do índice. Caso contrário, o padrão é 50 x K, em que K é o limite especificado na consulta. |
Tempo de execução da consulta (opcional) |
scann.num_search_threads |
O número de linhas de execução de pesquisa para pesquisa multithread. Isso pode ajudar a reduzir a latência de consulta única usando mais de uma linha de execução para a pesquisa ScaNN ANN em aplicativos sensíveis à latência. Essa configuração não melhora a latência de consulta única se o banco de dados já estiver vinculado à CPU. O valor padrão é 2. |
Tempo de execução da consulta (opcional) |