O índice ScaNN usa a indexação baseada na quantização de árvores, na qual 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.
Os modelos de incorporação de alta dimensão podem reter grande parte das informações com uma dimensão muito inferior. Por exemplo, pode 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ões usando a análise de componentes principais (PCA) nos vetores indexados, o que reduz ainda mais a utilização da CPU e da memória para a pesquisa vetorial. Para mais informações, consulte
scann.enable_pca
.
Uma vez que a redução da dimensão causa uma pequena perda de capacidade de memorização no índice, o índice ScaNN da IA do AlloyDB compensa a perda de capacidade de memorização executando primeiro um passo de classificação com um número maior de candidatos a vetores com PCA do índice. Em seguida,
o ScaNN reclassifica os candidatos a vetores com PCA pelos vetores originais.
Para mais informações, consulte scann.pre_reordering_num_neighbors
.
O que se segue?
- Saiba as práticas recomendadas para otimizar os índices do ScaNN.
- Comece a usar as incorporações vetoriais com a IA do AlloyDB.
- Saiba mais sobre o índice ScaNN da IA do AlloyDB.