Halaman ini memberikan ringkasan konseptual tentang cara meningkatkan performa kueri vektor dengan Indeks ScaNN.
Indeks ScaNN menggunakan pengindeksan berbasis kuantisasi pohon. Dalam teknik kuantisasi pohon, indeks mempelajari hierarki penelusuran bersama dengan fungsi kuantisasi (atau hashing). Saat Anda menjalankan kueri, hierarki penelusuran digunakan untuk memangkas ruang penelusuran, sedangkan kuantisasi digunakan untuk mengompresi ukuran indeks. Pemangkasan ini mempercepat penskoran kemiripan (yaitu, jarak) antara vektor kueri dan vektor database.
Untuk mencapai kecepatan kueri per detik (QPS) yang tinggi
dan recall yang tinggi dengan kueri nearest neighbor, Anda harus mempartisi
hierarki indeks ScaNN
dengan cara yang paling sesuai untuk data
dan kueri Anda.
Karakteristik umum dari generasi model penyematan berdimensi tinggi saat ini adalah model tersebut masih dapat mempertahankan banyak informasi dengan dimensi yang jauh lebih rendah, misalnya 90% informasi dapat dipertahankan hanya dengan 20% dimensi penyematan. Untuk membantu mempercepat set data tersebut, AlloyDB ScaNN akan otomatis melakukan pengurangan dimensi menggunakan Analisis Komponen Utama (lihat scann.enable_pca
di bawah) pada vektor yang diindeks, yang lebih lanjut akan mengurangi penggunaan CPU & memori untuk penelusuran vektor. Karena pengurangan dimensi masih menyebabkan kehilangan recall kecil dalam indeks, AlloyDB ScaNN akan melakukan kompensasi melalui langkah peringkat awal dengan jumlah kandidat vektor PCA yang lebih besar dari indeks, lalu memberi peringkat ulang berdasarkan vektor asli (lihat scann.pre_reordering_num_neighbors
).