O índice ScaNN usa a indexação baseada em quantização de árvore, em que os índices aprendem uma árvore de pesquisa junto com uma função de quantização (ou hash). Ao executar uma consulta, a árvore de pesquisa é usada para reduzir o espaço de pesquisa, enquanto a quantização é usada para compactar o tamanho do índice. Essa redução acelera a pontuação da semelhança, ou seja, a distância, entre o vetor de consulta e os vetores do banco de dados.
Para alcançar uma alta taxa de consultas por segundo (QPS) e uma alta capacidade de recall com as consultas de vizinho mais próximo, é necessário particionar a árvore do índice ScaNN da maneira mais adequada aos dados e às consultas.
Os modelos de incorporação de alta dimensão podem reter grande parte das informações em uma dimensionalidade muito menor. Por exemplo, é possível reter 90% das informações com apenas 20% das dimensões da incorporação. Para ajudar a acelerar esses conjuntos de dados,
o índice ScaNN da IA do AlloyDB realiza automaticamente a redução de dimensão
usando análise de componentes principais
(PCA, na sigla em inglês) nos vetores indexados, o que reduz ainda mais o uso de CPU e o uso da memória para
a pesquisa vetorial. Para mais informações, consulte
scann.enable_pca.
Como a redução de dimensão causa uma pequena perda de recall no índice, o índice ScaNN da IA do AlloyDB compensa essa perda realizando primeiro uma etapa de classificação com um número maior de candidatos de vetor PCA do índice. Em seguida, o ScaNN reclassifica os candidatos de vetor PCA pelos vetores originais.
Para mais informações, consulte scann.pre_reordering_num_neighbors.
A seguir
- Aprenda as práticas recomendadas para ajustar os índices ScaNN.
- Comece a usar as incorporações de vetor com a IA do AlloyDB.
- Saiba mais sobre o índice ScaNN da IA do AlloyDB.