Pengantar embeddings dan penelusuran vektor
Dokumen ini memberikan ringkasan tentang embedding dan penelusuran vektor di BigQuery. Penelusuran vektor adalah teknik untuk membandingkan objek serupa menggunakan embedding, dan teknik ini 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 pengindeksan file terbalik (IVF) dan algoritma ScaNN.
Penelusuran vektor dibangun di atas embedding. Embedding adalah vektor numerik berdimensi tinggi yang merepresentasikan entity tertentu, seperti potongan teks atau file audio. Model machine learning (ML) menggunakan embedding untuk mengenkode semantik tentang entity tersebut agar lebih mudah dipahami dan dibandingkan. 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 kesamaan dan jarak semantik dalam ruang embedding ini ditunjukkan secara visual saat Anda mempertimbangkan cara memetakan berbagai item. Misalnya, istilah seperti kucing, , dan singa, yang semuanya merepresentasikan jenis hewan, dikelompokkan berdekatan dalam ruang ini karena karakteristik semantik yang sama. Demikian pula, istilah seperti mobil, truk, dan istilah kendaraan yang lebih umum akan membentuk cluster lain. Hal ini ditunjukkan dalam gambar berikut:
Anda dapat melihat bahwa cluster hewan dan kendaraan diposisikan berjauhan satu sama lain. Pemisahan antara grup menggambarkan prinsip bahwa semakin dekat objek dalam ruang penyematan, semakin mirip secara semantik, dan jarak yang lebih jauh menunjukkan perbedaan semantik yang lebih besar.
Kasus penggunaan
Kombinasi pembuatan embedding dan penelusuran vektor memungkinkan banyak kasus penggunaan yang menarik. Berikut beberapa kemungkinan kasus penggunaan:
- Retrieval-augmented generation (RAG): Mengurai dokumen, melakukan penelusuran vektor pada konten, dan membuat jawaban yang diringkas untuk pertanyaan bahasa natural menggunakan model Gemini, semuanya dalam BigQuery. Untuk notebook yang menggambarkan skenario ini, lihat Membangun aplikasi Penelusuran Vektor menggunakan DataFrame BigQuery.
- Merekomendasikan produk pengganti atau produk yang cocok: Tingkatkan kualitas aplikasi e-commerce dengan menyarankan alternatif produk berdasarkan perilaku pelanggan dan kemiripan produk.
- Analisis log: Membantu tim secara proaktif melakukan triase anomali dalam log dan mempercepat penyelidikan. Anda juga dapat menggunakan kemampuan ini untuk memperkaya konteks bagi LLM, guna meningkatkan alur kerja deteksi ancaman, forensik, dan pemecahan masalah. Untuk notebook yang menggambarkan skenario ini, lihat Deteksi & 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 maksud kueri. Untuk notebook yang menggambarkan skenario ini, lihat Create-Campaign-Customer-Segmentation.
- Penyelesaian entitas dan penghapusan duplikat: Membersihkan dan menggabungkan data. Misalnya, perusahaan periklanan dapat menghapus duplikat data informasi identitas pribadi (PII), atau perusahaan properti dapat mengidentifikasi alamat surat yang cocok.
Membuat embedding
Bagian berikut menjelaskan fungsi yang ditawarkan BigQuery untuk membantu Anda membuat atau menggunakan penyematan.
Membuat embedding tunggal
Anda dapat menggunakan
fungsi AI.EMBED
dengan model embedding Vertex AI untuk menghasilkan satu embedding
dari input Anda.
Fungsi AI.EMBED mendukung jenis input berikut:
- Data teks.
- Data gambar yang diwakili oleh nilai
ObjectRef. (Pratinjau) - Data gambar yang diwakili oleh nilai
ObjectRefRuntime.
Membuat tabel embedding
Anda dapat menggunakan
AI.GENERATE_EMBEDDING
untuk membuat tabel yang memiliki sematan untuk semua data dalam kolom tabel
input Anda. Untuk semua jenis model yang didukung, AI.GENERATE_EMBEDDING
berfungsi dengan data terstruktur dalam
tabel standar. Untuk model penyematan multimodal, AI.GENERATE_EMBEDDING juga berfungsi dengan konten visual dari kolom tabel standar yang berisi nilai ObjectRef, atau dari tabel objek.
Untuk model jarak jauh, semua inferensi terjadi di Vertex AI. Untuk jenis model lainnya, semua inferensi terjadi di BigQuery. Hasilnya disimpan di BigQuery.
Gunakan topik berikut untuk mencoba pembuatan embedding di BigQuery ML:
- Buat teks,
gambar, atau
video menggunakan fungsi
AI.GENERATE_EMBEDDING. - Membuat dan menelusuri embedding multimodal
- Melakukan penelusuran semantik dan retrieval-augmented generation
Pembuatan embedding mandiri
Anda dapat menggunakan pembuatan embedding otonom untuk menyederhanakan proses pembuatan, pengelolaan, dan kueri embedding. BigQuery mempertahankan kolom embedding di tabel Anda berdasarkan kolom sumber. Saat Anda menambahkan atau mengubah data di kolom sumber, BigQuery akan otomatis membuat atau memperbarui kolom embedding untuk data tersebut menggunakan model embedding Vertex AI. Hal ini berguna jika Anda ingin BigQuery mempertahankan sematan saat data sumber Anda diperbarui secara rutin.
Telusuri
Fungsi penelusuran berikut tersedia:
VECTOR_SEARCH: Lakukan penelusuran vektor menggunakan SQL.AI.SEARCH(Pratinjau): Telusuri hasil yang mirip dengan string yang Anda berikan. Anda dapat menggunakan fungsi ini jika tabel Anda telah mengaktifkan pembuatan sematan mandiri.AI.SIMILARITY(Pratinjau): Bandingkan dua input dengan menghitung kesamaan kosinus di antara embedding-nya. Fungsi ini berfungsi baik jika Anda ingin melakukan sejumlah kecil perbandingan dan Anda belum melakukan pra-komputasi embedding apa pun. Anda harus menggunakanVECTOR_SEARCHjika performa sangat penting dan Anda bekerja dengan sejumlah besar sematan. Bandingkan fungsinya untuk memilih fungsi terbaik untuk kasus penggunaan Anda.
Secara opsional, Anda dapat membuat indeks vektor dengan
menggunakan
pernyataan CREATE VECTOR INDEX.
Saat indeks vektor digunakan, fungsi VECTOR_SEARCH dan AI.SEARCH menggunakan teknik penelusuran Tetangga Terdekat Perkiraan untuk meningkatkan performa penelusuran vektor, dengan mengurangi recall dan menampilkan hasil yang lebih perkiraan. Tanpa indeks vektor, fungsi ini 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.
Harga
Fungsi VECTOR_SEARCH dan AI.SEARCH serta pernyataan CREATE VECTOR INDEX menggunakan harga komputasi BigQuery.
Fungsi
VECTOR_SEARCHdanAI.SEARCH: Anda ditagih untuk penelusuran kesamaan, menggunakan harga sesuai permintaan atau harga edisi.- On-demand: Anda akan ditagih untuk jumlah byte yang dipindai dalam tabel dasar, indeks, dan kueri penelusuran.
Harga edisi: Anda akan ditagih untuk slot yang diperlukan untuk menyelesaikan tugas dalam edisi reservasi Anda. Penghitungan kemiripan yang lebih besar dan lebih kompleks akan dikenai lebih banyak biaya.
Pernyataan
CREATE VECTOR INDEX: Tidak ada biaya untuk pemrosesan yang diperlukan untuk membuat dan memuat ulang indeks vektor Anda selama total ukuran data tabel yang diindeks berada di bawah batas per organisasi Anda. Untuk mendukung pengindeksan di luar batas ini, Anda harus menyediakan pemesanan sendiri untuk menangani tugas pengelolaan indeks.
Penyimpanan juga menjadi pertimbangan untuk penyematan dan indeks. Jumlah byte yang disimpan sebagai sematan dan indeks akan dikenai biaya penyimpanan aktif.
- Indeks vektor akan dikenai biaya penyimpanan saat aktif.
- Anda dapat menemukan ukuran penyimpanan indeks dengan menggunakan
tampilan
INFORMATION_SCHEMA.VECTOR_INDEXES. Jika indeks vektor belum mencapai cakupan 100%, Anda tetap akan dikenai biaya untuk apa pun yang telah diindeks. Anda dapat memeriksa cakupan indeks menggunakan tampilanINFORMATION_SCHEMA.VECTOR_INDEXES.
Kuota dan batas
Untuk mengetahui informasi selengkapnya, lihat Batas indeks vektor dan batas fungsi AI generatif.
Batasan
Kueri yang berisi fungsi VECTOR_SEARCH atau AI.SEARCH tidak
dipercepat oleh
BigQuery BI Engine.
Langkah berikutnya
- Pelajari lebih lanjut cara membuat indeks vektor.
- Pelajari cara melakukan penelusuran vektor menggunakan fungsi
VECTOR_SEARCH. - Pelajari cara melakukan penelusuran semantik menggunakan
fungsi
AI.SEARCH. - Pelajari lebih lanjut pembuatan penyematan mandiri.
- Coba tutorial Menelusuri embedding dengan penelusuran vektor untuk mempelajari cara membuat indeks vektor, lalu lakukan penelusuran vektor untuk embedding dengan dan tanpa indeks.
Coba tutorial Melakukan penelusuran semantik dan retrieval-augmented generation untuk mempelajari cara melakukan tugas berikut:
- Buat embedding teks.
- Buat indeks vektor pada embedding.
- Lakukan penelusuran vektor dengan embedding untuk menelusuri teks serupa.
- Lakukan retrieval-augmented generation (RAG) dengan menggunakan hasil penelusuran vektor untuk memperkaya input perintah dan meningkatkan hasil.
Coba tutorial Mem-parsing PDF dalam pipeline retrieval-augmented generation untuk mempelajari cara membuat pipeline RAG berdasarkan konten PDF yang di-parsing.
Anda juga dapat melakukan penelusuran vektor menggunakan DataFrame BigQuery di Python. Untuk notebook yang mengilustrasikan pendekatan ini, lihat Membangun aplikasi Penelusuran Vektor menggunakan DataFrame BigQuery.