Escolher um índice vetorial no AlloyDB AI

Selecionar a estratégia de pesquisa vetorial e o índice certos na IA do AlloyDB permite equilibrar a latência de consulta e a precisão da pesquisa para sua carga de trabalho. Por padrão, o AlloyDB para PostgreSQL usa a pesquisa de k-vizinhos mais próximos (KNN) exatos para encontrar vetores semelhantes. Quando você cria um índice vetorial, a IA do AlloyDB usa a pesquisa de vizinho mais próximo aproximado (ANN, na sigla em inglês) para acelerar o desempenho da consulta em escala, ao mesmo tempo em que compensa uma quantidade configurável de recall.

O recall mede a eficácia com que uma pesquisa recupera todos os itens relevantes para uma determinada consulta. Por exemplo, imagine que você tem 100 embeddings, cada um representando uma entidade no seu banco de dados. Você consulta os embeddings com um vetor de destino e limita a 10 resultados. Uma busca vetorial KNN encontra os 10 vetores mais próximos usando um método de cálculo de força bruta, o que resulta em 100% de recall. A IA do AlloyDB usa esse método por padrão se nenhum índice de pesquisa vetorial for criado ou escolhido. Quando você cria um índice vetorial no AlloyDB, ele geralmente usa ANN, que pode particionar vetores de acordo com a similaridade para facilitar uma recuperação mais rápida. Como resultado, ao usar a ANN, os 10 vetores retornados no exemplo anterior podem não ser exatamente os 10 vetores mais próximos em distância. Se 9 dos 10 vetores recuperados forem os mais próximos no espaço do vetor de consulta, o recall será de 90%. Para mais informações, consulte Medir o recall de consultas vetoriais.

A latência da consulta define a rapidez com que os resultados da pesquisa são gerados. Por exemplo, a latência é calculada com base no tempo gasto em uma pesquisa para retornar os vetores depois que você envia uma consulta.

Escolha sua estratégia de pesquisa

Ao realizar uma pesquisa vetorial no AlloyDB, escolha uma das seguintes estratégias de pesquisa:

Estratégia de pesquisa Descrição Casos de uso
Vizinhos mais próximos (KNN)

Um algoritmo que encontra os pontos de dados dos k vizinhos mais próximos de um determinado ponto de dados de consulta. Quando você realiza uma busca vetorial sem criar um índice, uma busca KNN é realizada por padrão.

Para melhorar ainda mais o desempenho da pesquisa KNN, adicione a coluna de embedding e outras colunas relacionadas à consulta ao armazenamento de colunas no mecanismo colunar. É possível adicionar as colunas manualmente ou usando a colunização automática.

  • Seu aplicativo é muito sensível à precisão, e você precisa das correspondências exatas mais próximas.
  • Você tem dezenas de milhares de vetores
Vizinhos mais próximos aproximados (ANN, na sigla em inglês) Um algoritmo que encontra aproximadamente os pontos de dados mais próximos. A ANN divide os pontos de dados dos clientes em pequenos grupos com base em semelhanças.
  • Seu aplicativo requer baixa latência.
  • Você tem mais de 100.000 vetores.

Os dois tipos comuns de índice vetorial baseado em ANN para o AlloyDB são ScaNN e HNSW. Use as diretrizes a seguir para decidir qual tipo de índice é melhor para seu caso de uso:

Tipo de índice Quando usar Vantagens Aceleração do mecanismo colunar
ScaNN

Geralmente, são adequados para dados de baixa dimensão ou conjuntos de dados massivos que excedem a memória.

Escalona bem para 10 bilhões de vetores.

Oferece vários benefícios em relação ao HNSW no PostgreSQL padrão:

  • Consultas vetoriais até 6 vezes mais rápidas e consultas de pesquisa vetorial filtradas até 10 vezes mais rápidas
  • Criação de índices até 16 vezes mais rápida
  • Capacidade de processamento de gravação até 24 vezes maior
  • Usa até 4 vezes menos memória
A pesquisa vetorial com o índice ScaNN pode ser acelerada pelo mecanismo colunar do AlloyDB. Para mais informações, consulte Acelerar a pesquisa vetorial com o mecanismo colunar.
HNSW

Geralmente, é adequado para dados de dimensões mais altas que se encaixam em grande parte no cache em memória.

Escalona bem para 10 a 20 milhões de vetores.

O índice HNSW acelerado pelo mecanismo colunar pgvector no AlloyDB oferece consultas vetoriais até 5 vezes mais rápidas do que o PostgreSQL padrão. A pesquisa vetorial com o índice HNSW pode ser acelerada pelo mecanismo colunar do AlloyDB. Para mais informações, consulte Acelerar a pesquisa vetorial com o mecanismo colunar.

O Google recomenda criar um índice vetorial para otimizar o desempenho das consultas de pesquisa vetorial. Para mais informações sobre como o índice ANN é usado para pesquisas de similaridade, consulte Criar índices usando o ScaNN.

Para acelerar sua pesquisa de KNN filtrada, use o mecanismo colunar.

A seguir