Ringkasan penelusuran vektor Spanner

Halaman ini menjelaskan penelusuran vektor dan cara kerjanya di Spanner.

Penelusuran vektor adalah kemampuan bawaan berperforma tinggi yang memungkinkan penelusuran semantik dan pencocokan kesamaan pada data vektor berdimensi tinggi. Dengan menyimpan dan mengindeks embedding vektor langsung dalam database transaksional Anda, 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 tidak terstruktur. Data ini dibuat dari data tidak terstruktur menggunakan model machine learning. Misalnya, Anda dapat menggunakan Vertex AI Text Embedding API untuk membuat, menyimpan, dan memperbarui embedding teks untuk data yang disimpan di Spanner.

Metode penelusuran

Spanner mendukung dua metode untuk menemukan vektor serupa:

  • K-tetangga terdekat (KNN): Melakukan penelusuran yang tepat dengan menghitung jarak antara kueri dan setiap vektor dalam set data. Metode ini memberikan perolehan yang lebih akurat, tetapi membutuhkan banyak komputasi untuk set data yang sangat besar.

  • Perkiraan tetangga terdekat (ANN): Menggunakan indeks vektor (berdasarkan algoritma ScaNN Google) untuk menemukan kecocokan dengan cepat di sejumlah besar vektor. Fitur ini mengorbankan sedikit akurasi (perolehan) untuk mendapatkan peningkatan 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 fungsi GoogleSQL ML.PREDICT atau PostgreSQL spanner.ML_PREDICT_ROW untuk membuat embedding dari model Vertex AI langsung dalam alur kueri Anda.

  • Pemfilteran inline: Gabungkan penelusuran vektor dengan filter metadata terstruktur secara efisien (misalnya, "Temukan gambar serupa dengan kategori = 'sepatu' dan harga < 100") tanpa mengurangi performa.

  • Integrasi LangChain: Dukungan bawaan untuk LangChain memungkinkan Anda membangun aplikasi retrieval-augmented generation (RAG) menggunakan Spanner sebagai penyimpanan vektor.

Kemampuan penelusuran campuran

Penelusuran vektor paling efektif jika digabungkan 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 Gabungkan kesamaan semantik dengan presisi kata kunci menggunakan penggabungan peringkat timbal balik (RRF) untuk relevansi penelusuran yang lebih baik.
Vektor + grafik Gunakan penelusuran vektor untuk menemukan titik entri (node) yang relevan dalam grafik properti, lalu telusuri hubungan yang kompleks.

Langkah berikutnya