Halaman ini menjelaskan penelusuran vektor dan cara kerjanya di Spanner.
Penelusuran vektor adalah kemampuan bawaan berperforma tinggi yang memungkinkan penelusuran semantik dan pencocokan kemiripan pada data vektor berdimensi tinggi. Dengan menyimpan dan mengindeks embedding vektor langsung dalam database transaksional, Spanner menghilangkan kebutuhan akan database vektor terpisah dan pipeline ETL yang kompleks.
Konsep utama
Bagian ini memperkenalkan konsep utama penelusuran vektor berikut:
- Embedding vektor
- Metode penelusuran (KNN dan ANN)
- Fungsi jarak
Embedding vektor
Embedding vektor adalah representasi numerik berdimensi tinggi dari data yang tidak terstruktur. Embedding vektor dihasilkan dari data yang tidak terstruktur menggunakan model machine learning. Misalnya, Anda dapat menggunakan API embedding teks Platform Agen Gemini Enterprise untuk membuat, menyimpan, dan memperbarui embedding teks untuk data yang disimpan di Spanner.
Metode penelusuran
Spanner mendukung dua metode untuk menemukan vektor yang serupa:
K-nearest neighbors (KNN): Melakukan penelusuran yang tepat dengan menghitung jarak antara kueri dan setiap vektor dalam set data. Metode ini memberikan perolehan kembali yang lebih akurat, tetapi mahal secara komputasi untuk set data yang sangat besar.
Approximate nearest neighbor (ANN): Menggunakan indeks vektor (berdasarkan algoritma ScaNN Google) untuk menemukan kecocokan dengan cepat di sejumlah besar vektor. Metode ini mengorbankan sejumlah kecil akurasi (perolehan kembali) untuk mendapatkan kecepatan dan skalabilitas.
Kemampuan utama
Skalabilitas: Mendukung miliaran vektor untuk penelusuran ANN yang tidak dipartisi, atau triliunan vektor untuk workload KNN yang dipartisi.
Database dan mesin AI terpadu: Gunakan GoogleSQL
ML.PREDICTatau PostgreSQLspanner.ML_PREDICT_ROWuntuk membuat embedding dari model Platform Agen langsung dalam alur kueri Anda.Pemfilteran inline: Menggabungkan penelusuran vektor dengan filter metadata terstruktur secara efisien (misalnya, "Temukan gambar serupa dengan kategori = 'sepatu' dan harga < 100") tanpa kehilangan performa.
Integrasi LangChain: Dukungan bawaan untuk LangChain memungkinkan Anda membuat aplikasi retrieval-augmented generation (RAG) menggunakan Spanner sebagai penyimpanan vektor.
Kemampuan penelusuran campuran
Penelusuran vektor paling efektif jika dikombinasikan dengan fitur data Spanner lainnya:
| Kombinasi | Manfaat |
|---|---|
| Penelusuran vektor dengan pemfilteran SQL | Menggabungkan penelusuran vektor dengan filter secara efisien (misalnya, "Temukan gambar serupa dengan kategori = 'sepatu' dan harga < 100"). |
| Penelusuran vektor + penelusuran teks lengkap | Menggabungkan kemiripan semantik dengan presisi kata kunci menggunakan reciprocal rank fusion (RRF) untuk relevansi penelusuran yang lebih baik. |
| Vektor + grafik | Menggunakan penelusuran vektor untuk menemukan titik entri (node) yang relevan dalam grafik properti, lalu melintasi hubungan yang kompleks. |
Langkah berikutnya
- Pelajari AI Spanner lebih lanjut.
- Pelajari lebih lanjut cara mendapatkan embedding teks Platform Agen.
- Pelajari lebih lanjut cara melakukan penelusuran K-nearest neighbors (KNN).
- Pelajari lebih lanjut cara melakukan penelusuran approximate nearest neighbors (ANN).