Referência do índice ScaNN do AlloyDB Omni

Selecione uma versão da documentação:

Esta página oferece uma referência detalhada dos parâmetros de ajuste disponíveis para índices de vizinhos mais próximos escalonáveis (ScaNN) no AlloyDB Omni.

Para um tutorial detalhado sobre como implementar a pesquisa de vetor do início ao fim, consulte o guia sobre como Realizar uma pesquisa de vetor.

Parâmetros de ajuste

Os parâmetros de índice e consulta a seguir são usados para encontrar o equilíbrio certo de recall e consultas por segundo (QPS).

Parâmetro de ajuste Descrição Tipo de opção
mode Define o índice do ScaNN como um índice ajustado automaticamente ou manualmente. As opções disponíveis são:
  • AUTO: índice ajustado automaticamente
  • MANUAL: índice ajustado manualmente

Para mais informações, consulte Criar um índice do ScaNN.

Criação de índice

(opcional)

max_num_levels Número máximo de níveis de centroide da árvore de clustering k-means. Para orientações sobre como definir esse valor, consulte Ajustar um índice do ScaNN.

Os valores disponíveis são:

  • 1: índice ScaNN de dois níveis
  • 2: índice ScaNN de três níveis
  • 3: índice ScaNN de quatro níveis (prévia)

Se você definir max_num_levels como 3, também precisará definir scann.max_allowed_num_levels como 3. Para mais informações, consulte Práticas recomendadas para ajuste de índices do ScaNN.

Criação de índice

(opcional)

num_leaves Número de partições a serem aplicadas a este índice. O valor máximo é 30000000. Para mais informações sobre como escolher esse valor, consulte Ajustar um índice do ScaNN e Práticas recomendadas para ajustar índices do ScaNN.

Criação de índice

(obrigatório para índices ajustados manualmente)

quantizer O tipo de quantizador que você quer usar para a árvore K-means. O valor padrão é SQ8, que oferece melhor desempenho de consulta com perda mínima de recall (normalmente menos de 1 a 2%).

Defina como FLAT se for necessário um recall de 99% ou mais.
Criação de índice
(opcional)
scann.enable_pca Ativa a análise de componentes principais (PCA), uma técnica de redução de dimensão usada para reduzir automaticamente o tamanho do encadeamento quando possível. Essa opção é ativada por padrão.

Defina como false se você notar uma deterioração na capacidade de recall.
Criação de índice
(opcional)
auto_maintenance Manter automaticamente um índice ScaNN para que, à medida que seu conjunto de dados cresce, o AlloyDB Omni analise e atualize os centroides e divida grandes partições de outliers. Isso melhora automaticamente o QPS e os resultados da pesquisa. Para mais informações, consulte Manter índices automaticamente.

Criação de índice

(opcional)

Gerenciar automaticamente o número de partições que um índice de vetor pesquisa. Para mais informações, consulte Pesquisar porcentagem de partições.

Número absoluto de partições a serem pesquisadas. Isso permite fazer uma troca entre o recall de consulta e o QPS. O valor padrão é 1% de num_leaves.

Valores mais altos resultam em um recall de consulta melhor, mas em um QPS menor. Da mesma forma, valores mais baixos resultam em um recall de consulta pior, mas em um QPS melhor.

Tempo de execução da consulta

(opcional)

scann.pre_reordering_num_neighbors

Especifica o número de vizinhos candidatos a serem considerados durante as etapas de reordenação depois que a pesquisa inicial identifica um conjunto de candidatos. Defina esse parâmetro com um valor maior do que o número de vizinhos que você quer que a consulta retorne. Valores mais altos resultam em um recall melhor, mas em um QPS menor.

O padrão é 0, que desativa a reordenação. Se a PCA estiver ativada durante a criação do índice, o padrão será 50 x K, em que K é o LIMIT 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 uma única consulta se o banco de dados já estiver vinculado à CPU. O valor padrão é 2. Tempo de execução da consulta
(opcional)

scann.satisfy_limit (Pré-lançamento)

Quando definido como relaxed_order, a flag do banco de dados resolve o recall insuficiente. A baixa capacidade de recall pode ocorrer quando o recall observado de uma consulta fica abaixo do recall desejado, o que é mais provável ao usar filtros. Essa configuração ajuda a alcançar o recall desejado, permitindo que a verificação de vetor continue pesquisando além do limite de num_leaves_to_search até que um número suficiente de resultados seja encontrado. Tempo de execução da consulta
(opcional)
Essa flag de banco de dados define um limite superior para a porcentagem do total de folhas que podem ser visitadas em consultas executadas com scann.satisfy_limit ativado. Esse é o único limite superior disponível e se aplica aos modos de pesquisa automática e manual. Isso evita que a pesquisa ultrapasse o limite, o que pode prejudicar significativamente a performance. Isso é aplicável quando scann.satisfy_limit está ativado.
É possível definir esse parâmetro com qualquer valor entre 0 e 100. O valor padrão é 15%. Esse valor padrão se baseia na lógica de que, se uma pesquisa precisar examinar mais de 15% das folhas, o filtro provavelmente será seletivo o suficiente para que a pesquisa de vizinho mais próximo aproximado (ANN) não ofereça um benefício, tornando a pré-filtragem de vizinho k-mais próximo (KNN) uma opção mais adequada.
Tempo de execução da consulta
(opcional)

A seguir