Dalam artikel ini, Anda mempelajari cara menyebarkan model pembelajaran mesin terlatih AutoML ke titik akhir inferensi real time online. Pembelajaran mesin otomatis, juga disebut sebagai ML otomatis atau AutoML, adalah proses mengotomatisasi tugas berulang yang memakan waktu dalam mengembangkan model pembelajaran mesin. Untuk informasi selengkapnya, lihat Apa itu pembelajaran mesin otomatis (AutoML)?
Di bagian berikut, Anda mempelajari cara menyebarkan model pembelajaran mesin terlatih AutoML ke titik akhir online menggunakan:
Sebarkan dari studio Azure Machine Learning dan tanpa kode
Menyebarkan model yang dilatih AutoML dari halaman ML Otomatis adalah pengalaman tanpa kode. Artinya, Anda tidak perlu menyiapkan skrip penilaian dan lingkungan karena keduanya dibuat secara otomatis.
Di studio Azure Pembelajaran Mesin, buka halaman ML Otomatis.
Pilih eksperimen Anda dan jalankan.
Pilih tab Model + pekerjaan anak.
Pilih model yang ingin Anda sebarkan.
Setelah Anda memilih model, tombol Sebarkan tersedia dengan menu dropdown.
Pilih Opsi titik akhir real-time.
Sistem menghasilkan Model dan Lingkungan yang diperlukan untuk penyebaran.
Sebarkan secara manual dari studio atau baris perintah
Jika Anda ingin memiliki lebih banyak kontrol atas penyebaran, Anda dapat mengunduh artefak pelatihan dan menyebarkannya.
Untuk mengunduh komponen, Anda perlu penyebaran:
Buka eksperimen ML Otomatis Anda dan jalankan di ruang kerja pembelajaran mesin Anda.
Pilih tab Model + pekerjaan anak.
Pilih model yang ingin Anda gunakan. Setelah Anda memilih model, tombol Unduh diaktifkan.
Pilih Unduh.
Anda menerima file .zip yang berisi:
File spesifikasi lingkungan conda bernama conda_env_<VERSION>.yml
File penilaian Python bernama scoring_file_<VERSION>.py
Model itu sendiri, dalam file Python .pkl bernama model.pkl
Untuk menyebarkan menggunakan file-file ini, Anda dapat menggunakan studio atau Azure CLI.
Di studio Azure Pembelajaran Mesin, buka halaman Model.
Pilih Pilih + Daftar dari>file lokal.
Daftarkan model yang Anda unduh dari eksekusi ML Otomatis.
Buka halaman Lingkungan, pilih Lingkungan kustom, dan pilih + Buat untuk membuat lingkungan untuk penyebaran Anda. Gunakan conda yaml yang diunduh untuk membuat lingkungan kustom.
Pilih model, dan dari menu dropdown Deploy , pilih Titik akhir real time.
Selesaikan semua langkah dalam wizard untuk membuat titik akhir dan penyebaran online.
Untuk membuat penyebaran dari CLI, Anda memerlukan Azure CLI dengan ekstensi ML v2. Jalankan perintah berikut untuk mengonfirmasi:
az version
Jika menerima pesan kesalahan atau Anda tidak melihat Extensions: ml dalam respons, ikuti langkah-langkah di Menginstal dan menyiapkan CLI (v2).
Masuk.
az login
Jika Anda memiliki akses ke beberapa langganan Azure, Anda dapat mengatur langganan aktif Anda.
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
Atur grup sumber daya default dan ruang kerja ke tempat Anda ingin membuat penyebaran.
az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION
Letakkan file penilaian di direktorinya sendiri
Buat direktori yang disebut src. Simpan file penilaian yang Anda unduh ke file tersebut. Direktori ini diunggah ke Azure dan berisi semua kode sumber yang diperlukan untuk melakukan inferensi. Untuk model AutoML, hanya ada satu file penilaian.
Buat titik akhir dan file yaml penyebaran
Untuk membuat titik akhir online dari baris perintah, buat endpoint.yml dan file deployment.yml . Kode berikut, yang diambil dari repositori Contoh Pembelajaran Mesin Azure, menunjukkan titik akhir/online/terkelola/sampel/, yang menangkap semua input yang diperlukan.
Anda perlu mengubah file ini untuk menggunakan file yang Anda unduh dari halaman Model AutoML.
Buat file automl_endpoint.yml dan automl_deployment.yml dan tempelkan konten contoh sebelumnya.
Ubah nilai name dari titik akhir. Nama titik akhir harus unik dalam wilayah Azure. Nama untuk titik akhir harus dimulai dengan huruf besar atau kecil dan hanya terdiri dari karakter '-' dan alfanumerik.
Dalam file automl_deployment.yml, ubah nilai kunci di jalur berikut.
Jalur
Ubah ke
model:path
Jalur ke file model.pkl yang Anda unduh.
code_configuration:code:path
Direktori tempat Anda meletakkan file penilaian.
code_configuration:scoring_script
Nama file penilaian Python (scoring_file_<VERSION>.py).
environment:conda_file
URL file untuk file lingkungan conda yang diunduh (conda_env_<VERSION>.yml).
Buat direktori yang disebut src. Simpan file penilaian yang Anda unduh ke file tersebut. Direktori ini diunggah ke Azure dan berisi semua kode sumber yang diperlukan untuk melakukan inferensi. Untuk model AutoML, hanya ada satu file penilaian.
Sambungkan ke ruang kerja Azure Machine Learning
Impor pustaka yang diperlukan.
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
ManagedOnlineDeployment,
Model,
Environment,
CodeConfiguration,
)
from azure.identity import DefaultAzureCredential
Konfigurasikan detail ruang kerja dan dapatkan handel ke ruang kerja.
# enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
# get a handle to the workspace
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace
)
Membuat titik akhir dan penyebaran
Buat titik akhir dan penyebaran online terkelola.
Mengonfigurasi titik akhir online.
Tip
name: Nama titik akhir. Nama harus unik dalam wilayah Azure. Nama untuk titik akhir harus dimulai dengan huruf besar atau kecil dan hanya terdiri dari karakter '-' dan alfanumerik. Untuk informasi selengkapnya tentang aturan penamaan, lihat batas titik akhir.
auth_mode : Gunakan key untuk autentikasi berbasis kunci. Gunakan aml_token untuk autentikasi berbasis token Azure Machine Learning. key tidak kedaluwarsa, tetapi aml_token kedaluwarsa. Untuk informasi selengkapnya tentang mengautentikasi, lihat Mengautentikasi ke titik akhir online.
# Creating a unique endpoint name with current datetime to avoid conflicts
import datetime
online_endpoint_name = "endpoint-" + datetime.datetime.now().strftime("%m%d%H%M%f")
# create an online endpoint
endpoint = ManagedOnlineEndpoint(
name=online_endpoint_name,
description="this is a sample online endpoint",
auth_mode="key",
)
Buat titik akhir.
Menggunakan yang MLClient dibuat sebelumnya, buat Titik Akhir di ruang kerja. Perintah ini memulai pembuatan titik akhir. Ini mengembalikan respons konfirmasi saat pembuatan titik akhir berlanjut.
ml_client.begin_create_or_update(endpoint)
Mengonfigurasi penyebaran online.
Penyebaran adalah kumpulan sumber daya yang diperlukan untuk menghosting model yang melakukan inferensi aktual. Buat penyebaran untuk titik akhir kami menggunakan ManagedOnlineDeployment kelas .
Dalam contoh ini, file yang Anda unduh dari halaman Model AutoML ada di direktori src . Anda dapat memodifikasi parameter dalam kode agar sesuai dengan situasi Anda.
Parameter
Ubah ke
model:path
Jalur ke file model.pkl yang Anda unduh.
code_configuration:code:path
Direktori tempat Anda meletakkan file penilaian.
code_configuration:scoring_script
Nama file penilaian Python (scoring_file_<VERSION>.py).
environment:conda_file
URL file untuk file lingkungan conda yang diunduh (conda_env_<VERSION>.yml).
Buat penyebaran.
Menggunakan yang MLClient dibuat sebelumnya, buat penyebaran di ruang kerja. Perintah ini mulai membuat penyebaran. Ini mengembalikan respons konfirmasi saat pembuatan penyebaran berlanjut.