Memilih indeks vektor di AlloyDB AI

Pilih versi dokumentasi:

Halaman ini menjelaskan strategi penelusuran vektor AlloyDB AI dan menjelaskan kapan harus menggunakan setiap strategi. Secara default, AlloyDB Omni menggunakan penelusuran tetangga k terdekat (KNN) untuk menemukan vektor yang mirip dengan kueri. Indeks vektor menerapkan strategi penelusuran yang disebut Perkiraan Tetangga Terdekat (ANN). Saat Anda membuat indeks vektor, AlloyDB AI menggunakan ANN, yang memberikan performa lebih baik daripada KNN. Perlu diingat bahwa, saat Anda memilih indeks vektor, Anda harus menyeimbangkan latensi kueri dan panggilan.

Panggilan mengukur seberapa efektif penelusuran mengambil semua item yang relevan untuk kueri tertentu. Misalnya, bayangkan Anda memiliki 100 embedding, yang masing-masing mewakili entity dalam database Anda. Anda mengkueri embedding dengan vektor target dan membatasinya hingga 10 hasil. Penelusuran vektor KNN menemukan 10 vektor terdekat yang tepat menggunakan metode penghitungan brute force, yang menghasilkan panggilan 100%. AlloyDB AI menggunakan metode ini secara default jika tidak ada indeks penelusuran vektor yang dibuat atau dipilih. Saat Anda membuat indeks vektor di AlloyDB Omni, indeks tersebut biasanya menggunakan ANN, yang mungkin mempartisi vektor menurut kemiripan untuk memfasilitasi pengambilan yang lebih cepat. Akibatnya, dengan menggunakan ANN, 10 vektor yang ditampilkan dalam contoh sebelumnya mungkin tidak persis 10 vektor yang paling dekat jaraknya. Jika 9 dari 10 vektor yang diambil adalah yang paling dekat dalam ruang ke vektor kueri Anda, maka panggilan Anda adalah 90%. Untuk mengetahui informasi selengkapnya, lihat Mengukur panggilan kueri vektor.

Latensi kueri menentukan seberapa cepat hasil penelusuran dibuat. Misalnya, latensi dihitung berdasarkan waktu yang dihabiskan untuk penelusuran guna menampilkan vektor setelah Anda mengirimkan kueri.

Memilih strategi penelusuran

Saat Anda melakukan penelusuran vektor di AlloyDB Omni, pilih salah satu strategi penelusuran berikut:

Strategi Penelusuran Deskripsi Kasus Penggunaan
Tetangga k terdekat (KNN)

Algoritma yang menemukan titik data tetangga k terdekat ke titik data kueri tertentu. Saat Anda melakukan penelusuran vektor tanpa membuat indeks, penelusuran KNN akan dilakukan secara default.

Untuk lebih meningkatkan performa penelusuran KNN, tambahkan kolom embedding Anda, dan kolom lain yang terkait dengan kueri Anda, ke penyimpanan kolom di columnar engine. Anda dapat menambahkan kolom secara manual atau menambahkan kolom menggunakan kolom otomatis.

  • Aplikasi Anda sangat sensitif terhadap akurasi dan Anda memerlukan kecocokan terdekat yang tepat.
  • Anda memiliki puluhan ribu vektor
Perkiraan Tetangga Terdekat (ANN) Algoritma yang menemukan titik data terdekat secara perkiraan. ANN membagi titik data pelanggan yang ada ke dalam grup kecil berdasarkan kemiripan.
  • Aplikasi Anda memerlukan latensi rendah.
  • Anda memiliki lebih dari 100.000 vektor.

Dua jenis indeks vektor berbasis ANN yang umum untuk AlloyDB Omni adalah ScaNN dan HNSW. Gunakan panduan berikut untuk memutuskan jenis indeks mana yang paling sesuai untuk kasus penggunaan Anda:

Jenis Indeks Waktu Penggunaan Manfaat Akselerasi Columnar Engine
ScaNN

Biasanya cocok untuk data berdimensi rendah atau set data besar yang melebihi memori.

Dapat diskalakan dengan baik hingga 10 miliar vektor.

Menawarkan beberapa manfaat dibandingkan HNSW di PostgreSQL standar:

  • Kueri vektor hingga 6 kali lebih cepat dan kueri penelusuran vektor terfilter hingga 10 kali lebih cepat
  • Pembuatan indeks hingga 16 kali lebih cepat
  • Throughput tulis hingga 24 kali lebih tinggi
  • Menggunakan memori hingga 4 kali lebih sedikit
Penelusuran vektor dengan indeks ScaNN dapat dipercepat oleh columnar engine AlloyDB Omni. Untuk mengetahui informasi selengkapnya, lihat Mempercepat penelusuran vektor dengan columnar engine.
HNSW

Biasanya cocok untuk data berdimensi lebih tinggi yang sebagian besar sesuai dengan cache dalam memori.

Dapat diskalakan dengan baik hingga 10-20 juta vektor.

Indeks HNSW yang dipercepat columnar engine pgvector di AlloyDB Omni menawarkan kueri vektor hingga 4 kali lebih cepat daripada PostgreSQL standar Penelusuran vektor dengan indeks HNSW dapat dipercepat oleh columnar engine AlloyDB Omni. Untuk mengetahui informasi selengkapnya, lihat Mempercepat penelusuran vektor dengan columnar engine.

Google merekomendasikan agar Anda membuat indeks vektor untuk mengoptimalkan performa pada kueri penelusuran vektor. Untuk mengetahui informasi selengkapnya tentang cara indeks ANN digunakan untuk penelusuran kemiripan, lihat Membuat indeks menggunakan ScaNN.

Untuk mempercepat penelusuran KNN terfilter, gunakan columnar engine.

Langkah berikutnya