Ringkasan performa kueri vektor ScaNN

Indeks Scalable Nearest Neighbors (ScaNN) di AlloyDB untuk PostgreSQL mempercepat kueri kesamaan vektor sekaligus mengurangi penggunaan memori melalui pengindeksan kuantisasi hierarki. Dalam teknik kuantisasi hierarki, indeks mempelajari hierarki penelusuran bersama dengan fungsi kuantisasi (atau hashing). Saat Anda menjalankan kueri, hierarki penelusuran memangkas ruang penelusuran, sementara kuantisasi mengompresi ukuran indeks, sehingga mempercepat penskoran kesamaan antara vektor kueri dan vektor database Anda.

Untuk mencapai kecepatan kueri per detik (QPS) yang tinggi dan perolehan yang tinggi dengan kueri tetangga terdekat (nearest neighbor), Anda harus mempartisi hierarki indeks ScaNN dengan cara yang paling sesuai untuk data dan kueri Anda.

Karakteristik umum dari generasi model embedding berdimensi tinggi saat ini adalah model tersebut masih dapat mempertahankan sebagian besar informasi pada dimensi yang jauh lebih rendah, misalnya 90% informasi dapat dipertahankan dengan hanya 20% dimensi embedding. Untuk membantu mempercepat set data tersebut, ScaNN AlloyDB akan otomatis melakukan pengurangan dimensi menggunakan Analisis Komponen Utama (lihat scann.enable_pca di bawah) pada vektor yang diindeks, yang selanjutnya mengurangi penggunaan CPU & memori untuk penelusuran vektor. Karena pengurangan dimensi masih menyebabkan sedikit kehilangan perolehan dalam indeks, ScaNN AlloyDB mengompensasi melalui langkah pemeringkatan awal dengan sejumlah besar kandidat vektor yang di-PCA dari indeks, lalu memeringkat ulang berdasarkan vektor aslinya (lihat scann.pre_reordering_num_neighbors).

Langkah berikutnya