22 puntos por xguru 2024-12-10 | 1 comentarios | Compartir por WhatsApp
  • Una nueva extensión de búsqueda vectorial para PostgreSQL pensada para gestionar grandes volúmenes de vectores de forma rentable
  • Para 100 millones de vectores de 768 dimensiones, puede lograr QPS 131 con recall 0.95 en consultas top 10
    • Puede ejecutarse en una sola máquina por $250 al mes
  • Permite almacenar 400,000 vectores por $1:
    • 6 veces más barato que Pinecone (instancia optimizada para almacenamiento)
    • 26 veces más barato que pgvector

Problemas de las bases de datos vectoriales basadas en HNSW (Hierarchical Navigable Small Worlds)

  • Largo tiempo de creación de índices: más de 2 horas para 5 millones de registros
  • Altos requerimientos de memoria: hasta 40GB para almacenar 10 millones de vectores

La solución innovadora de VectorChord: IVF+RaBitQ amigable con disco

  • Usa cuantización IVF (índice de archivo invertido) y RaBitQ
    • Convierte vectores de 32 bits en representaciones comprimidas en bits para reducir el costo de cálculo
    • La mayoría de las comparaciones usan vectores comprimidos, y para garantizar la precisión se realizan cálculos de precisión completa sobre un pequeño número de vectores
  • Búsqueda más rápida y eficiente que HNSW:
    • RaBitQ comprime los vectores a 1 bit, aumentando la velocidad de cálculo en 100 veces
    • Permite optimizar la velocidad manteniendo una alta precisión

Principales resultados de benchmark

Dataset GIST (1M, 960 dimensiones)

  • VectorChord tiene un QPS 2 veces mayor que pgvector
  • Aprovecha un método en el que el clustering KMeans se realiza en una GPU externa y luego se importa a PostgreSQL
  • Tiempo necesario para indexar 700 mil vectores en una instancia AWS i4i.large (2 vCPUs, 16GB RAM): 186 segundos
    • 16 veces más rápido que pgvector
    • La velocidad de inserción también es 14 veces mayor

Dataset LAION 5M

  • Pruebas en una máquina r6a.xlarge (4 vCPUs, 32GB RAM, 200GB EBS):
    • Mantiene respuestas rápidas incluso con alta precisión
    • Ofrece un rendimiento similar con un costo de $165.56/mes, siendo rentable frente a plataformas competidoras

Dataset LAION 100M

  • En una instancia AWS i4i.xlarge (4 vCPUs, 32GB RAM, 937GB SSD):
    • QPS 16.2 @ recall 0.95 (con base en los 10 resultados principales)
    • En un entorno multihilo se observó un aumento lineal del QPS a medida que crecían las solicitudes

Principales ventajas de VectorChord

  • Compatible con la replicación física de PostgreSQL y otras funciones
  • Soporta creación externa de índices:
    • Se pueden crear índices en una máquina más potente y luego importarlos a una máquina más pequeña para ejecutar consultas
    • Puede soportar miles de millones de vectores en una sola máquina
  • Bajo costo y alto rendimiento: reduce de forma importante el costo mensual frente a plataformas competidoras

Resumen e información adicional

  • VectorChord ofrece búsqueda vectorial eficiente en entornos PostgreSQL
  • Mediante cuantización IVF y RaBitQ, optimiza la velocidad y el uso de memoria, por lo que es adecuado para datasets de gran escala
  • Servicio administrado en la nube: PGVecto.rs Cloud
    • Despliegue y escalado sencillos

1 comentarios

 
xguru 2024-12-10

Vector es el nuevo JSON de PostgreSQL
pgvector, citado en el texto de arriba, y pgvecto.rs, antecesor de VectorChord, son extensiones distintas.
pgvector vs. pgvecto.rs in 2024: A Comprehensive Comparison for Vector Search in PostgreSQL

El equipo que creó pgvecto.rs hizo VectorChord y actualmente mantiene ambos; todavía no todas las funciones se han migrado a VectorChord. Dicen que alrededor del próximo año dejarán de dar soporte a pgvecto.rs y migrarán a VectorChord.

Quienes estén guardando vectores en Postgres, ténganlo en cuenta.