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, sedangkan 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 bahwa 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 AI secara otomatis melakukan pengurangan dimensi menggunakan Analisis Komponen Utama (scann.enable_pca dalam referensi indeks ScaNN) pada vektor yang diindeks, yang selanjutnya mengurangi penggunaan CPU dan memori untuk penelusuran vektor. Karena pengurangan dimensi masih menyebabkan sedikit kehilangan perolehan dalam indeks, ScaNN AlloyDB AI mengompensasi melalui langkah pemeringkatan awal dengan sejumlah besar kandidat vektor yang dikurangi PCA dari indeks, lalu memeringkat ulang kandidat tersebut berdasarkan vektor aslinya (scann.pre_reordering_num_neighbors dalam referensi indeks ScaNN).