Vista geral do desempenho das consultas de vetores do ScaNN

Esta página apresenta uma vista geral conceptual da melhoria do desempenho das consultas vetoriais com o índice ScaNN.

O índice ScaNN usa a indexação baseada na quantização de árvores. Nas técnicas de quantização de árvores, os índices aprendem uma árvore de pesquisa juntamente com uma função de quantização (ou hash). Quando executa uma consulta, a árvore de pesquisa é usada para reduzir o espaço de pesquisa, enquanto a quantização é usada para comprimir o tamanho do índice. Esta remoção acelera a classificação da semelhança (ou seja, a distância) entre o vetor de consulta e os vetores da base de dados.

Para alcançar uma taxa de consultas por segundo (QPS) elevada e uma elevada capacidade de memorização com as suas consultas de vizinho mais próximo, tem de particionar a árvore do seu índice ScaNN da forma mais adequada aos seus dados e consultas.

Uma característica comum da geração atual de modelos de incorporação de alta dimensão é que ainda podem reter grande parte das informações a uma dimensão muito inferior. Por exemplo, 90% das informações podem ser retidas com apenas 20% das dimensões da incorporação. Para ajudar a acelerar esses conjuntos de dados, o AlloyDB ScaNN realiza automaticamente a redução de dimensões através da análise de componentes principais (consulte scann.enable_pca abaixo) nos vetores indexados, o que reduz ainda mais a utilização da CPU e da memória para a pesquisa vetorial. Uma vez que a redução da dimensão continua a causar uma pequena perda de recall no índice, o AlloyDB ScaNN compensa através de um passo de classificação inicial com um número maior de candidatos vetoriais com PCA do índice e, em seguida, reclassificando-os pelos vetores originais (consulte scann.pre_reordering_num_neighbors).

O que se segue?