Tutorial: Memilih model penyematan dan obrolan untuk RAG di Azure AI Search
Solusi RAG yang dibangun di Azure AI Search mengambil dependensi pada penyematan model untuk vektorisasi, dan model obrolan untuk pencarian percakapan atas data Anda.
Di tutorial ini, Anda akan:
- Pelajari model mana di cloud Azure yang berfungsi dengan integrasi bawaan
- Pelajari tentang model Azure yang digunakan untuk obrolan
- Menyebarkan model dan mengumpulkan informasi model untuk kode Anda
- Mengonfigurasi akses mesin pencari ke model Azure
- Pelajari tentang keterampilan kustom dan vektorizer untuk melampirkan model non-Azure
Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
Prasyarat
portal Azure, digunakan untuk menyebarkan model dan mengonfigurasi penetapan peran di cloud Azure.
Peran Pemilik atau Administrator Akses Pengguna pada langganan Azure Anda, diperlukan untuk membuat penetapan peran. Anda menggunakan setidaknya tiga sumber daya Azure dalam tutorial ini. Koneksi diautentikasi menggunakan ID Microsoft Entra, yang memerlukan kemampuan untuk membuat peran. Penetapan peran untuk menyambungkan ke model didokumentasikan dalam artikel ini. Jika Anda tidak dapat membuat peran, Anda dapat menggunakan kunci API sebagai gantinya.
Penyedia model, seperti Azure OpenAI, Azure AI Vision melalui sumber daya multi-layanan layanan Azure AI, atau Azure AI Foundry.
Kami menggunakan Azure OpenAI dalam tutorial ini. Penyedia lain tercantum sehingga Anda mengetahui opsi Anda untuk vektorisasi terintegrasi.
Azure AI Search, Tingkat dasar, atau yang lebih tinggi menyediakan identitas terkelola yang digunakan dalam penetapan peran.
Wilayah bersama. Untuk menyelesaikan semua tutorial dalam seri ini, wilayah harus mendukung Azure AI Search dan penyedia model. Lihat wilayah yang didukung untuk:
Azure AI Search saat ini menghadapi ketersediaan terbatas di beberapa wilayah. Untuk mengonfirmasi status wilayah, periksa daftar wilayah Pencarian Azure AI.
Tip
Periksa artikel ini untuk daftar wilayah yang tumpang tindih.
Meninjau model yang mendukung vektorisasi bawaan
Konten vektorisasi meningkatkan hasil kueri dalam solusi RAG. Azure AI Search mendukung tindakan vektorisasi bawaan dalam alur pengindeksan. Ini juga mendukung vektorisasi pada waktu kueri, mengonversi input teks atau gambar menjadi penyematan untuk pencarian vektor. Dalam langkah ini, identifikasi model penyematan yang berfungsi untuk konten dan kueri Anda. Jika Anda menyediakan data vektor mentah dan kueri vektor mentah, atau jika solusi RAG Anda tidak menyertakan data vektor, lewati langkah ini.
Kueri vektor yang menyertakan langkah konversi teks ke vektor harus menggunakan model penyematan yang sama yang digunakan selama pengindeksan. Mesin pencari tidak melemparkan kesalahan jika Anda menggunakan model yang berbeda, tetapi Anda mendapatkan hasil yang buruk.
Untuk memenuhi persyaratan model yang sama, pilih model penyematan yang dapat direferensikan melalui keterampilan selama pengindeksan dan melalui vektorizer selama eksekusi kueri. Tabel berikut mencantumkan pasangan keterampilan dan vektorizer. Untuk melihat bagaimana model penyematan digunakan, lewati ke depan untuk Membuat alur pengindeksan untuk kode yang memanggil keterampilan penyematan dan vektorizer yang cocok.
Azure AI Search menyediakan dukungan keterampilan dan vektorizer untuk model penyematan berikut di cloud Azure.
Klien | Menyematkan model | Keterampilan | Vektorizer |
---|---|---|---|
Azure OpenAI | text-embedding-ada-002, text-embedding-3-large, text-embedding-3-small |
AzureOpenAIEmbedding | AzureOpenAIEmbedding |
Azure AI Visual | multimodal 4,0 1 | AzureAIVision | AzureAIVision |
Katalog model Azure AI Foundry | Facebook-DinoV2-Image-Embeddings-ViT-Base, Facebook-DinoV2-Image-Embeddings-ViT-Giant, Cohere-embed-v3-english, Cohere-embed-v3-multilingual |
AML2 | Katalog model Azure AI Foundry |
1 Mendukung vektorisasi gambar dan teks.
2 Model yang disebarkan dalam katalog model diakses melalui titik akhir AML. Kami menggunakan keterampilan AML yang ada untuk koneksi ini.
Anda dapat menggunakan model lain selain yang tercantum di sini. Untuk informasi selengkapnya, lihat Menggunakan model non-Azure untuk penyematan dalam artikel ini.
Catatan
Input ke model penyematan biasanya merupakan data yang dipotong. Dalam pola AZURE AI Search RAG, potongan ditangani dalam alur pengindeks, tercakup dalam tutorial lain dalam seri ini.
Meninjau model yang digunakan untuk AI generatif pada waktu kueri
Azure AI Search tidak memiliki kode integrasi untuk model obrolan, jadi Anda harus memilih LLM yang anda kenal dan yang memenuhi kebutuhan Anda. Anda dapat mengubah kode kueri untuk mencoba model yang berbeda tanpa harus membangun ulang indeks atau menjalankan ulang bagian mana pun dari alur pengindeksan. Tinjau Cari dan hasilkan jawaban untuk kode yang memanggil model obrolan.
Model berikut umumnya digunakan untuk pengalaman pencarian obrolan:
Klien | Model obrolan |
---|---|
Azure OpenAI | GPT-35-Turbo, GPT-4, GPT-4o, GPT-4 Turbo |
Model GPT-35-Turbo dan GPT-4 dioptimalkan untuk bekerja dengan input yang diformat sebagai percakapan.
Kami menggunakan GPT-4o dalam tutorial ini. Selama pengujian, kami menemukan bahwa cenderung tidak melengkapi dengan data pelatihannya sendiri. Misalnya, mengingat kueri "berapa banyak bumi yang dicakup oleh air?", GPT-35-Turbo menjawab menggunakan pengetahuan bawaannya tentang bumi untuk menyatakan bahwa 71% bumi ditutupi oleh air, meskipun data sampel tidak memberikan fakta itu. Sebaliknya, GPT-4o merespons (dengan benar) dengan "Saya tidak tahu".
Menyebarkan model dan mengumpulkan informasi
Model harus disebarkan dan dapat diakses melalui titik akhir. Keterampilan dan vektorizer terkait penyematan membutuhkan jumlah dimensi dan nama model.
Seri tutorial ini menggunakan model dan penyedia model berikut:
- Penyematan teks-3-besar di Azure OpenAI untuk penyematan
- GPT-4o di Azure OpenAI untuk penyelesaian obrolan
Anda harus memiliki Kontributor OpenAI Cognitive Services atau yang lebih tinggi untuk menyebarkan model di Azure OpenAI.
Pilih Penyebaran di menu sebelah kiri.
Pilih Sebarkan model>Sebarkan model dasar.
Pilih text-embedding-3-large dari daftar dropdown dan konfirmasi pilihan.
Tentukan nama penyebaran. Kami merekomendasikan "text-embedding-3-large".
Terima default.
Pilih Sebarkan.
Ulangi langkah-langkah sebelumnya untuk gpt-4o.
Catat nama model dan titik akhir. Menyematkan keterampilan dan vektorizer merakit titik akhir penuh secara internal, sehingga Anda hanya memerlukan URI sumber daya. Misalnya, mengingat
https://MY-FAKE-ACCOUNT.openai.azure.com/openai/deployments/text-embedding-3-large/embeddings?api-version=2024-06-01
, titik akhir yang harus Anda berikan dalam definisi keterampilan dan vektorizer adalahhttps://MY-FAKE-ACCOUNT.openai.azure.com
.
Mengonfigurasi akses mesin pencari ke model Azure
Untuk eksekusi alur dan kueri, tutorial ini menggunakan ID Microsoft Entra untuk autentikasi dan peran untuk otorisasi.
Tetapkan diri Anda dan izin identitas layanan pencarian di Azure OpenAI. Kode untuk tutorial ini berjalan secara lokal. Permintaan ke Azure OpenAI berasal dari sistem Anda. Selain itu, hasil pencarian dari mesin pencari diteruskan ke Azure OpenAI. Untuk alasan ini, Anda dan layanan pencarian memerlukan izin di Azure OpenAI.
Masuk ke portal Azure dan temukan layanan pencarian Anda.
Konfigurasikan Azure AI Search untuk menggunakan identitas yang dikelola sistem.
Temukan sumber daya Azure OpenAI Anda.
Pilih Kontrol akses (IAM) di menu sebelah kiri.
Pilih Tambahkan penetapan peran.
Pilih Pengguna OpenAI Cognitive Services.
Pilih Identitas terkelola lalu pilih Anggota. Temukan identitas yang dikelola sistem untuk layanan pencarian Anda di daftar dropdown.
Selanjutnya, pilih Pengguna, grup, atau perwakilan layanan lalu pilih Anggota. Cari akun pengguna Anda lalu pilih dari daftar dropdown.
Pastikan Anda memiliki dua prinsip keamanan yang ditetapkan untuk peran tersebut.
Pilih Tinjau dan Tetapkan untuk membuat penetapan peran.
Untuk akses ke model di Azure AI Vision, tetapkan Pengguna OpenAI Cognitive Services. Untuk Azure AI Foundry, tetapkan Azure AI Developer.
Menggunakan model non-Azure untuk penyematan
Pola untuk mengintegrasikan model penyematan apa pun adalah membungkusnya dalam keterampilan kustom dan vektorizer kustom. Bagian ini menyediakan tautan ke artikel referensi. Untuk contoh kode yang memanggil model non-Azure, lihat demo penyematan kustom.
Klien | Menyematkan model | Keterampilan | Vektorizer |
---|---|---|---|
Apa pun | Apa pun | keterampilan kustom | vektorizer kustom |