Bagikan melalui


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

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:

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:

  1. Di ruang kerja Anda di studio, pilih Model dari navigasi kiri.

  2. 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)
  3. Pada layar Daftarkan model pertama:

    1. Navigasikan ke file lokal, datastore, atau output pekerjaan untuk model Anda.
    2. Pilih jenis model input: Jenis MLflow, Triton, atau Tidak Ditentukan.
  4. Pada layar Pengaturan model, berikan nama dan pengaturan opsional lainnya untuk model terdaftar Anda, dan pilih Berikutnya.

  5. Pada layar Tinjau, tinjau konfigurasi lalu pilih Daftar.

Cuplikan layar antarmuka pengguna untuk mendaftarkan model.

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

  • customjenis 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.

  1. Masuk ke Azure dengan menjalankan az login dan mengikuti perintah.

  2. 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

  1. 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.
    
  2. 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 dengan azureml://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 MLflow runs:/<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.


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

  1. Buat file YAML spesifikasi pekerjaan, <nama> file.yml. Di bagian inputs pekerjaan, tentukan:

    • Model type, yang dapat berupa mlflow_model, custom_model, atau triton_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
    
  2. Jalankan perintah berikut, ganti nama file YAML Anda.

    az ml job create -f <file-name>.yml
    

Untuk contoh lengkapnya, lihat repositori GitHub model.

Menulis model sebagai output untuk pekerjaan

Pekerjaan Anda dapat menulis model ke penyimpanan berbasis cloud Anda dengan menggunakan output.

  1. 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
    
  2. Buat pekerjaan dengan menggunakan CLI:

    az ml job create --file <file-name>.yml
    

Untuk contoh lengkapnya, lihat repositori GitHub model.

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