Pengantar penelusuran vektor

Dokumen ini memberikan ringkasan tentang penelusuran vektor di BigQuery. Penelusuran vektor adalah teknik untuk membandingkan objek serupa menggunakan penyematan, dan digunakan untuk mendukung produk Google, termasuk Google Penelusuran, YouTube, dan Google Play. Anda dapat menggunakan penelusuran vektor untuk melakukan penelusuran dalam skala besar. Saat menggunakan indeks vektor dengan penelusuran vektor, Anda dapat memanfaatkan teknologi dasar seperti indeks file terbalik (IVF) dan algoritma ScaNN.

Penelusuran vektor dibuat berdasarkan embedding. Embedding adalah vektor numerik berdimensi tinggi yang mewakili entitas tertentu, seperti potongan teks atau file audio. Model machine learning (ML) menggunakan penyematan untuk mengenkode semantik tentang entity tersebut agar lebih mudah untuk memahami dan membandingkannya. Misalnya, operasi umum dalam model pengelompokan, klasifikasi, dan rekomendasi adalah mengukur jarak antara vektor dalam ruang embedding untuk menemukan item yang paling mirip secara semantik.

Konsep kemiripan dan jarak semantik dalam ruang penyematan ini ditunjukkan secara visual saat Anda mempertimbangkan cara plot item yang berbeda. Misalnya, istilah seperti kucing, , dan singa, yang semuanya mewakili jenis binatang, dikelompokkan berdekatan dalam ruang ini karena karakteristik semantiknya yang sama. Demikian pula, istilah seperti mobil, truk, dan istilah yang lebih umum kendaraan akan membentuk cluster lain. Hal ini ditunjukkan dalam gambar berikut:

Konsep yang serupa secara semantik, seperti _kucing_, _anjing_, dan _singa_, atau _mobil_, _truk_, dan _kendaraan_, berada dekat
satu sama lain di ruang penyematan.

Anda dapat melihat bahwa cluster hewan dan kendaraan diposisikan jauh dari satu sama lain. Pemisahan antargrup mengilustrasikan prinsip bahwa semakin dekat objek dalam ruang penyematan, semakin semantik objek tersebut, dan jarak yang lebih besar menunjukkan ketidaksamaan semantik yang lebih besar.

BigQuery menyediakan pengalaman menyeluruh untuk membuat penyematan, mengindeks konten, dan melakukan penelusuran vektor. Anda dapat menyelesaikan setiap tugas ini secara terpisah, atau dalam satu perjalanan. Untuk tutorial yang menunjukkan cara menyelesaikan semua tugas ini, lihat Melakukan penelusuran semantik dan retrieval augmented generation.

Untuk melakukan penelusuran vektor menggunakan SQL, Anda menggunakan fungsi VECTOR_SEARCH. Secara opsional, Anda dapat membuat indeks vektor dengan menggunakan pernyataan CREATE VECTOR INDEX. Saat indeks vektor digunakan, VECTOR_SEARCH menggunakan teknik penelusuran Approximate Nearest Neighbor untuk meningkatkan performa penelusuran vektor, dengan kompromi pengurangan recall sehingga menampilkan hasil yang lebih mendekati. Tanpa indeks vektor, VECTOR_SEARCH menggunakan penelusuran brute force untuk mengukur jarak setiap data. Anda juga dapat memilih untuk menggunakan brute force untuk mendapatkan hasil yang tepat meskipun indeks vektor tersedia.

Dokumen ini berfokus pada pendekatan SQL, tetapi Anda juga dapat melakukan penelusuran vektor menggunakan DataFrame BigQuery di Python. Untuk notebook yang mengilustrasikan pendekatan Python, lihat Mem-build aplikasi Penelusuran Vektor menggunakan BigQuery DataFrames.

Kasus penggunaan

Kombinasi pembuatan penyematan dan penelusuran vektor memungkinkan banyak kasus penggunaan yang menarik. Beberapa kemungkinan kasus penggunaan adalah sebagai berikut:

  • Pembuatan yang ditingkatkan pengambilan (RAG): Menguraikan dokumen, melakukan penelusuran vektor pada konten, dan menghasilkan jawaban ringkas untuk pertanyaan bahasa alami menggunakan model Gemini, semuanya dalam BigQuery. Untuk notebook yang mengilustrasikan skenario ini, lihat Mem-build aplikasi Vector Search menggunakan BigQuery DataFrames.
  • Merekomendasikan produk pengganti atau produk yang cocok: Tingkatkan aplikasi e-commerce dengan menyarankan alternatif produk berdasarkan perilaku pelanggan dan kesamaan produk.
  • Analisis log: Membantu tim melakukan triage anomali secara proaktif dalam log dan mempercepat investigasi. Anda juga dapat menggunakan kemampuan ini untuk memperkaya konteks untuk LLM, guna meningkatkan alur kerja deteksi ancaman, forensik, dan pemecahan masalah. Untuk notebook yang mengilustrasikan skenario ini, lihat Pendeteksian & Investigasi Anomali Log dengan Embedding Teks + Penelusuran Vektor BigQuery.
  • Pengelompokan dan penargetan: Segmentasikan audiens dengan presisi. Misalnya, jaringan rumah sakit dapat mengelompokkan pasien menggunakan catatan bahasa alami dan data terstruktur, atau pemasar dapat menargetkan iklan berdasarkan intent kueri. Untuk notebook yang mengilustrasikan skenario ini, lihat Create-Campaign-Customer-Segmentation.
  • Resolusi dan penghapusan duplikat entitas: Membersihkan dan menggabungkan data. Misalnya, perusahaan periklanan dapat menghapus duplikat data informasi identitas pribadi (PII), atau perusahaan real estate dapat mengidentifikasi alamat surat yang cocok.

Harga

Fungsi VECTOR_SEARCH dan pernyataan CREATE VECTOR INDEX menggunakan harga komputasi BigQuery.

  • Fungsi VECTOR_SEARCH: Anda akan ditagih untuk penelusuran kesamaan, menggunakan harga sesuai permintaan atau edisi.

    • On-demand: Anda akan ditagih berdasarkan jumlah byte yang dipindai di tabel dasar, indeks, dan kueri penelusuran.
    • Harga edisi: Anda akan ditagih untuk slot yang diperlukan guna menyelesaikan tugas dalam edisi reservasi. Penghitungan kemiripan yang lebih besar dan lebih kompleks akan dikenai biaya lebih banyak.

  • Pernyataan CREATE VECTOR INDEX: Pemrosesan yang diperlukan untuk membuat dan memuat ulang indeks vektor tidak dikenai biaya selama ukuran total data tabel yang diindeks berada di bawah batas per organisasi. Untuk mendukung pengindeksan di luar batas ini, Anda harus menyediakan pemesanan sendiri untuk menangani tugas pengelolaan indeks.

Penyimpanan juga merupakan pertimbangan untuk penyematan dan indeks. Jumlah byte yang disimpan sebagai penyematan dan indeks akan dikenai biaya penyimpanan aktif.

  • Indeks vektor akan dikenai biaya penyimpanan saat aktif.
  • Anda dapat menemukan ukuran penyimpanan indeks menggunakan tampilan INFORMATION_SCHEMA.VECTOR_INDEXES. Jika indeks vektor belum mencapai cakupan 100%, Anda tetap akan ditagih untuk apa pun yang telah diindeks. Anda dapat memeriksa cakupan indeks menggunakan tampilan INFORMATION_SCHEMA.VECTOR_INDEXES.

Kuota dan batas

Untuk informasi selengkapnya, lihat Batas indeks vektor.

Batasan

Kueri yang berisi fungsi VECTOR_SEARCH tidak akan dipercepat oleh BigQuery BI Engine.

Langkah berikutnya