Pencarian vektor di Pencarian Azure AI

Pencarian vektor adalah pendekatan pengambilan informasi yang mendukung pengindeksan dan kueri melalui representasi numerik konten. Karena kontennya numerik daripada teks biasa, pencocokan didasarkan pada vektor yang paling mirip dengan vektor kueri. Pendekatan ini memungkinkan pencocokan di seluruh:

  • Kesamaan semantik atau konseptual. Misalnya, "anjing" dan "kaninus" secara konseptual mirip tetapi berbeda secara linguistik.
  • Konten multibahasa, seperti "anjing" dalam bahasa Inggris dan "hund" dalam bahasa Jerman.
  • Beberapa jenis konten, seperti "anjing" dalam teks biasa dan gambar anjing.

Artikel ini menyediakan gambaran umum pencarian vektor di Pencarian Azure AI, termasuk skenario, ketersediaan, dan integrasi yang didukung dengan layanan Azure lainnya.

Tips

Ingin segera memulai? Ikuti langkah-langkah berikut:

  1. Berikan penyematan untuk indeks Anda atau hasilkan penyematan dalam alur pengindeks.
  2. Buat indeks vektor.
  3. Jalankan kueri vektor.

Skenario apa yang dapat didukung pencarian vektor?

Pencarian vektor mendukung skenario berikut:

  • Pencarian kesamaan. Kodekan teks menggunakan model penyematan atau model sumber terbuka, seperti penyematan OpenAI atau SBERT. Anda kemudian mengambil dokumen menggunakan kueri yang juga dikodekan sebagai vektor.

  • Pencarian hibrid. Pencarian Azure AI mendefinisikan pencarian hibrid sebagai eksekusi pencarian vektor dan pencarian keyword dalam permintaan yang sama. Dukungan vektor diimplementasikan di tingkat lapangan. Jika indeks berisi bidang vektor dan nonvektor, Anda bisa menulis kueri yang menargetkan keduanya. Kueri dijalankan secara paralel, dan hasilnya digabungkan ke dalam satu respons dan diberi peringkat yang sesuai.

  • Pencarian multimodal Kodekan teks dan gambar menggunakan penyematan multimodal, seperti OpenAI CLIP atau GPT-4 Turbo dengan Vision di Azure OpenAI, lalu kueri ruang penyematan yang terdiri dari vektor dari kedua jenis konten.

  • Pencarian multibahasa. Pencarian Azure AI dirancang untuk ekstensibilitas. Jika Anda memiliki model penyematan dan model obrolan yang dilatih dalam beberapa bahasa, Anda dapat memanggilnya melalui keterampilan kustom atau bawaan di sisi pengindeksan atau vektorizer di sisi kueri. Untuk kontrol lebih lanjut atas terjemahan teks, gunakan kemampuan bahasa multi didukung oleh Pencarian Azure AI untuk konten nonvektor dalam skenario pencarian hibrid.

  • Pencarian vektor yang difilter. Permintaan kueri dapat menyertakan kueri vektor dan ekspresi filter. Filter berlaku untuk bidang teks dan numerik. Ini berguna untuk filter metadata dan untuk menyertakan atau mengecualikan hasil pencarian berdasarkan kriteria filter. Meskipun bidang vektor tidak dapat difilter, Anda dapat menyiapkan teks atau bidang numerik yang dapat difilter. Mesin pencari dapat memproses filter sebelum atau sesudah menjalankan kueri vektor.

  • Database Vektor Pencarian Azure AI menyimpan data yang Anda cari. Gunakan sebagai indeks vektor murni saat Anda memerlukan memori jangka panjang atau pangkalan pengetahuan, penegasan data untuk arsitektur generasi dengan penambahan pengambilan (RAG), atau aplikasi yang menggunakan vektor.

Bagaimana cara kerja pencarian vektor?

Pencarian Azure AI mendukung pengindeksan, penyimpanan, dan melakukan kueri vektor embedding dari dalam indeks pencarian. Diagram berikut menunjukkan alur kerja pengindeksan dan kueri untuk pencarian vektor.

Arsitektur alur kerja pencarian vektor.

Di sisi pengindeksan, Pencarian Azure AI menggunakan algoritma tetangga terdekat untuk menempatkan vektor serupa yang berdekatan dalam indeks. Secara internal, ini membuat indeks vektor untuk setiap bidang vektor.

Bagaimana Anda mendapatkan penyematan dari konten sumber Anda ke dalam Pencarian Azure AI tergantung pada pendekatan pemrosesan Anda:

  • Untuk pemrosesan internal, Pencarian Azure AI menawarkan pemotongan dan vektorisasi data yang terintegrasi dalam jalur pengindeks. Anda menyediakan sumber daya yang diperlukan, seperti titik akhir dan informasi koneksi untuk Azure OpenAI. Pencarian Azure AI kemudian melakukan panggilan dan menangani transisi. Pendekatan ini memerlukan pengindeks, sumber data yang didukung, dan set keterampilan yang mendorong pemotongan dan penyematan.

  • Untuk pemrosesan eksternal, Anda dapat menghasilkan embeddings di luar Pencarian Azure AI dan mendorong konten yang sudah di-vektor langsung ke bidang vektor dalam indeks pencarian Anda.

Di sisi kueri, aplikasi klien Anda mengumpulkan input pengguna, biasanya melalui perintah. Anda dapat menambahkan langkah pengodean untuk mem-vektorisasi input lalu mengirim kueri vektor ke indeks Pencarian Azure AI Anda untuk pencarian kesamaan. Seperti halnya pengindeksan, Anda dapat menggunakan vektorisasi terintegrasi untuk mengodekan kueri. Untuk kedua pendekatan, Pencarian Azure AI mengembalikan dokumen dengan k tetangga terdekat (kNN) yang diminta dalam hasil.

Pencarian Azure AI mendukung skenario hybrid yang menjalankan pencarian vektor dan kata kunci secara paralel dan mengembalikan tataan hasil terpadu, yang sering memberikan hasil yang lebih baik daripada pencarian vektor atau kata kunci saja. Untuk pencarian hibrid, konten vektor dan nonvektor diserap ke dalam indeks yang sama untuk kueri yang berjalan secara bersamaan.

Ketersediaan dan harga

Pencarian vektor tersedia di semua wilayah dan di semua tingkatan tanpa biaya tambahan. Namun, menghasilkan embedding atau menggunakan AI untuk pengayaan dalam vektorisasi mungkin dikenakan biaya dari penyedia model.

Untuk portal dan akses terprogram ke pencarian vektor, Anda dapat menggunakan:

Catatan

  • Beberapa layanan pencarian yang dibuat sebelum 1 Januari 2019 tidak mendukung beban kerja vektor. Jika Anda mencoba menambahkan bidang vektor ke skema dan mendapatkan kesalahan, itu adalah hasil dari layanan yang kedaluarsa. Dalam situasi ini, Anda harus membuat layanan pencarian baru untuk mencoba fitur vektor.

  • Layanan pencarian yang dibuat setelah 3 April 2024 menawarkan kuota yang lebih tinggi untuk indeks vektor. Jika Anda memiliki layanan yang lebih lama, Anda mungkin dapat meningkatkan layanan Anda untuk kuota vektor yang lebih tinggi.

Pencarian Azure AI terintegrasi secara mendalam di seluruh platform AI Azure. Tabel berikut mencantumkan produk yang berguna dalam beban kerja vektor.

Produk Integrasi
Azure OpenAI Azure OpenAI menyediakan model penyematan dan model obrolan. Demo dan sampel menargetkan model text-embedding-ada-002 . Kami merekomendasikan Azure OpenAI untuk menghasilkan embedding pada teks.
Alat Pengecoran IMAGE Retrieval Vectorize Image API mendukung vektorisasi konten gambar. Kami merekomendasikan API ini untuk menghasilkan embedding gambar.
Layanan Agen Foundry Dalam Pencarian Azure AI, Anda dapat membuat sumber pengetahuan yang terindeks yang menunjuk ke indeks pencarian yang berisi bidang vektor dan vektorizer. Anda kemudian dapat menginduk sumber pengetahuan ke pangkalan pengetahuan dan menghubungkan pangkalan pengetahuan ke Foundry Agent Service, menyediakan agen Anda dengan hasil pencarian vektor untuk pengambilan pengetahuan yang ditingkatkan.
Platform data Azure: Azure Blob Storage, Azure Cosmos DB, Azure SQL, Microsoft OneLake Anda dapat menggunakan pengindeks untuk mengotomatiskan penyerapan data, lalu menggunakan vektorisasi terintegrasi untuk menghasilkan penyematan. Pencarian Azure AI dapat mengindeks data vektor secara otomatis dari pengindeks blob Azure, Azure Cosmos DB untuk pengindeks NoSQL, Azure Data Lake Storage Gen2, Penyimpanan Tabel Azure, dan Microsoft OneLake. Untuk informasi selengkapnya, lihat Menambahkan bidang vektor ke indeks pencarian.

Ini juga umumnya digunakan dalam kerangka kerja sumber terbuka seperti LangChain.