Indeks ScaNN menggunakan pengindeksan berbasis kuantisasi hierarki, yang indeksnya mempelajari hierarki penelusuran bersama dengan fungsi kuantisasi (atau hashing). Saat Anda menjalankan kueri, hierarki penelusuran digunakan untuk pruning ruang penelusuran, sedangkan kuantisasi digunakan untuk mengompresi ukuran indeks. Pruning ini mempercepat pemberian skor kesamaan—dengan kata lain, jarak—antara vektor kueri dan vektor database.
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.
Model embedding berdimensi tinggi dapat mempertahankan sebagian besar informasi pada dimensi yang jauh lebih rendah. Misalnya, Anda dapat mempertahankan 90% informasi dengan hanya 20% dimensi embedding. Untuk membantu mempercepat set data tersebut, indeks ScaNN AlloyDB AI secara otomatis melakukan pengurangan dimensi menggunakan Analisis Komponen Utama (PCA) pada vektor yang diindeks, yang selanjutnya mengurangi penggunaan CPU dan memori untuk penelusuran vektor. Untuk mendapatkan informasi selengkapnya, lihat scann.enable_pca.
Karena pengurangan dimensi menyebabkan sedikit kehilangan perolehan dalam indeks, indeks ScaNN AlloyDB AI mengompensasi kehilangan perolehan dengan terlebih dahulu melakukan langkah pemeringkatan dengan sejumlah besar kandidat vektor PCA dari indeks. Kemudian, ScaNN memeringkat ulang kandidat vektor PCA berdasarkan vektor aslinya.
Untuk mendapatkan informasi selengkapnya, lihat scann.pre_reordering_num_neighbors.
Langkah berikutnya
- Pelajari praktik terbaik untuk menyesuaikan indeks ScaNN.
- Mulai menggunakan embedding vektor dengan AlloyDB AI.
- Pelajari lebih lanjut indeks ScaNN AlloyDB AI.