Membuat penyematan untuk kueri dan dokumen pencarian
Azure AI Search tidak menghosting model vektorisasi, jadi salah satu tantangan Anda adalah membuat penyematan untuk input dan output kueri. Anda dapat menggunakan model penyematan yang didukung, tetapi artikel ini mengasumsikan model penyematan Azure OpenAI untuk langkah-langkah tersebut.
Kami merekomendasikan vektorisasi terintegrasi, yang menyediakan potongan dan vektorisasi data bawaan. Vektorisasi terintegrasi mengambil dependensi pada pengindeks, set keterampilan, dan keterampilan bawaan atau kustom yang menunjuk ke model yang dijalankan secara eksternal dari Azure AI Search.
Jika Anda ingin menangani pemotongan dan vektorisasi data sendiri, kami menyediakan demo di repositori sampel yang menunjukkan kepada Anda cara berintegrasi dengan solusi komunitas lainnya.
Bagaimana model penyematan digunakan dalam kueri vektor
Input kueri adalah vektor, atau teks atau gambar yang dikonversi ke vektor selama pemrosesan kueri. Solusi bawaan dalam Azure AI Search adalah menggunakan vektorizer.
Atau, Anda juga dapat menangani konversi sendiri dengan meneruskan input kueri ke model penyematan pilihan Anda. Untuk menghindari pembatasan tarif, Anda dapat menerapkan logika coba lagi dalam beban kerja Anda. Untuk demo Python, kami menggunakan keulekan.
Output kueri adalah dokumen yang cocok yang ditemukan dalam indeks pencarian. Indeks pencarian Anda sebelumnya harus dimuat dengan dokumen yang memiliki satu atau beberapa bidang vektor dengan penyematan. Apa pun model penyematan yang Anda gunakan untuk pengindeksan, gunakan model yang sama untuk kueri.
Membuat sumber daya di wilayah yang sama
Vektorisasi terintegrasi mengharuskan sumber daya berada di wilayah yang sama:
Periksa wilayah untuk model penyematan teks.
Untuk mendukung kueri hibrid yang menyertakan peringkat semantik, atau jika Anda ingin mencoba integrasi model pembelajaran mesin menggunakan keterampilan kustom dalam alur pengayaan AI, pilih wilayah Pencarian Azure AI yang menyediakan fitur tersebut.
Membuat penyematan untuk kueri improvisasi
Kode Python berikut menghasilkan penyematan yang bisa Anda tempelkan ke properti "nilai" kueri vektor.
!pip install openai
import openai
openai.api_type = "azure"
openai.api_key = "YOUR-API-KEY"
openai.api_base = "https://YOUR-OPENAI-RESOURCE.openai.azure.com"
openai.api_version = "2024-02-01"
response = openai.Embedding.create(
input="How do I use Python in VSCode?",
engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)
Output adalah array vektor 1.536 dimensi.
Tips dan rekomendasi untuk menyematkan integrasi model
Mengidentifikasi kasus penggunaan: Mengevaluasi kasus penggunaan tertentu di mana integrasi model penyematan untuk fitur pencarian vektor dapat menambahkan nilai ke solusi pencarian Anda. Ini dapat mencakup konten gambar multimodal atau pencocokan dengan konten teks, pencarian multibahasa, atau pencarian kesamaan.
Merancang strategi penggugusan: Model penyematan memiliki batasan jumlah token yang dapat mereka terima, yang memperkenalkan persyaratan potongan data untuk file besar. Untuk informasi selengkapnya, lihat Memotong dokumen besar untuk solusi pencarian vektor.
Optimalkan biaya dan performa: Pencarian vektor dapat intensif sumber daya dan tunduk pada batas maksimum, jadi pertimbangkan hanya vektorisasi bidang yang berisi makna semantik. Kurangi ukuran vektor sehingga Anda dapat menyimpan lebih banyak vektor dengan harga yang sama.
Pilih model penyematan yang tepat: Pilih model yang sesuai untuk kasus penggunaan spesifik Anda, seperti penyematan kata untuk pencarian berbasis teks atau penyematan gambar untuk pencarian visual. Pertimbangkan untuk menggunakan model yang telah dilatih sebelumnya seperti text-embedding-ada-002 dari OpenAI atau Image Retrieval REST API dari Azure AI Computer Vision.
Menormalkan panjang Vektor: Pastikan panjang vektor dinormalisasi sebelum menyimpannya dalam indeks pencarian untuk meningkatkan akurasi dan performa pencarian kesamaan. Sebagian besar model yang telah dilatih sebelumnya sudah dinormalisasi tetapi tidak semua.
Sesuaikan model: Jika diperlukan, sesuaikan model yang dipilih pada data khusus domain Anda untuk meningkatkan performa dan relevansinya dengan aplikasi pencarian Anda.
Uji dan iterasi: Terus uji dan perbaiki integrasi model penyematan Anda untuk mencapai performa pencarian dan kepuasan pengguna yang diinginkan.