Pencarian Vektor AI Mosaik
Artikel ini memberikan gambaran umum tentang solusi database vektor Databricks, Mosaic AI Vector Search, termasuk apa itu dan cara kerjanya.
Apa itu Mosaic AI Vector Search?
Mosaic AI Vector Search adalah database vektor yang dibangun ke dalam Databricks Data Intelligence Platform dan terintegrasi dengan alat tata kelola dan produktivitasnya. Database vektor adalah database yang dioptimalkan untuk menyimpan dan mengambil penyematan. Penyematan adalah representasi matematika dari konten semantik data, biasanya data teks atau gambar. Penyematan dihasilkan oleh model bahasa besar dan merupakan komponen utama dari banyak aplikasi GenAI yang bergantung pada menemukan dokumen atau gambar yang mirip satu sama lain. Contohnya adalah sistem RAG, sistem pemberi rekomendasi, dan pengenalan gambar dan video.
Dengan Pencarian Vektor, Anda membuat indeks pencarian vektor dari tabel Delta. Indeks menyertakan data yang disematkan dengan metadata. Anda kemudian dapat mengkueri indeks menggunakan REST API untuk mengidentifikasi vektor yang paling mirip dan mengembalikan dokumen terkait. Anda dapat menyusun indeks untuk disinkronkan secara otomatis saat tabel Delta yang mendasar diperbarui.
Bagaimana cara kerja Pencarian Vektor?
Mosaic AI Vector Search menggunakan algoritma Hierarkis Navigable Small World (HNSW) untuk perkiraan pencarian tetangga terdekatnya dan metrik jarak jarak L2 untuk mengukur kesamaan vektor penyematan. Jika Anda ingin menggunakan kesamaan kosinus, Anda perlu menormalkan penyematan titik data Anda sebelum memberinya umpan ke Pencarian Vektor. Ketika titik data dinormalisasi, peringkat yang dihasilkan oleh jarak L2 sama dengan peringkat yang dihasilkan oleh kesamaan kosinus.
Mosaic AI Vector Search juga mendukung pencarian kesamaan kata kunci hibrid, yang menggabungkan pencarian penyematan berbasis vektor dengan teknik pencarian berbasis kata kunci tradisional. Pendekatan ini cocok dengan kata-kata yang tepat dalam kueri sekaligus menggunakan pencarian kesamaan berbasis vektor untuk menangkap hubungan semantik dan konteks kueri.
Dengan mengintegrasikan kedua teknik ini, pencarian kesamaan kata kunci hibrid mengambil dokumen yang tidak hanya berisi kata kunci yang tepat tetapi juga yang secara konseptual mirip, memberikan hasil pencarian yang lebih komprehensif dan relevan. Metode ini sangat berguna dalam aplikasi RAG di mana data sumber memiliki kata kunci unik seperti SKU atau pengidentifikasi yang tidak cocok untuk pencarian kesamaan murni.
Pencarian hibrid ada di Pratinjau Umum.
Perhitungan pencarian kesamaan
Perhitungan pencarian kesamaan menggunakan rumus berikut:
di mana dist
adalah jarak Euclidean antara kueri q
dan entri x
indeks :
Algoritma pencarian kata kunci
Skor relevansi dihitung menggunakan Okapi BM25. Semua kolom teks atau string dicari, termasuk penyematan teks sumber dan kolom metadata dalam format teks atau string. Fungsi tokenisasi dibagi pada batas kata, menghapus tanda baca, dan mengonversi semua teks menjadi huruf kecil.
Bagaimana pencarian kesamaan dan pencarian kata kunci digabungkan
Hasil pencarian kesamaan dan pencarian kata kunci dikombinasikan menggunakan fungsi Reciprocal Rank Fusion (RRF).
RRF mengatur ulang setiap dokumen dari setiap metode menggunakan skor:
Dalam persamaan di atas, peringkat dimulai pada 0, menjumlahkan skor untuk setiap dokumen dan mengembalikan dokumen penilaian tertinggi.
rrf_param
mengontrol kepentingan relatif dari dokumen berpangkat lebih tinggi dan berpangkat lebih rendah. Berdasarkan literatur, rrf_param
diatur ke 60.
Skor dinormalisasi sehingga skor tertinggi adalah 1 dan skor terendah adalah 0 menggunakan persamaan berikut:
Opsi untuk menyediakan penyematan vektor
Untuk membuat database vektor di Databricks, Anda harus terlebih dahulu memutuskan cara menyediakan penyematan vektor. Databricks mendukung tiga opsi:
Opsi 1 Anda menyediakan tabel Delta sumber yang berisi data dalam format teks. Databricks menghitung penyematan, menggunakan model yang Anda tentukan, dan secara opsional menyimpan penyematan ke tabel di Katalog Unity. Saat tabel Delta diperbarui, indeks tetap disinkronkan dengan tabel Delta.
Diagram berikut menggambarkan proses tersebut:
- Menghitung penyematan kueri. Kueri dapat menyertakan filter metadata.
- Lakukan pencarian kesamaan untuk mengidentifikasi dokumen yang paling relevan.
- Mengembalikan dokumen yang paling relevan dan menambahkannya ke kueri.
Opsi 2 Anda menyediakan tabel Delta sumber yang berisi penyematan yang telah dihitung sebelumnya. Saat tabel Delta diperbarui, indeks tetap disinkronkan dengan tabel Delta.
Diagram berikut menggambarkan proses tersebut:
- Kueri terdiri dari penyematan dan dapat menyertakan filter metadata.
- Lakukan pencarian kesamaan untuk mengidentifikasi dokumen yang paling relevan. Mengembalikan dokumen yang paling relevan dan menambahkannya ke kueri.
Opsi 3 Anda menyediakan tabel Delta sumber yang berisi penyematan yang telah dihitung sebelumnya. Tidak ada sinkronisasi otomatis saat tabel Delta diperbarui. Anda harus memperbarui indeks secara manual menggunakan REST API saat tabel penyematan berubah.
Diagram berikut mengilustrasikan proses, yang sama dengan Opsi 2 kecuali bahwa indeks vektor tidak diperbarui secara otomatis saat tabel Delta berubah:
Cara menyiapkan Pencarian Vektor
Untuk menggunakan Mosaic AI Vector Search, Anda harus membuat hal berikut:
- Titik akhir pencarian vektor. Titik akhir ini melayani indeks pencarian vektor. Anda dapat mengkueri dan memperbarui titik akhir menggunakan REST API atau SDK. Titik akhir diskalakan secara otomatis untuk mendukung ukuran indeks atau jumlah permintaan bersamaan. Lihat Membuat titik akhir pencarian vektor untuk instruksi.
- Indeks pencarian vektor. Indeks pencarian vektor dibuat dari tabel Delta dan dioptimalkan untuk memberikan perkiraan real time pencarian tetangga terdekat. Tujuan pencarian adalah untuk mengidentifikasi dokumen yang mirip dengan kueri. Indeks pencarian vektor muncul di dan diatur oleh Katalog Unity. Lihat Membuat indeks pencarian vektor untuk instruksi.
Selain itu, jika Anda memilih untuk membuat Databricks menghitung penyematan, Anda dapat menggunakan titik akhir API Model Foundation yang telah dikonfigurasi sebelumnya atau membuat titik akhir penyajian model untuk melayani model penyematan pilihan Anda. Lihat API Model Foundation bayar per token atau Membuat model fondasi yang melayani titik akhir untuk instruksi.
Untuk mengkueri titik akhir penyajian model, Anda menggunakan REST API atau Python SDK. Kueri Anda dapat menentukan filter berdasarkan kolom apa pun dalam tabel Delta. Untuk detailnya, lihat Menggunakan filter pada kueri, referensi API, atau referensi Python SDK.
Persyaratan
- Ruang kerja yang diaktifkan Katalog Unity.
- Komputasi tanpa server diaktifkan.
- Tabel sumber harus mengaktifkan Ubah Umpan Data.
- BUAT hak istimewa TABLE pada skema katalog untuk membuat indeks.
- Token akses pribadi diaktifkan.
Perlindungan dan autentikasi data
Databricks menerapkan kontrol keamanan berikut untuk melindungi data Anda:
- Setiap permintaan pelanggan ke Pencarian Vektor diisolasi, diautentikasi, dan diotorisasi secara logis.
- Mosaic AI Vector Search mengenkripsi semua data tidak aktif (AES-256) dan saat transit (TLS 1.2+).
Mosaic AI Vector Search mendukung dua mode autentikasi:
- Token Akses Pribadi - Anda dapat menggunakan token akses pribadi untuk mengautentikasi dengan Pencarian Vektor. Lihat token autentikasi akses pribadi. Jika Anda menggunakan SDK di lingkungan notebook, SDK secara otomatis menghasilkan token PAT untuk autentikasi.
- Token Perwakilan Layanan - Admin dapat menghasilkan token perwakilan layanan dan meneruskannya ke SDK atau API. Lihat menggunakan perwakilan layanan. Untuk kasus penggunaan produksi, Databricks merekomendasikan penggunaan token perwakilan layanan.
Customer Managed Keys (CMK) didukung pada titik akhir yang dibuat pada atau setelah 8 Mei 2024.
Memantau penggunaan dan biaya Pencarian Vektor
Tabel sistem penggunaan yang dapat ditagih memungkinkan Anda memantau penggunaan dan biaya yang terkait dengan indeks pencarian vektor dan titik akhir. Berikut adalah kueri contoh:
SELECT *
FROM system.billing.usage
WHERE billing_origin_product = 'VECTOR_SEARCH'
AND usage_metadata.endpoint_name IS NOT NULL
Untuk detail tentang konten tabel penggunaan tagihan, lihat Referensi tabel sistem penggunaan yang dapat ditagih. Kueri tambahan ada dalam contoh buku catatan berikut.
Buku catatan kueri tabel sistem Pencarian Vektor
Batas ukuran sumber daya dan data
Tabel berikut ini meringkas batas sumber daya dan ukuran data untuk titik akhir dan indeks pencarian vektor:
Sumber daya | Granularitas | Batas |
---|---|---|
Titik akhir pencarian vektor | Per ruang kerja | 100 |
Penyematan | Per titik akhir | 100,000,000 |
Menyematkan dimensi | Per indeks | 4096 |
Indeks | Per titik akhir | 20 |
Kolom | Per indeks | 20 |
Kolom | Jenis yang didukung: Byte, pendek, bilangan bulat, panjang, mengambang, ganda, boolean, string, tanda waktu, tanggal | |
Bidang metadata | Per indeks | 20 |
Nama indeks | Per indeks | 128 karakter |
Batas berikut berlaku untuk pembuatan dan pembaruan indeks pencarian vektor:
Sumber daya | Granularitas | Batas |
---|---|---|
Ukuran baris untuk Indeks Sinkronisasi Delta | Per indeks | 100KB |
Menyematkan ukuran kolom sumber untuk indeks Sinkronisasi Delta | Per Indeks | 32764 byte |
Batas ukuran permintaan upsert massal untuk indeks Direct Vector | Per Indeks | 10MB |
Batas ukuran permintaan penghapusan massal untuk indeks Vektor Langsung | Per Indeks | 10MB |
Batas berikut berlaku untuk API kueri untuk pencarian vektor.
Sumber daya | Granularitas | Batas |
---|---|---|
Panjang teks kueri | Per kueri | 32764 |
Jumlah maksimum hasil yang dikembalikan | Per kueri | 10,000 |
Batasan
- PrivateLink saat ini terbatas pada sekumpulan pelanggan yang dipilih. Jika Anda tertarik menggunakan fitur ini dengan PrivateLink, hubungi perwakilan akun Databricks Anda.
- Ruang kerja yang diatur tidak didukung, oleh karena itu fungsionalitas ini tidak sesuai dengan HIPAA.
- Izin tingkat baris dan kolom tidak didukung. Namun, Anda dapat menerapkan ACL tingkat aplikasi Anda sendiri menggunakan API filter.
Sumber Daya Tambahan:
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk