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

Selain itu, Anda harus:

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.

Cuplikan layar antarmuka pengguna untuk mendaftarkan model.


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:

  1. type; apakah model adalah mlflow_model,custom_model atau triton_model.
  2. 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