Keterampilan AML dalam alur pengayaan Azure AI Search
Penting
Dukungan untuk koneksi pengindeks ke katalog model Azure AI Foundry berada dalam pratinjau publik di bawah ketentuan penggunaan tambahan. PRATINJAU REST API mendukung keterampilan ini.
Keterampilan AML memungkinkan Anda memperluas pengayaan AI dengan model Azure Pembelajaran Mesin (AML) kustom atau model penyematan dasar yang disebarkan di Azure AI Foundry. Setelah model AML dilatih dan disebarkan, keterampilan AML mengintegrasikannya ke dalam set keterampilan.
Penggunaan keterampilan AML
Seperti keterampilan bawaan lainnya, keterampilan AML kustom memiliki input dan output. Input dikirim ke titik akhir online AML yang disebarkan sebagai objek JSON. Output titik akhir harus berupa payload JSON dalam respons, bersama dengan kode status keberhasilan. Data Anda diproses di Geo tempat model Anda disebarkan. Respons diharapkan untuk memberikan output yang ditentukan oleh definisi keterampilan AML Anda. Respons lain dianggap sebagai kesalahan dan tidak ada pengayaan yang dilakukan.
Catatan
Pengindeks akan mencoba kembali dua kali untuk kode status HTTP standar tertentu yang dikembalikan dari titik akhir online AML. Kode status HTTP ini adalah:
503 Service Unavailable
429 Too Many Requests
Keterampilan AML dapat dipanggil dengan versi API stabil 2024-07-01 atau Azure SDK yang setara, atau versi API pratinjau 2024-05-01 untuk koneksi ke katalog model di portal Azure AI Foundry.
Keterampilan AML untuk model di Azure AI Foundry
Mulai 2024-05-01-preview REST API dan di portal Azure (yang juga menargetkan pratinjau 2024-05-01), Azure AI Search menyediakan vektorizer katalog model Azure AI Foundry untuk koneksi waktu kueri ke katalog model di portal Azure AI Foundry. Jika Anda ingin menggunakan vektorizer tersebut untuk kueri, keterampilan AML adalah mitra pengindeksan untuk menghasilkan penyematan menggunakan model dalam katalog model Azure AI Foundry.
Selama pengindeksan, keterampilan AML dapat terhubung ke katalog model untuk menghasilkan vektor untuk indeks. Pada waktu kueri, kueri dapat menggunakan vektorizer untuk menyambungkan ke model yang sama untuk mem-vektorisasi string teks untuk kueri vektor. Dalam alur kerja ini, keterampilan AML dan vektorizer katalog model harus digunakan bersama-sama sehingga Anda menggunakan model penyematan yang sama untuk pengindeksan dan kueri. Lihat Menggunakan model penyematan dari katalog model Azure AI Foundry untuk detail dan untuk daftar model penyematan yang didukung.
Sebaiknya gunakan wizard Impor dan vektorisasi data untuk menghasilkan keterampilan yang menyertakan keterampilan AML untuk model penyematan yang disebarkan di Azure AI Foundry. Definisi keterampilan AML untuk input, output, dan pemetaan dihasilkan oleh wizard, yang memberi Anda cara mudah untuk menguji model sebelum menulis kode apa pun.
Prasyarat
- Ruang kerja AML untuk model kustom yang Anda buat, atau proyek di Azure AI Foundry jika model penyematan disebarkan dari katalog.
- Titik akhir Online (real-time) di ruang kerja ini untuk model kustom, atau titik akhir model untuk menyematkan model yang disebarkan dari katalog.
@odata.type
Microsoft.Skills.Custom.AmlSkill
Parameter keterampilan
Parameternya peka huruf besar/kecil. Parameter mana yang Anda pilih untuk digunakan tergantung pada autentikasi apa yang diperlukan titik akhir online AML Anda, jika ada
Nama Parameter | Deskripsi |
---|---|
uri |
(Diperlukan untuk autentikasi kunci) URI penilaian titik akhir online AML tempat payload JSON dikirim. Hanya skema URI https yang diperbolehkan. Untuk menyematkan model dalam katalog model Azure AI Foundry, ini adalah URI target. |
key |
(Diperlukan untuk autentikasi kunci) Kunci untuk titik akhir online AML atau |
resourceId |
(Diperlukan untuk autentikasi token). ID sumber daya Azure Resource Manager dari titik akhir online AML. Ini harus dalam format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/onlineendpoints/{endpoint_name} . |
region |
(Bersifat opsional untuk autentikasi token). Wilayah tempat titik akhir online AML disebarkan. |
timeout |
(Opsional) Ketika ditentukan, menunjukkan batas waktu untuk klien http yang melakukan panggilan API. Interval ini harus diformat sebagai nilai “dayTimeDuration” XSD (subset terbatas dari nilai durasi ISO 8601). Misalnya, PT60S selama 60 detik. Jika tidak diatur, nilai default 30 detik akan dipilih. Batas waktu dapat diatur hingga maksimum 230 detik dan minimal 1 detik. |
degreeOfParallelism |
(Opsional) Ketika ditentukan, menunjukkan jumlah panggilan yang dilakukan pengindeks secara paralel dengan titik akhir yang telah Anda berikan. Anda dapat mengurangi nilai ini jika titik akhir Anda gagal di bawah beban permintaan yang terlalu tinggi. Anda dapat menaikkannya jika titik akhir Anda dapat menerima lebih banyak permintaan dan Anda ingin meningkatkan performa pengindeks. Jika tidak diatur, nilai default 5 akan digunakan. DerajatOfParallelism dapat diatur ke maksimum 10 dan minimal 1. |
Autentikasi
Titik akhir online AML menyediakan dua opsi autentikasi:
Autentikasi berbasis kunci. Kunci statis disediakan untuk mengautentikasi permintaan penilaian dari keterampilan AML. Atur
uri
parameter dankey
untuk koneksi ini.Autentikasi Berbasis Token, tempat titik akhir online AML disebarkan menggunakan autentikasi berbasis token. Identitas terkelola Azure AI layanan Pencarian harus diaktifkan dan memiliki penetapan peran di ruang kerja. Keterampilan AML kemudian menggunakan identitas terkelola layanan untuk mengautentikasi terhadap titik akhir online AML, tanpa kunci statis yang diperlukan. Identitas layanan pencarian harus merupakan Pemilik atau Kontributor. Atur
resourceId
parameter, dan jika layanan pencarian berada di wilayah yang berbeda dari ruang kerja AML, aturregion
parameter .
Input keterampilan
Input keterampilan adalah simpul dokumen yang diperkaya yang dibuat selama pemecahan dokumen. Misalnya, mungkin dokumen akar, gambar yang dinormalisasi, atau konten blob. Tidak ada input yang telah ditentukan sebelumnya untuk keterampilan ini. Untuk input, Anda harus menentukan satu atau beberapa simpul yang diisi pada saat eksekusi keterampilan AML.
Output keterampilan
Output keterampilan adalah simpul baru dari dokumen yang diperkaya yang dibuat oleh keterampilan. Tidak ada output yang telah ditentukan sebelumnya untuk keterampilan ini. Untuk output, Anda harus menyediakan simpul yang dapat diisi dari respons JSON keterampilan AML Anda.
Definisi sampel
{
"@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
"description": "A custom model that detects the language in a document.",
"uri": "https://language-model.models.contoso.com/score",
"context": "/document",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "detected_language_code"
}
]
}
Contoh input struktur JavaScript Object Notation
Struktur JSON ini mewakili payload yang dikirim ke titik akhir online AML Anda. Bidang tingkat atas struktur sesuai dengan "nama" yang ditentukan di bagian inputs
definisi keterampilan. Nilai bidang tersebut berasal dari bidang tersebut source
(yang bisa berasal dari bidang dalam dokumen, atau berpotensi dari keterampilan lain)
{
"text": "Este es un contrato en Inglés"
}
Contoh struktur JSON output
Output sesuai dengan respons yang dikembalikan dari titik akhir online AML Anda. Titik akhir online AML hanya boleh mengembalikan payload JSON (diverifikasi Content-Type
dengan melihat header respons) dan harus menjadi objek di mana bidang adalah pengayaan yang cocok dengan "nama" dalam output
dan yang nilainya dianggap sebagai pengayaan.
{
"detected_language_code": "es"
}
Definisi sampel pembentukan sebaris
{
"@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
"description": "A sample model that detects the language of sentence",
"uri": "https://language-model.models.contoso.com/score",
"context": "/document",
"inputs": [
{
"name": "shapedText",
"sourceContext": "/document",
"inputs": [
{
"name": "content",
"source": "/document/content"
}
]
}
],
"outputs": [
{
"name": "detected_language_code"
}
]
}
Membentuk struktur JSON input sebaris
{
"shapedText": { "content": "Este es un contrato en Inglés" }
}
Membentuk contoh struktur JSON secara sebaris
{
"detected_language_code": "es"
}
Kasus kesalahan
Selain AML Anda tidak tersedia atau mengirimkan kode status yang tidak berhasil, berikut ini dianggap sebagai kasus yang salah:
Titik akhir online AML mengembalikan kode status keberhasilan, tetapi respons menunjukkan bahwa itu bukan
application/json
, maka respons dianggap tidak valid dan tidak ada pengayaan yang dilakukan.Titik akhir online AML mengembalikan JSON yang tidak valid.
Untuk kasus ketika titik akhir online AML tidak tersedia atau mengembalikan kesalahan HTTP, kesalahan ramah dengan detail yang tersedia tentang kesalahan HTTP ditambahkan ke riwayat eksekusi pengindeks.