Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Note
Pencarian Azure AI tersedia melalui portal Azure, REST API, dan Azure SDK. Ini juga mendukung Foundry IQ, lapisan pengetahuan terkelola yang mengubah konten perusahaan menjadi pangkalan pengetahuan yang dapat digunakan kembali dan sadar izin untuk agen di portal Microsoft Foundry.
Pencarian Azure AI tidak meng-hosting model embedding, jadi Anda bertanggung jawab untuk membuat vektor untuk input dan output kueri. Pilih salah satu pendekatan berikut:
| Pendekatan | Deskripsi |
|---|---|
| Vektorisasi terintegrasi | Gunakan pemotongan dan vektorisasi data bawaan di Pencarian Azure AI. Pendekatan ini mengandalkan pada pengindeks, set keterampilan, serta keterampilan bawaan atau kustom yang menunjuk ke model embed eksternal, seperti yang terdapat di Microsoft Foundry. |
| Vektorisasi manual | Kelola pemotongan data dan vektorisasi sendiri. Untuk pengindeksan, Anda mendorong dokumen yang telah di-prevektorisasi ke bidang vektor dalam indeks pencarian. Untuk kueri, Anda menyediakan vektor yang telah dikomputasi ke mesin pencari. Untuk demo pendekatan ini, lihat repositori GitHub azure-search-vector-samples . |
Kami merekomendasikan vektorisasi terintegrasi untuk sebagian besar skenario. Meskipun Anda dapat menggunakan model penyematan yang didukung, artikel ini menggunakan model Azure OpenAI untuk ilustrasi.
Bagaimana model penyematan digunakan dalam kueri vektor
Model embedding menghasilkan vektor untuk masukan dan keluaran kueri. Input kueri meliputi:
Teks atau gambar yang dikonversi menjadi vektor selama pemrosesan kueri. Sebagai bagian dari vektorisasi terintegrasi, vektorizer melakukan tugas ini.
Vektor yang telah dikomputasi sebelumnya. Anda dapat menghasilkan vektor ini dengan meneruskan input kueri ke model penyematan pilihan Anda. Untuk menghindari pembatasan laju, terapkan logika coba lagi dalam beban kerja Anda. Demo Python kami menggunakan Tenacity.
Berdasarkan input kueri, mesin pencari mengambil dokumen yang cocok dari indeks pencarian Anda. Dokumen-dokumen ini adalah hasil kueri.
Indeks pencarian Anda harus sudah berisi dokumen dengan satu atau beberapa bidang vektor yang diisi oleh penyematan. Anda dapat membuat penyematan ini melalui vektorisasi terintegrasi atau manual. Untuk memastikan hasil yang akurat, gunakan model penyematan yang sama untuk pengindeksan dan kueri.
Tips untuk menyematkan integrasi model
Identifikasi kasus penggunaan. Evaluasilah kasus penggunaan tertentu di mana integrasi model penyematan untuk fitur pencarian vektor menambah nilai pada solusi pencarian Anda. Contohnya termasuk pencarian multimodal atau konten gambar yang cocok dengan konten teks, pencarian multibahasa, dan pencarian kesamaan.
Merancang strategi potongan. Model penyematan memiliki batasan jumlah token yang mereka terima, sehingga potongan data diperlukan untuk file besar.
Optimalkan biaya dan performa. Pencarian vektor memerlukan banyak sumber daya dan terbatas pada batas maksimum, jadi hanya memvektorisasi bidang yang memiliki makna semantik. Kurangi ukuran vektor untuk menyimpan lebih banyak vektor dengan harga yang sama.
Pilih model penyematan yang tepat. Pilih model untuk kasus penggunaan Anda, seperti penyematan kata untuk pencarian berbasis teks atau penyematan gambar untuk pencarian visual. Pertimbangkan model yang telah dilatih sebelumnya, seperti text-embedding-ada-002 dari OpenAI atau IMAGE Retrieval REST API dari Azure Vision di Foundry Tools.
Menormalkan panjang vektor. Untuk meningkatkan akurasi dan performa pencarian kesamaan, normalisasi panjang vektor sebelum Anda menyimpannya dalam indeks pencarian. Sebagian besar model yang telah dilatih sebelumnya sudah dinormalisasi.
Mengoptimalkan model. Jika diperlukan, sesuaikan model pada data khusus domain Anda untuk meningkatkan performa dan relevansinya dengan aplikasi pencarian Anda.
Uji dan iterasi. Terus menguji dan menyempurnakan integrasi model penyematan untuk mencapai performa pencarian dan kepuasan pengguna yang Anda inginkan.
Membuat sumber daya di wilayah yang sama
Meskipun vektorisasi terintegrasi dengan model penyematan Azure OpenAI tidak memerlukan sumber daya untuk berada di wilayah yang sama, menggunakan wilayah yang sama dapat meningkatkan performa dan mengurangi latensi.
Untuk menggunakan wilayah yang sama untuk sumber daya Anda:
Buat sumber daya Azure OpenAI dan layanan Pencarian Azure AI di wilayah yang sama.
Petunjuk / Saran
Ingin menggunakan peringkat semantik untuk kueri hibrid atau model pembelajaran mesin dalam keterampilan kustom untuk pengayaan AI? Pilih wilayah Pencarian Azure AI yang menyediakan fitur tersebut.
Pilih model penyematan di Foundry
Saat Anda menambahkan pengetahuan ke alur kerja agen di portal Foundry, Anda memiliki opsi untuk membuat indeks pencarian. Panduan memandu Anda melalui langkah-langkah.
Satu langkah melibatkan pemilihan model penyematan untuk mem-vektorisasi konten teks biasa Anda. Model berikut didukung:
- teks-penanaman-3-kecil
- penyisipan-teks-3-besar
- text-embedding-ada-002
- Cohere-embed-v3-bahasa-inggris
- Cohere-embed-v3-multilingual
Model Anda harus sudah disebarkan, dan Anda harus memiliki izin untuk mengaksesnya. Untuk informasi selengkapnya, lihat Gambaran umum penyebaran untuk Model Foundry.
Buat embedding untuk kueri ad hoc
Jika Anda tidak ingin menggunakan vektorisasi terintegrasi, Anda dapat membuat penyematan secara manual dan menempelkannya ke vectorQueries.vector properti kueri vektor. Untuk informasi selengkapnya, lihat Membuat kueri vektor di Pencarian Azure AI.
Contoh berikut mengasumsikan model text-embedding-ada-002. Ganti YOUR-API-KEY dan YOUR-OPENAI-RESOURCE dengan detail sumber daya Azure OpenAI Anda.
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
static async Task Main(string[] args)
{
var apiKey = "YOUR-API-KEY";
var apiBase = "https://YOUR-OPENAI-RESOURCE.openai.azure.com";
var apiVersion = "2024-02-01";
var engine = "text-embedding-ada-002";
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
var requestBody = new
{
input = "How do I use C# in VS Code?"
};
var response = await client.PostAsync(
$"{apiBase}/openai/deployments/{engine}/embeddings?api-version={apiVersion}",
new StringContent(JsonConvert.SerializeObject(requestBody), Encoding.UTF8, "application/json")
);
var responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
Output adalah array vektor 1.536 dimensi.