Dalam artikel ini, Anda akan mempelajari cara menyebarkan model pembelajaran mesin yang dilatih AutoML ke titik akhir online (inferensi real time). Pembelajaran mesin otomatis, juga disebut sebagai ML otomatis atau AutoML, adalah proses mengotomatisasi tugas berulang yang memakan waktu dalam mengembangkan model pembelajaran mesin. Untuk selengkapnya, lihat Apa itu pembelajaran mesin otomatis (AutoML)?.
Dalam artikel ini, Anda akan mengetahui 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, keduanya dibuat secara otomatis.
Buka halaman ML Otomatis di studio
Pilih eksperimen Anda dan jalankan
Pilih tab Model
Pilih model yang ingin Anda sebarkan
Setelah Anda memilih model, tombol Sebarkan akan menyala dengan menu drop-down
Pilih opsi Sebarkan ke titik akhir real time
Sistem akan menghasilkan Model dan Lingkungan yang diperlukan untuk penyebaran.
Selesaikan panduan untuk menyebarkan model ke titik akhir
Sebarkan secara manual dari studio atau baris perintah
Jika ingin memiliki kontrol lebih besar atas penyebaran, Anda dapat mengunduh artefak pelatihan dan menyebarkan mereka.
Untuk mengunduh komponen yang Anda perlukan untuk penyebaran:
Buka eksperimen ML Otomatis Anda dan jalankan di ruang kerja pembelajaran Mesin
Pilih tab Model
Pilih model yang ingin Anda gunakan. Setelah Anda memilih model, tombol Unduh akan diaktifkan
Pilih Unduh
Anda akan 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.
Buka halaman Model di studio Azure Machine Learning
Pilih opsi + Daftarkan Model
Daftarkan model yang Anda unduh dari eksekusi ML Otomatis
Buka halaman Lingkungan, pilih lingkungan Kustom, dan pilih + Buat opsi untuk membuat lingkungan untuk penyebaran Anda. Gunakan conda yaml yang diunduh untuk membuat lingkungan kustom
Pilih model, dan dari opsi drop-down Sebarkan, pilih Sebarkan ke titik akhir real time
Selesaikan semua langkah di 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 bahwa Anda memiliki keduanya:
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 memiliki akses ke beberapa langganan Azure, Anda dapat mengatur langganan aktif:
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
Atur grup sumber daya dan ruang kerja default ke tempat Anda ingin membuat penyebaran:
az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION
Letakkan file penilaian di direktorinya sendiri
Buat direktori bernama src/ dan tempatkan file penilaian yang Anda unduh ke dalamnya. 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, Anda harus membuat file endpoint.yml dan deployment.yml. Kode berikut, yang diambil dari repositori Contoh Azure Machine Learning menunjukkan endpoints/online/managed/sample/, yang mengambil semua input yang diperlukan:
Anda harus mengubah file ini untuk menggunakan file yang diunduh dari halaman Model AutoML.
Buat file automl_endpoint.yml dan automl_deployment.yml lalu tempel konten contoh di atas.
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.
Di file automl_deployment, 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 bernama src/ dan tempatkan file penilaian yang Anda unduh ke dalamnya. 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
Selanjutnya, kita akan membuat titik akhir dan penyebaran online terkelola.
Konfigurasikan 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:
Dengan menggunakan MLClient yang dibuat sebelumnya, kita sekarang akan membuat Titik Akhir di ruang kerja. Perintah ini akan memulai pembuatan titik akhir dan mengembalikan respons konfirmasi sementara pembuatan titik akhir berlanjut.
ml_client.begin_create_or_update(endpoint)
Konfigurasikan penyebaran online:
Penyebaran adalah kumpulan sumber daya yang diperlukan untuk menghosting model yang melakukan inferensi aktual. Kita akan membuat penyebaran untuk titik akhir kita menggunakan kelas ManagedOnlineDeployment.
Dalam contoh di atas, kami menganggap file yang Anda unduh dari halaman Model AutoML berada 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:
Dengan menggunakan MLClient yang dibuat sebelumnya, kita sekarang akan membuat penyebaran di ruang kerja. Perintah ini akan memulai pembuatan penyebaran dan mengembalikan respons konfirmasi saat pembuatan penyebaran berlanjut.