PgDog : un projet open source de sharding pour pgvector

2025-03-26
PgDog : un projet open source de sharding pour pgvector

Mettre à l'échelle pgvector au-delà d'un million d'embeddings devient difficile en raison de la lenteur de la construction de l'index. Ce billet présente PgDog, un projet open source qui effectue le sharding de l'index pgvector. En tirant parti des capacités de clustering inhérentes à IVFFlat, PgDog distribue les partitions de l'espace vectoriel sur plusieurs machines. Les vecteurs de requête sont routés vers les shards appropriés en fonction de leur proximité avec les centroïdes, calculés à l'aide de scikit-learn, améliorant ainsi significativement la vitesse de recherche et le rappel. Les détails de l'implémentation couvrent le calcul des centroïdes, une fonction de sharding personnalisée et l'analyse SQL à l'aide de pg_query. Les expériences démontrent l'efficacité de PgDog, offrant des optimisations telles que des requêtes parallèles entre les shards et une allocation optimisée des centroïdes. Les travaux futurs incluent la prise en charge d'algorithmes de distance supplémentaires et des instructions SIMD pour des calculs plus rapides.

Développement