Bekerja dengan Model di Azure Machine Learning
BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)
Azure Machine Learning memungkinkan Anda bekerja dengan berbagai jenis model. Dalam artikel ini, Anda mempelajari cara menggunakan Azure Machine Learning untuk bekerja dengan berbagai jenis model, seperti kustom, MLflow, dan Triton. Anda juga mempelajari cara mendaftarkan model dari lokasi yang berbeda serta cara menggunakan SDK Azure Machine Learning, antarmuka pengguna (UI), dan CLI Azure Machine Learning untuk mengelola model Anda.
Tip
Jika Anda memiliki aset model yang dibuat menggunakan SDK/CLI v1, Anda tetap dapat menggunakannya dengan SDK/CLI v2. Kompatibilitas mundur penuh disediakan. Semua model yang terdaftar di SDK V1 diberi jenis custom
.
Prasyarat
- Langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai. Coba Azure Machine Learning versi gratis atau berbayar.
- Ruang kerja Azure Machine Learning.
- Azure Machine Learning SDK v2 untuk Python.
- Azure Machine Learning CLI v2.
Selain itu, Anda harus:
- Instal Azure CLI dan ekstensi ml ke Azure CLI. Untuk informasi lebih lanjut, lihat Memasang, menyiapkan, dan menggunakan CLI (v2).
Jalur yang didukung
Saat Anda memberikan model yang ingin Anda daftarkan, Anda harus menentukan parameter path
yang menunjuk ke data atau lokasi pekerjaan. Di bawah ini adalah tabel yang menampilkan berbagai lokasi data yang didukung dalam Azure Machine Learning serta contoh untuk parameter path
:
Lokasi | Contoh |
---|---|
Jalur pada komputer lokal Anda | mlflow-model/model.pkl |
Jalur di Azure Machine Learning Datastore | azureml://datastores/<datastore-name>/paths/<path_on_datastore> |
Jalur dari pekerjaan Azure Machine Learning | azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location> |
Jalur dari pekerjaan MLflow | runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location> |
Jalur dari Aset Model di Ruang Kerja Azure Machine Learning | azureml:<model-name>:<version> |
Jalur dari Aset Model di Azure Machine Learning Registry | azureml://registries/<registry-name>/models/<model-name>/versions/<version> |
Mode yang didukung
Saat Anda menjalankan pekerjaan dengan input/output model, Anda dapat menentukan mode - misalnya, apakah Anda ingin model dipasang hanya-baca atau diunduh ke target komputasi. Tabel di bawah ini menunjukkan mode yang dimungkinkan untuk kombinasi jenis/mode/input/output yang berbeda:
Jenis | Input/Output | upload |
download |
ro_mount |
rw_mount |
direct |
---|---|---|---|---|---|---|
File custom |
Input | |||||
custom folder |
Input | ✓ | ✓ | ✓ | ||
mlflow |
Input | ✓ | ✓ | |||
File custom |
Output | ✓ | ✓ | ✓ | ||
custom folder |
Output | ✓ | ✓ | ✓ | ||
mlflow |
Output | ✓ | ✓ | ✓ |
Ikuti di Jupyter Notebooks
Anda dapat mengikuti sampel ini di Jupyter Notebook. Di repositori azureml-examples , buka notebook: model.ipynb.
Membuat model di registri model
Pendaftaran model memungkinkan Anda menyimpan dan membuat versi model di cloud Azure, dalam ruang kerja Anda. Registri model membantu Anda mengatur dan melacak model terlatih Anda.
Cuplikan kode di bagian ini mencakup cara untuk:
- Mendaftarkan model Anda sebagai aset di Azure Machine Learning menggunakan CLI.
- Mendaftarkan model Anda sebagai aset di Azure Machine Learning menggunakan SDK.
- Mendaftarkan model Anda sebagai aset di Azure Machine Learning menggunakan antarmuka pengguna.
Cuplikan ini menggunakan custom
dan mlflow
.
custom
adalah jenis yang mengacu pada file model atau folder yang dilatih dengan standar kustom yang saat ini tidak didukung oleh Azure Machine Learning.mlflow
adalah jenis yang mengacu pada model yang dilatih dengan mlflow. Model terlatih MLflow berada dalam folder yang berisi file MLmodel, file model, file dependensi conda, dan file requirements.txt.
Menyambungkan ke ruang kerja Anda
Pertama, mari kita sambungkan ke ruang kerja Azure Machine Learning tempat kita akan bekerja.
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
Mendaftarkan model Anda sebagai aset di Azure Machine Learning menggunakan CLI
Gunakan tab berikut untuk memilih lokasi model Anda.
$schema: https://azuremlschemas.azureedge.net/latest/model.schema.json
name: local-file-example
path: mlflow-model/model.pkl
description: Model created from local file.
az ml model create -f <file-name>.yml
Untuk contoh lengkapnya, lihat model YAML.
Mendaftarkan model Anda sebagai aset di Azure Machine Learning menggunakan SDK
Gunakan tab berikut untuk memilih lokasi model Anda.
from azure.ai.ml.entities import Model
from azure.ai.ml.constants import AssetTypes
file_model = Model(
path="mlflow-model/model.pkl",
type=AssetTypes.CUSTOM_MODEL,
name="local-file-example",
description="Model created from local file.",
)
ml_client.models.create_or_update(file_model)
Mendaftarkan model Anda sebagai aset di Azure Machine Learning menggunakan antarmuka pengguna
Untuk membuat model di Azure Machine Learning, dari antarmuka pengguna, buka halaman Model. Pilih Daftarkan model dan pilih lokasi model Anda. Isi bidang yang diperlukan, lalu pilih Daftar.
Mengelola model
SDK dan CLI (v2) juga memungkinkan Anda mengelola siklus hidup aset model Azure Machine Learning Anda.
Daftar
Cantumkan semua model di ruang kerja Anda:
az ml model list
Cantumkan semua versi model dengan nama tertentu:
az ml model list --name run-model-example
tampilkan
Dapatkan detail model tertentu:
az ml model show --name run-model-example --version 1
Pembaruan
Memperbarui properti yang dapat diubah dari model tertentu:
az ml model update --name run-model-example --version 1 --set description="This is an updated description." --set tags.stage="Prod"
Penting
Untuk model, hanya description
dan tags
yang dapat diperbarui. Semua properti lainnya tidak dapat diubah; jika Anda perlu mengubah salah satu properti tersebut, Anda harus membuat versi baru model.
Arsipkan
Pengarsipan model akan menyembunyikannya secara default dari kueri daftar (az ml model list
). Anda masih dapat terus mereferensikan dan menggunakan model yang diarsipkan di alur kerja Anda. Anda dapat mengarsipkan semua versi model atau hanya versi tertentu.
Jika Anda tidak menentukan versi, semua versi model dengan nama yang diberikan akan diarsipkan. Jika Anda membuat versi model baru di bawah kontainer model yang diarsipkan, versi baru tersebut juga akan secara otomatis diatur sebagai diarsipkan.
Arsipkan semua versi model:
az ml model archive --name run-model-example
Arsipkan versi model tertentu:
az ml model archive --name run-model-example --version 1
Menggunakan model untuk pelatihan
SDK dan CLI (v2) juga memungkinkan Anda menggunakan model dalam pekerjaan pelatihan sebagai input atau output.
Menggunakan model sebagai input dalam pekerjaan
Membuat file YAML untuk spesifikasi pekerjaan (<file-name>.yml
). Menyebutkan pada bagian inputs
pekerjaan:
type
; apakah model adalahmlflow_model
,custom_model
atautriton_model
.- Tempat
path
data Anda berada; dapat berupa salah satu jalur yang diuraikan di bagian Jalur yang Didukung .
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
# Possible Paths for models:
# AzureML Datastore: azureml://datastores/<datastore-name>/paths/<path_on_datastore>
# MLflow run: runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
# Job: azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location>
# Model Asset: azureml:<my_model>:<version>
command: |
ls ${{inputs.my_model}}
inputs:
my_model:
type: mlflow_model # List of all model types here: https://learn.microsoft.com/azure/machine-learning/reference-yaml-model#yaml-syntax
path: ../../assets/model/mlflow-model
environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
Selanjutnya, jalankan pada CLI
az ml job create -f <file-name>.yml
Untuk contoh lengkapnya, lihat repositori GitHub model.
Menggunakan model sebagai output dalam pekerjaan
Dalam pekerjaan, Anda dapat menulis model ke penyimpanan berbasis cloud menggunakan output.
Membuat file YAML untuk spesifikasi pekerjaan (<file-name>.yml
), dengan bagian outputs
yang diisi dengan jenis dan jalur penulisan data Anda:
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
# Possible Paths for Model:
# Local path: mlflow-model/model.pkl
# AzureML Datastore: azureml://datastores/<datastore-name>/paths/<path_on_datastore>
# MLflow run: runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
# Job: azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location>
# Model Asset: azureml:<my_model>:<version>
code: src
command: >-
python hello-model-as-output.py
--input_model ${{inputs.input_model}}
--custom_model_output ${{outputs.output_folder}}
inputs:
input_model:
type: mlflow_model # mlflow_model,custom_model, triton_model
path: ../../assets/model/mlflow-model
outputs:
output_folder:
type: custom_model # mlflow_model,custom_model, triton_model
environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
Selanjutnya, buat pekerjaan menggunakan CLI:
az ml job create --file <file-name>.yml
Untuk contoh lengkapnya, lihat repositori GitHub model.
Langkah berikutnya
- Menginstal dan menyiapkan Python SDK v2
- Penyebaran tanpa kode untuk model MLflow
- Pelajari lebih lanjut tentang MLOps dalam Azure Machine Learning