Referensi indeks ScaNN AlloyDB Omni

Pilih versi dokumentasi:

Halaman ini memberikan referensi mendetail untuk parameter penyesuaian yang tersedia untuk indeks Scalable Nearest Neighbors (ScaNN) di AlloyDB Omni.

Untuk tutorial langkah demi langkah tentang cara menerapkan penelusuran vektor dari awal hingga akhir, lihat panduan tentang cara Melakukan penelusuran vektor.

Parameter penyempurnaan

Parameter indeks dan kueri berikut digunakan untuk menemukan keseimbangan yang tepat antara perolehan dan kueri per detik (QPS).

Parameter penyesuaian Deskripsi Jenis opsi
mode Menentukan indeks ScaNN sebagai indeks yang disesuaikan secara otomatis atau manual. Opsi yang tersedia adalah sebagai berikut:
  • AUTO: indeks yang disesuaikan secara otomatis
  • MANUAL: indeks yang disesuaikan secara manual

Untuk mengetahui informasi selengkapnya, lihat Membuat indeks ScaNN.

Pembuatan indeks

(opsional)

max_num_levels Jumlah maksimum tingkat centroid pohon pengelompokan K-means. Untuk panduan dalam menetapkan nilai ini, lihat Menyesuaikan indeks ScaNN.

Nilai yang tersedia adalah sebagai berikut:

  • 1: Indeks ScaNN dua tingkat
  • 2: Indeks ScaNN tiga tingkat
  • 3: Indeks ScaNN empat tingkat (Pratinjau)

Jika Anda menetapkan max_num_levels ke 3, Anda juga harus menetapkan scann.max_allowed_num_levels ke 3. Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik untuk menyesuaikan indeks ScaNN.

Pembuatan indeks

(opsional)

num_leaves Jumlah partisi yang akan diterapkan ke indeks ini. Nilai maksimumnya adalah 30000000. Untuk mengetahui informasi selengkapnya tentang cara memilih nilai ini, lihat Menyesuaikan indeks ScaNN dan Praktik terbaik untuk menyesuaikan indeks ScaNN.

Pembuatan indeks

(diperlukan untuk indeks yang disesuaikan secara manual)

quantizer Jenis quantizer yang ingin Anda gunakan untuk hierarki K-means. Nilai default ditetapkan ke SQ8 yang memberikan performa kueri yang lebih baik dengan kehilangan perolehan minimal (biasanya kurang dari 1-2%).

Tetapkan ke FLAT jika diperlukan perolehan sebesar 99% atau lebih tinggi.
Pembuatan indeks
(opsional)
scann.enable_pca Mengaktifkan Analisis Komponen Utama (PCA), yang merupakan teknik pengurangan dimensi yang digunakan untuk secara otomatis mengurangi ukuran embedding jika memungkinkan. Opsi ini diaktifkan secara default.

Setel ke false jika Anda melihat penurunan kualitas ingatan.
Pembuatan indeks
(opsional)
auto_maintenance Mempertahankan indeks ScaNN secara otomatis sehingga seiring bertambahnya set data, AlloyDB Omni menganalisis dan memperbarui sentroid, serta membagi partisi pencilan yang besar. Tindakan ini akan otomatis meningkatkan QPS dan hasil penelusuran. Untuk mengetahui informasi selengkapnya, lihat Memelihara indeks secara otomatis.

Pembuatan indeks

(opsional)

Mengelola jumlah partisi yang ditelusuri indeks vektor secara otomatis. Untuk mengetahui informasi selengkapnya, lihat Persentase penelusuran partisi.

Jumlah absolut partisi yang akan ditelusuri. Hal ini memungkinkan Anda menyeimbangkan pencarian kueri dan QPS. Nilai defaultnya adalah 1% dari num_leaves.

Nilai yang lebih tinggi menghasilkan perolehan kueri yang lebih baik, tetapi QPS yang lebih rendah. Demikian pula, nilai yang lebih rendah menghasilkan perolehan kueri yang lebih buruk, tetapi QPS yang lebih baik.

Waktu proses kueri

(opsional)

scann.pre_reordering_num_neighbors

Menentukan jumlah tetangga kandidat yang akan dipertimbangkan selama tahap pengurutan ulang setelah penelusuran awal mengidentifikasi serangkaian kandidat. Tetapkan parameter ini ke nilai yang lebih tinggi daripada jumlah tetangga yang ingin Anda tampilkan dalam kueri. Nilai yang lebih tinggi menghasilkan perolehan yang lebih baik, tetapi QPS yang lebih rendah.

Defaultnya adalah 0, yang menonaktifkan pengurutan ulang. Jika PCA diaktifkan selama pembuatan indeks, nilai defaultnya adalah 50 x K, dengan K adalah LIMIT yang ditentukan dalam kueri.

Waktu proses kueri

(opsional)

scann.num_search_threads Jumlah thread penelusur untuk penelusuran multi-thread. Hal ini dapat membantu mengurangi latensi kueri tunggal dengan menggunakan lebih dari satu thread untuk penelusuran ScaNN ANN dalam aplikasi yang sensitif terhadap latensi. Setelan ini tidak meningkatkan latensi kueri tunggal jika database sudah terikat CPU. Nilai defaultnya adalah 2. Runtime kueri
(opsional)

scann.satisfy_limit (Pratinjau)

Jika ditetapkan ke relaxed_order, flag database akan mengatasi perolehan yang tidak memadai. Recall yang tidak memadai dapat terjadi jika recall yang diamati dari kueri berada di bawah target recall, yang lebih mungkin terjadi saat menggunakan filter. Setelan ini membantu mencapai target perolehan dengan mengizinkan pemindaian vektor untuk terus menelusuri di luar batas num_leaves_to_search hingga jumlah hasil yang memadai ditemukan. Runtime kueri
(opsional)
Flag database ini menetapkan batas atas pada persentase total leaf yang dapat dikunjungi untuk kueri yang Anda jalankan dengan mengaktifkan scann.satisfy_limit. Ini adalah batas atas GUC yang tersedia dan berlaku untuk mode penelusuran otomatis dan manual. Hal ini mencegah penelusuran melampaui batas, yang dapat menurunkan performa secara signifikan. Parameter ini berlaku saat scann.satisfy_limit diaktifkan.
Anda dapat menetapkan parameter ini ke nilai apa pun antara 0 hingga 100. Nilai defaultnya adalah 15%. Nilai default ini didasarkan pada alasan bahwa jika penelusuran perlu memeriksa lebih dari 15% leaf, filter kemungkinan cukup selektif sehingga penelusuran perkiraan tetangga terdekat (ANN) tidak memberikan manfaat, sehingga pemfilteran di awal k-nearest neighbor (KNN) menjadi pilihan yang lebih sesuai.
Waktu proses kueri
(opsional)

Langkah berikutnya