- Neue Vektor-Such-Erweiterung für PostgreSQL, um große Vektormengen kosteneffizient zu verwalten
- Für 100 Millionen Vektoren mit 768 Dimensionen sind bei Top-10-Abfragen 131 QPS bei 0,95 Genauigkeit erreichbar
- Läuft für 250 $/Monat auf einer einzelnen Maschine
- 400.000 Vektoren für 1 $ speicherbar:
- 6× günstiger als Pinecone (storage-optimierte Instanz)
- 26× günstiger als pgvector
Probleme von HNSW(Hierarchical Navigable Small Worlds)-basierten Vektor-Datenbanken
- Lange Zeit für die Index-Erstellung: für 5 Millionen Datensätze über 2 Stunden
- Hoher Speicherbedarf: beim Speichern von 10 Millionen Vektoren werden bis zu 40 GB benötigt
Die innovative Lösung von VectorChord: datenträgerfreundliches IVF+RaBitQ
- Nutzung von IVF (Inverted File Index) und RaBitQ-Quantisierung
- Wandelt 32-Bit-Vektoren in eine komprimierte Bit-Darstellung um und senkt so die Rechenkosten
- Die meisten Vergleiche nutzen komprimierte Vektoren; für wenige Vektoren werden zur Sicherung der Genauigkeit Berechnungen in voller Präzision ausgeführt
- Schnellere und effizientere Suche als HNSW:
- RaBitQ komprimiert Vektoren auf 1 Bit und erhöht die Rechengeschwindigkeit um das 100-Fache
- Die Geschwindigkeit lässt sich optimieren, ohne die hohe Genauigkeit aufzugeben
Zentrale Benchmark-Ergebnisse
GIST-Datensatz (1M, 960 Dimensionen)
- VectorChord erreicht gegenüber pgvector doppelt so hohe QPS
- Verwendet einen Ansatz, bei dem KMeans-Clustering auf einer externen GPU ausgeführt und anschließend nach PostgreSQL importiert wird
- Zeit für die Indexierung von 700.000 Vektoren auf einer AWS-Instanz
i4i.large (2 vCPUs, 16 GB RAM): 186 Sekunden
- 16× schneller als pgvector
- Auch die Einfügegeschwindigkeit ist 14× höher
LAION-5M-Datensatz
- Experimente auf einer Maschine vom Typ
r6a.xlarge (4 vCPUs, 32 GB RAM, 200 GB EBS):
- Auch bei hoher Genauigkeit bleibt die Antwortzeit schnell
- Bietet ähnliche Leistung für 165,56 $/Monat und ist damit kosteneffizienter als konkurrierende Plattformen
LAION-100M-Datensatz
- AWS-Instanz
i4i.xlarge (4 vCPUs, 32 GB RAM, 937 GB SSD):
- QPS 16,2 @ recall 0.95 (bezogen auf die Top-10-Ergebnisse)
- In einer Multi-Thread-Umgebung wurde mit steigender Anzahl von Anfragen ein linearer Anstieg der QPS beobachtet
Wichtige Vorteile von VectorChord
- Kompatibel mit physischer Replikation und anderen PostgreSQL-Funktionen
- Unterstützung für externe Index-Erstellung:
- Der Index kann auf einer leistungsstärkeren Maschine erstellt und anschließend auf eine kleinere Maschine übertragen werden, auf der die Abfragen laufen
- Unterstützt auf einer einzelnen Maschine Milliarden von Vektoren
- Niedrige Kosten, hohe Leistung: monatliche Kosten im Vergleich zu konkurrierenden Plattformen deutlich reduziert
Zusammenfassung und weitere Informationen
- VectorChord bietet effiziente Vektor-Suche in PostgreSQL-Umgebungen
- Durch IVF- und RaBitQ-Quantisierung werden Geschwindigkeit und Speicherverbrauch optimiert, wodurch es sich für große Datensätze eignet
- Cloud-Managed-Service: PGVecto.rs Cloud
- Einfache Bereitstellung und Skalierung möglich
1 Kommentare
Vector ist das neue JSON von PostgreSQL
pgvector, das im obigen Beitrag zitiert wird, undpgvecto.rs, der Vorgänger von VectorChord, sind unterschiedliche Erweiterungen.pgvector vs. pgvecto.rs in 2024: A Comprehensive Comparison for Vector Search in PostgreSQL
Das Team hinter
pgvecto.rsentwickelt und betreut nun auch VectorChord. Noch sind nicht alle Funktionen in VectorChord übernommen worden. Irgendwann im nächsten Jahr soll der Support fürpgvecto.rseingestellt und vollständig auf VectorChord umgestellt werden.Wer Vektoren in Postgres speichert, sollte das im Blick behalten.