Bekerja dengan model terdaftar di Azure Pembelajaran Mesin
BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)
Dalam artikel ini, Anda belajar mendaftar dan bekerja dengan model di Azure Pembelajaran Mesin dengan menggunakan:
- Antarmuka pengguna studio Azure Pembelajaran Mesin.
- Azure Pembelajaran Mesin V2 CLI.
- Python Azure Pembelajaran Mesin V2 SDK.
Anda akan mempelajari cara untuk:
- Buat model terdaftar di registri model dari file lokal, penyimpanan data, atau output pekerjaan.
- Bekerja dengan berbagai jenis model, seperti kustom, MLflow, dan Triton.
- Gunakan model sebagai input atau output dalam pekerjaan pelatihan.
- Mengelola siklus hidup aset model.
Pendaftaran model
Pendaftaran model memungkinkan Anda menyimpan dan membuat versi model di ruang kerja Anda di cloud Azure. Registri model membantu Anda mengatur dan melacak model terlatih Anda. Anda dapat mendaftarkan model sebagai aset di Azure Pembelajaran Mesin dengan menggunakan Azure CLI, Python SDK, atau antarmuka pengguna studio Pembelajaran Mesin.
Jalur yang didukung
Untuk mendaftarkan model, Anda perlu menentukan jalur yang menunjuk ke data atau lokasi pekerjaan. Tabel berikut ini memperlihatkan berbagai lokasi data yang didukung Azure Pembelajaran Mesin, dan sintaks untuk path
parameter:
Lokasi | Sintaks |
---|---|
Komputer lokal | <model-folder>/<model-filename> |
Azure Pembelajaran Mesin datastore | azureml://datastores/<datastore-name>/paths/<path_on_datastore> |
Pekerjaan Azure Pembelajaran Mesin | azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location> |
Pekerjaan MLflow | runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location> |
Aset model di ruang kerja Pembelajaran Mesin | azureml:<model-name>:<version> |
Aset model dalam registri Pembelajaran Mesin | azureml://registries/<registry-name>/models/<model-name>/versions/<version> |
Mode yang didukung
Saat Anda menggunakan model untuk input atau output, Anda dapat menentukan salah satu mode berikut. Misalnya, Anda dapat menentukan apakah model harus dipasang baca-saja atau diunduh ke target komputasi.
ro_mount
: Pasang data ke target komputasi sebagai baca-saja.rw_mount
: Baca-tulis pasang data.download
: Unduh data ke target komputasi.upload
: Unggah data dari target komputasi.direct
: Berikan URI sebagai string.
Tabel berikut menunjukkan opsi mode yang tersedia untuk input dan output jenis model yang berbeda.
Jenis | upload |
download |
ro_mount |
rw_mount |
direct |
---|---|---|---|---|---|
custom input file |
|||||
custom input folder |
✓ | ✓ | ✓ | ||
mlflow masukan |
✓ | ✓ | |||
custom output file |
✓ | ✓ | ✓ | ||
custom output folder |
✓ | ✓ | ✓ | ||
mlflow hasil |
✓ | ✓ | ✓ |
Prasyarat
- Langganan Azure dengan versi gratis atau berbayar Azure Pembelajaran Mesin. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
- Ruang kerja Azure Machine Learning.
Untuk menjalankan sampel kode dalam artikel ini dan bekerja dengan Azure Pembelajaran Mesin V2 CLI atau Python Azure Pembelajaran Mesin V2 SDK, Anda juga memerlukan:
Azure CLI versi 2.38.0 atau lebih baru terinstal.
V2 ekstensi diinstal
ml
dengan menjalankan perintah berikut. Untuk informasi selengkapnya, lihat Menginstal, menyiapkan, dan menggunakan CLI (v2).az extension add -n ml
Catatan
V2 memberikan kompatibilitas mundur penuh. Anda masih dapat menggunakan aset model dari V1 SDK atau CLI. Semua model yang terdaftar di CLI v1 atau SDK diberi jenis custom
.
Mendaftarkan model dengan menggunakan antarmuka pengguna studio
Untuk mendaftarkan model dengan menggunakan antarmuka pengguna studio Azure Pembelajaran Mesin:
Di ruang kerja Anda di studio, pilih Model dari navigasi kiri.
Pada halaman Daftar Model, pilih Daftar, dan pilih salah satu lokasi berikut dari daftar dropdown:
- Dari file lokal
- Dari output pekerjaan
- Dari datastore
- Dari file lokal (berdasarkan kerangka kerja)
Pada layar Daftarkan model pertama:
- Navigasikan ke file lokal, datastore, atau output pekerjaan untuk model Anda.
- Pilih jenis model input: Jenis MLflow, Triton, atau Tidak Ditentukan.
Pada layar Pengaturan model, berikan nama dan pengaturan opsional lainnya untuk model terdaftar Anda, dan pilih Berikutnya.
Pada layar Tinjau, tinjau konfigurasi lalu pilih Daftar.
Mendaftarkan model dengan menggunakan Azure CLI atau Python SDK
Cuplikan kode berikut mencakup cara mendaftarkan model sebagai aset di Azure Pembelajaran Mesin dengan menggunakan Azure CLI atau Python SDK. Cuplikan ini menggunakan jenis model dan mlflow
.custom
custom
jenis mengacu pada file model atau folder yang dilatih dengan standar kustom yang saat ini tidak didukung azure Pembelajaran Mesin.mlflow
jenis 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.
Tip
Anda dapat mengikuti versi Python dari sampel berikut dengan menjalankan notebook model.ipynb di repositori azureml-examples .
Menyambungkan ke ruang kerja Anda
Ruang kerja adalah sumber daya tingkat teratas untuk Azure Machine Learning, menyediakan tempat terpusat untuk bekerja dengan semua artefak yang Anda buat saat Anda menggunakan Azure Machine Learning. Di bagian ini, Anda menyambungkan ke ruang kerja Azure Pembelajaran Mesin untuk membuat model terdaftar.
Masuk ke Azure dengan menjalankan
az login
dan mengikuti perintah.Dalam perintah berikut, ganti
<subscription-id>
tempat penampung ,<workspace-name>
,<resource-group>
, dan<location>
dengan nilai untuk lingkungan Anda.az account set --subscription <subscription-id> az configure --defaults workspace=<workspace-name> group=<resource-group> location=<location>
Membuat model terdaftar
Anda dapat membuat model terdaftar dari model yang:
- Terletak di komputer lokal Anda.
- Terletak di datastore Azure Pembelajaran Mesin.
- Output dari pekerjaan Azure Pembelajaran Mesin.
File atau folder lokal
Buat nama> file YAML<.yml. Dalam file, berikan nama untuk model terdaftar Anda, jalur ke file model lokal, dan deskripsi. Contohnya:
$schema: https://azuremlschemas.azureedge.net/latest/model.schema.json name: local-file-example path: mlflow-model/model.pkl description: Model created from local file.
Jalankan perintah berikut, menggunakan nama file YAML Anda:
az ml model create -f <file-name>.yml
Untuk contoh lengkapnya, lihat model YAML.
Penyimpanan data
Anda dapat membuat model dari jalur cloud dengan menggunakan salah satu format URI yang didukung.
Contoh berikut menggunakan skema singkatan azureml
untuk menunjuk ke jalur di datastore dengan menggunakan sintaks azureml://datastores/<datastore-name>/paths/<path_on_datastore>
.
az ml model create --name my-model --version 1 --path azureml://datastores/myblobstore/paths/models/cifar10/cifar.pt
Untuk contoh lengkapnya, lihat referensi CLI.
Output pekerjaan
Jika data model Anda berasal dari output pekerjaan, Anda memiliki dua opsi untuk menentukan jalur model. Anda dapat menggunakan format URI MLflow runs:
atau azureml://jobs
format URI.
Catatan
Kata kunci yang dicadangkan artefak mewakili output dari lokasi artefak default.
MLflow berjalan: Format URI
Opsi ini dioptimalkan untuk pengguna MLflow, yang mungkin sudah terbiasa dengan format URI MLflow
runs:
. Opsi ini membuat model dari artefak di lokasi artefak default, di mana semua model dan artefak yang dicatat MLflow berada. Opsi ini juga menetapkan silsilah data antara model terdaftar dan model yang dijalankan berasal.Format:
runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
Contoh:
az ml model create --name my-registered-model --version 1 --path runs:/my_run_0000000000/model/ --type mlflow_model
format URI azureml://jobs
Opsi
azureml://jobs
URI referensi memungkinkan Anda mendaftarkan model dari artefak di salah satu jalur output pekerjaan. Format ini selaras denganazureml://datastores
format URI referensi, dan juga mendukung referensi artefak dari output bernama selain lokasi artefak default.Jika Anda tidak secara langsung mendaftarkan model Anda dalam skrip pelatihan dengan menggunakan MLflow, Anda dapat menggunakan opsi ini untuk membuat silsilah data antara model terdaftar dan pekerjaan tempat model tersebut dilatih.
Format:
azureml://jobs/<run-id>/outputs/<output-name>/paths/<path-to-model>
- Lokasi artefak default:
azureml://jobs/<run-id>/outputs/artifacts/paths/<path-to-model>/
. Lokasi ini setara dengan MLflowruns:/<run-id>/<model>
. - Folder output bernama:
azureml://jobs/<run-id>/outputs/<named-output-folder>
- File tertentu dalam folder output bernama:
azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-filename>
- Jalur folder tertentu dalam folder output bernama:
azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-folder-name>
Contoh:
Simpan model dari folder output bernama:
az ml model create --name run-model-example --version 1 --path azureml://jobs/my_run_0000000000/outputs/artifacts/paths/model/
Untuk contoh lengkapnya, lihat referensi CLI.
- Lokasi artefak default:
Menggunakan model untuk pelatihan
Azure CLI v2 dan Python SDK juga memungkinkan Anda menggunakan model sebagai input atau output dalam pekerjaan pelatihan.
Menggunakan model sebagai input dalam pekerjaan pelatihan
Buat file YAML spesifikasi pekerjaan, <nama> file.yml. Di bagian
inputs
pekerjaan, tentukan:- Model
type
, yang dapat berupamlflow_model
,custom_model
, atautriton_model
. - Tempat
path
model Anda berada, yang bisa menjadi salah satu jalur yang tercantum dalam komentar contoh berikut.
$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.5/labels/latest
- Model
Jalankan perintah berikut, ganti nama file YAML Anda.
az ml job create -f <file-name>.yml
Menulis model sebagai output untuk pekerjaan
Pekerjaan Anda dapat menulis model ke penyimpanan berbasis cloud Anda dengan menggunakan output.
Buat nama> file <YAML spesifikasi pekerjaan.yml. Isi bagian
outputs
dengan jenis dan jalur model output.$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.5/labels/latest
Buat pekerjaan dengan menggunakan CLI:
az ml job create --file <file-name>.yml
Mengelola model
Azure CLI dan Python SDK juga memungkinkan Anda mengelola siklus hidup aset model Azure Pembelajaran Mesin Anda.
List
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
Perbarui properti yang dapat diubah dari model tertentu:
Penting
Untuk model, hanya description
dan tags
dapat diperbarui. Semua properti lain tidak dapat diubah, dan jika Anda perlu mengubahnya, Anda harus membuat versi model baru.
az ml model update --name run-model-example --version 1 --set description="This is an updated description." --set tags.stage="Prod"
Arsip
Pengarsipan model menyembunyikannya dari kueri daftar seperti az ml model list
secara default. Anda dapat terus mereferensikan dan menggunakan model yang diarsipkan di alur kerja Anda.
Anda dapat mengarsipkan semua versi atau hanya versi model tertentu. Jika Anda tidak menentukan versi, semua versi model diarsipkan. Jika Anda membuat versi model baru di bawah kontainer model yang diarsipkan, versi baru juga 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