22 pontos por xguru 2024-12-10 | 1 comentários | Compartilhar no WhatsApp
  • Nova extensão de busca vetorial para PostgreSQL, criada para gerenciar vetores em larga escala com eficiência de custo
  • Para 100 milhões de vetores de 768 dimensões, é possível alcançar QPS 131 e precisão de 0,95 em consultas top 10
    • Pode ser executado em uma única máquina por US$ 250/mês
  • É possível armazenar 400.000 vetores por US$ 1:
    • 6 vezes mais barato que o Pinecone (instância otimizada para armazenamento)
    • 26 vezes mais barato que o pgvector

Problemas dos bancos de dados vetoriais baseados em HNSW(Hierarchical Navigable Small Worlds)

  • Tempo longo de criação de índice: mais de 2 horas para 5 milhões de registros
  • Alta exigência de memória: até 40 GB para armazenar 10 milhões de vetores

A solução inovadora do VectorChord: IVF+RaBitQ amigável a disco

  • Uso de quantização com IVF(arquivo invertido) e RaBitQ
    • Converte vetores de 32 bits em representações compactadas em bits, reduzindo o custo computacional
    • A maior parte das comparações usa vetores compactados, e um cálculo em precisão total é feito apenas para uma pequena parte dos vetores para garantir a exatidão
  • Busca mais rápida e eficiente que HNSW:
    • O RaBitQ comprime vetores em 1 bit, aumentando a velocidade de cálculo em 100 vezes
    • É possível otimizar a velocidade mantendo alta precisão

Principais resultados de benchmark

Dataset GIST (1M, 960 dimensões)

  • O VectorChord tem QPS 2 vezes maior que o pgvector
  • Usa uma abordagem em que o clustering KMeans é executado em uma GPU externa e depois importado para o PostgreSQL
  • Tempo para indexar 700 mil vetores em uma instância AWS i4i.large (2 vCPUs, 16 GB RAM): 186 segundos
    • 16 vezes mais rápido que o pgvector
    • A velocidade de inserção também é 14 vezes maior

Dataset LAION 5M

  • Testes em uma máquina r6a.xlarge (4 vCPUs, 32 GB RAM, 200 GB EBS):
    • Mantém resposta rápida mesmo com alta precisão
    • Entrega desempenho semelhante por US$ 165,56/mês, com melhor custo-benefício que as plataformas concorrentes

Dataset LAION 100M

  • Instância AWS i4i.xlarge (4 vCPUs, 32 GB RAM, 937 GB SSD):
    • QPS 16,2 @ recall 0,95 (com base nos 10 principais resultados)
    • Em ambiente multithread, foi observado aumento linear de QPS conforme as requisições aumentam

Principais vantagens do VectorChord

  • Compatível com replicação física do PostgreSQL e outros recursos
  • Suporte à criação de índices externa:
    • Crie o índice em uma máquina mais potente e depois importe-o para uma máquina menor para executar as consultas
    • Suporta bilhões de vetores em uma única máquina
  • Baixo custo e alto desempenho: reduz significativamente o custo mensal em comparação com plataformas concorrentes

Resumo e informações adicionais

  • O VectorChord oferece busca vetorial eficiente no ambiente PostgreSQL
  • Com quantização IVF e RaBitQ, otimiza velocidade e uso de memória, sendo adequado para datasets de grande escala
  • Serviço gerenciado em nuvem: PGVecto.rs Cloud
    • Implantação e escalabilidade simplificadas

1 comentários

 
xguru 2024-12-10

Vector é o novo JSON do PostgreSQL
A pgvector citada no texto acima e a pgvecto.rs, antecessora do VectorChord, são extensões diferentes.
pgvector vs. pgvecto.rs in 2024: A Comprehensive Comparison for Vector Search in PostgreSQL

A equipe que criou o pgvecto.rs também criou o VectorChord e está mantendo os dois em paralelo; ainda nem todas as funcionalidades foram migradas para o VectorChord. Eles dizem que por volta do ano que vem vão encerrar o suporte ao pgvecto.rs e migrar para o VectorChord.

Quem armazena vetores no Postgres pode levar isso em consideração.