- Ekstensi pencarian vektor baru untuk PostgreSQL guna mengelola vektor skala besar secara hemat biaya
- Untuk 100 juta vektor berdimensi 768, mampu mencapai QPS 131 pada kueri 10 teratas dengan akurasi 0,95
- Dapat dijalankan di satu mesin dengan biaya $250 per bulan
- Dapat menyimpan 400.000 vektor hanya dengan $1:
- 6 kali lebih murah dibanding Pinecone (instance yang dioptimalkan untuk penyimpanan)
- 26 kali lebih murah dibanding pgvector
Masalah pada basis data vektor berbasis HNSW(Hierarchical Navigable Small Worlds)
- Waktu pembuatan indeks yang lama: membutuhkan lebih dari 2 jam untuk 5 juta record
- Kebutuhan memori yang tinggi: memerlukan hingga 40GB untuk menyimpan 10 juta vektor
Solusi inovatif VectorChord: IVF+RaBitQ yang ramah disk
- Menggunakan kuantisasi IVF(inverted file index) dan RaBitQ
- Mengubah vektor 32-bit menjadi representasi bit terkompresi untuk menurunkan biaya komputasi
- Sebagian besar perbandingan menggunakan vektor terkompresi, lalu perhitungan presisi penuh dilakukan pada sejumlah kecil vektor untuk menjamin akurasi
- Pencarian yang lebih cepat dan efisien dibanding HNSW:
- RaBitQ memampatkan vektor menjadi 1 bit, meningkatkan kecepatan komputasi hingga 100 kali
- Kecepatan dapat dioptimalkan sambil tetap mempertahankan akurasi tinggi
Hasil benchmark utama
Dataset GIST (1M, 960 dimensi)
- VectorChord memiliki QPS 2 kali lebih tinggi dibanding pgvector
- Memanfaatkan metode clustering KMeans yang dijalankan di GPU eksternal lalu diimpor ke PostgreSQL
- Waktu yang dibutuhkan untuk mengindeks 700 ribu vektor di instance AWS
i4i.large (2 vCPU, RAM 16GB): 186 detik
- 16 kali lebih cepat dibanding pgvector
- Kecepatan insert juga 14 kali lebih cepat
Dataset LAION 5M
- Eksperimen pada mesin r6a.xlarge (4 vCPU, RAM 32GB, EBS 200GB):
- Tetap memberikan respons cepat bahkan pada akurasi tinggi
- Menyediakan performa serupa dengan biaya $165.56/bulan, sehingga lebih efisien secara biaya dibanding platform pesaing
Dataset LAION 100M
- Pada instance AWS
i4i.xlarge (4 vCPU, RAM 32GB, SSD 937GB):
- QPS 16.2 @ recall 0.95 (berdasarkan 10 hasil teratas)
- Dalam lingkungan multi-thread, teramati peningkatan QPS yang linear seiring bertambahnya jumlah permintaan
Keunggulan utama VectorChord
- Kompatibel dengan physical replication PostgreSQL dan fitur lainnya
- Mendukung pembuatan indeks eksternal:
- Indeks dapat dibuat di mesin yang lebih kuat, lalu diimpor ke mesin yang lebih kecil untuk menjalankan kueri
- Mampu mendukung miliaran vektor dalam satu mesin
- Biaya rendah, performa tinggi: memangkas biaya bulanan secara signifikan dibanding platform pesaing
Ringkasan dan informasi tambahan
- VectorChord menyediakan pencarian vektor yang efisien di lingkungan PostgreSQL
- Melalui kuantisasi IVF dan RaBitQ, kecepatan serta penggunaan memori dioptimalkan sehingga cocok untuk dataset berskala besar
- Layanan cloud terkelola: PGVecto.rs Cloud
- Mudah dideploy dan diskalakan
1 komentar
Vector adalah JSON baru untuk PostgreSQL
pgvectoryang dikutip dalam tulisan di atas danpgvecto.rs, pendahulu dari VectorChord, adalah ekstensi yang berbeda.pgvector vs. pgvecto.rs in 2024: A Comprehensive Comparison for Vector Search in PostgreSQL
Tim yang membuat
pgvecto.rsjuga membuat VectorChord dan saat ini mengelolanya bersama, tetapi fungsinya masih belum sepenuhnya dipindahkan ke VectorChord. Katanya sekitar tahun depan dukungan untukpgvecto.rsakan dihentikan dan beralih ke VectorChord.Bagi yang menyimpan vektor di Postgres, ini layak dijadikan referensi.