PgDog: Proyecto de fragmentación de código abierto para pgvector

2025-03-26
PgDog: Proyecto de fragmentación de código abierto para pgvector

Escalar pgvector más allá de un millón de incrustaciones se vuelve un desafío debido a la lenta construcción del índice. Esta publicación presenta PgDog, un proyecto de código abierto que fragmenta el índice pgvector. Aprovechando las características de agrupamiento inherentes de IVFFlat, PgDog distribuye las particiones del espacio vectorial en varias máquinas. Los vectores de consulta se enrutan a los fragmentos apropiados según la proximidad a los centroides, calculados usando scikit-learn, mejorando significativamente la velocidad de búsqueda y la recuperación. Los detalles de la implementación cubren el cálculo del centroide, una función de fragmentación personalizada y el análisis de SQL usando pg_query. Los experimentos demuestran la eficacia de PgDog, ofreciendo optimizaciones como consultas paralelas entre fragmentos y una asignación refinada de centroides. El trabajo futuro incluye admitir más algoritmos de distancia e instrucciones SIMD para cálculos más rápidos.

Desarrollo fragmentación