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:
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:
Se você definir |
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) |
scann.pct_leaves_to_search |
Gerenciar automaticamente o número de partições que um índice de vetor pesquisa. Para mais informações, consulte Pesquisar porcentagem de partições. | |
scann.num_leaves_to_search
|
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 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 é |
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) |
|
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) |