Para um tutorial detalhado sobre como implementar a pesquisa vetorial do início ao fim, consulte o guia Como realizar uma pesquisa vetorial.
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, na sigla em inglês).
| Parâmetro de ajuste | Descrição | Tipo de opção |
|---|---|---|
mode |
Define o índice ScaNN como um índice ajustado automaticamente ou manualmente
índice. As opções disponíveis são as seguintes:
Para mais informações, consulte Criar um índice ScaNN. |
Criação de índice (opcional) |
max_num_levels |
Número máximo de níveis de centroide da árvore de clusterização k-means. Para
orientações sobre como definir esse valor, consulte
Ajustar um índice ScaNN.
Os valores disponíveis são os seguintes:
Se você definir |
Criação de índice (opcional) |
num_leaves |
Número de partições a serem aplicadas a esse índice. O valor máximo é
30000000. Para mais informações sobre como escolher esse valor, consulte
Ajustar um índice ScaNN
e
Práticas recomendadas para ajustar índices ScaNN.
|
Criação de índice (necessário para índices ajustados manualmente ) |
quantizer |
O tipo de quantizador que você quer usar para a árvore k-means. O valor padrão é definido como SQ8 que oferece melhor performance 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, 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) |
auto_maintenance |
Mantém automaticamente um índice ScaNN para que, à medida que o 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 resultados da pesquisa. Para mais informações, consulte Manter índices automaticamente. |
Criação de índice (opcional) |
scann.pct_leaves_to_search |
Gerencia automaticamente o número de partições que um índice vetorial 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 que você troque entre
recall de consulta e o QPS. O valor padrão é 1% de
Valores mais altos resultam em melhor recall de consulta, mas QPS mais baixo. Da mesma forma, valores mais baixos resultam em pior recall de consulta, mas melhor QPS. |
Tempo de execução da consulta (opcional) |
scann.pre_reordering_num_neighbors
|
Especifica o número de vizinhos candidatos a serem considerados durante os reordenação estágios 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. Valores mais altos resultam em melhor recall, mas QPS mais baixo.
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 consulta única 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, o flag do banco de dados resolve o recall insuficiente. O recall insuficiente pode ocorrer quando o recall observado de uma consulta fica abaixo do recall de destino, o que é mais provável ao usar filtros. Essa configuração ajuda a alcançar o recall de destino, permitindo que a verificação de vetor continue pesquisando além do limite num_leaves_to_search até que um número suficiente de resultados seja encontrado. |
Tempo de execução da consulta (opcional) |
|
Esse flag de banco de dados define um limite máximo na porcentagem de folhas totais que podem ser visitadas para consultas executadas com scann.satisfy_limit ativado. Esse é o único limite máximo de GUC disponível e se aplica aos modos de pesquisa automática e manual. Ele impede 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 é baseado no princípio 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, na sigla em inglês) não ofereça um benefício, tornando a pré-filtragem do vizinho mais próximo (KNN, na sigla em inglês) uma escolha mais adequada. |
Tempo de execução da consulta (opcional) |