- 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
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.