Azure Machine Learning'de kayıtlı modellerle çalışma

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)

Bu makalede, aşağıdakileri kullanarak Azure Machine Learning'de modelleri kaydetmeyi ve bunlarla çalışmayı öğreneceksiniz:

  • Azure Machine Learning stüdyosu kullanıcı arabirimi.
  • The Azure Machine Learning V2 CLI.
  • Python Azure Machine Learning V2 SDK'sı.

Şunları yapmayı öğreneceksiniz:

  • Yerel dosyalardan, veri depolarından veya iş çıkışlarından model kayıt defterinde kayıtlı modeller oluşturun.
  • Özel, MLflow ve Triton gibi farklı model türleriyle çalışın.
  • Modelleri eğitim işlerinde giriş veya çıkış olarak kullanın.
  • Model varlıklarının yaşam döngüsünü yönetin.

Model kaydı

Model kaydı , modellerinizi Azure bulutundaki çalışma alanınızda depolamanıza ve sürüm oluşturmanıza olanak tanır. Model kayıt defteri, eğitilen modellerinizi düzenlemenize ve izlemenize yardımcı olur. Azure CLI, Python SDK veya Machine Learning studio kullanıcı arabirimini kullanarak modelleri Azure Machine Learning'de varlık olarak kaydedebilirsiniz.

Desteklenen yollar

Modeli kaydetmek için verilere veya iş konumuna işaret eden bir yol belirtmeniz gerekir. Aşağıdaki tabloda Azure Machine Learning'in desteklediği çeşitli veri konumları ve parametresinin söz dizimi gösterilmektedir path :

Konum Sözdizimi
Yerel bilgisayar <model-folder>/<model-filename>
Azure Machine Learning veri deposu azureml://datastores/<datastore-name>/paths/<path_on_datastore>
Azure Machine Learning işi azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location>
MLflow işi runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
Machine Learning çalışma alanında model varlığı azureml:<model-name>:<version>
Machine Learning kayıt defterindeki model varlığı azureml://registries/<registry-name>/models/<model-name>/versions/<version>

Desteklenen modlar

Girişler veya çıkışlar için modeller kullandığınızda, aşağıdaki modlardan birini belirtebilirsiniz. Örneğin, modelin salt okunur olarak mı bağlanacağını yoksa işlem hedefine mi indirileceğini belirtebilirsiniz.

  • ro_mount: Verileri işlem hedefine salt okunur olarak bağlayın.
  • rw_mount: Verileri okuma-yazma bağlama.
  • download: Verileri işlem hedefine indirin.
  • upload: İşlem hedefinden verileri karşıya yükleyin.
  • direct: URI'yi dize olarak geçirin.

Aşağıdaki tabloda, farklı model türü giriş ve çıkışları için kullanılabilir mod seçenekleri gösterilmektedir.

Tür upload download ro_mount rw_mount direct
custom dosya girişi
custom klasör girişi
mlflow girdi
custom dosya çıkışı
custom klasör çıktısı
mlflow çıktı

Önkoşullar

Bu makaledeki kod örneklerini çalıştırmak ve Azure Machine Learning V2 CLI veya Python Azure Machine Learning V2 SDK'sı ile çalışmak için şunlar da gerekir:

  • Azure CLI sürüm 2.38.0 veya üzeri yüklü.

  • Aşağıdaki komutu çalıştırarak yüklenen uzantının V2'sini ml seçin. Daha fazla bilgi için bkz . CLI'yi (v2) yükleme, ayarlama ve kullanma.

    az extension add -n ml
    

Not

V2 tam geriye dönük uyumluluk sağlar. v1 SDK veya CLI'dan model varlıklarını kullanmaya devam edebilirsiniz. v1 CLI veya SDK ile kaydedilen tüm modellere türü customatanır.

Studio kullanıcı arabirimini kullanarak model kaydetme

Azure Machine Learning stüdyosu kullanıcı arabirimini kullanarak modeli kaydetmek için:

  1. Stüdyodaki çalışma alanınızda sol gezinti bölmesinden Modeller'i seçin.

  2. Model Listesi sayfasında Kaydet'i seçin ve açılan listeden aşağıdaki konumlardan birini seçin:

    • Yerel dosyalardan
    • İş çıkışından
    • Veri deposundan
    • Yerel dosyalardan (çerçeveye göre)
  3. İlk Kayıt modeli ekranında:

    1. Modeliniz için yerel dosyaya, veri deposuna veya iş çıkışına gidin.
    2. Giriş modeli türünü seçin: MLflow, Triton veya Belirtilmeyen tür.
  4. Model ayarları ekranında, kayıtlı modeliniz için bir ad ve diğer isteğe bağlı ayarları sağlayın ve İleri'yi seçin.

  5. Gözden Geçir ekranında yapılandırmayı gözden geçirin ve kaydet'i seçin.

Modeli kaydetmek için kullanıcı arabiriminin ekran görüntüsü.

Azure CLI veya Python SDK'sını kullanarak model kaydetme

Aşağıdaki kod parçacıkları, Azure CLI veya Python SDK'sını kullanarak modeli Azure Machine Learning'de varlık olarak kaydetmeyi kapsar. Bu kod parçacıkları ve mlflow model türlerini kullanırcustom.

  • custom tür, Azure Machine Learning'in şu anda desteklemediği özel bir standartla eğitilen bir model dosyasına veya klasöre başvurur.
  • mlflowtür, MLflow ile eğitilen bir modeli ifade eder. MLflow tarafından eğitilen modeller MLmodel dosyasını, model dosyasını, conda bağımlılıkları dosyasını ve requirements.txt dosyasını içeren bir klasörde bulunur.

İpucu

Azureml-examples deposunda model.ipynb not defterini çalıştırarak aşağıdaki örneklerin Python sürümleriyle birlikte izleyebilirsiniz.

Çalışma alanınıza bağlanma

Çalışma alanı Azure Machine Learning'in en üst düzey kaynağıdır. Azure Machine Learning'i kullanırken oluşturduğunuz tüm yapıtlarla çalışmak için merkezi bir konum sağlar. Bu bölümde, kayıtlı modeli oluşturmak için Azure Machine Learning çalışma alanınıza bağlanacaksınız.

  1. komutunu çalıştırarak az login ve istemleri izleyerek Azure'da oturum açın.

  2. Aşağıdaki komutlarda , <workspace-name>, <resource-group>ve <location> yer tutucularını ortamınızın değerleriyle değiştirin<subscription-id>.

    az account set --subscription <subscription-id>
    az configure --defaults workspace=<workspace-name> group=<resource-group> location=<location>
    

Kayıtlı modeli oluşturma

Şu şekilde bir modelden kayıtlı bir model oluşturabilirsiniz:

  • Yerel bilgisayarınızda bulunur.
  • Azure Machine Learning veri deposunda bulunur.
  • Azure Machine Learning işinden çıktı.

Yerel dosya veya klasör

  1. YAML dosya <adı>.yml oluşturun. Dosyasında kayıtlı modeliniz için bir ad, yerel model dosyasının yolu ve bir açıklama girin. Örneğin:

    $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. YAML dosyanızın adını kullanarak aşağıdaki komutu çalıştırın:

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

Tam bir örnek için yaml modeline bakın.

Veri Deposu

Desteklenen URI biçimlerinden herhangi birini kullanarak bir bulut yolundan model oluşturabilirsiniz.

Aşağıdaki örnek, söz dizimini azureml://datastores/<datastore-name>/paths/<path_on_datastore>kullanarak veri deposundaki bir yola işaret etmek için kısaltma azureml düzenini kullanır.

az ml model create --name my-model --version 1 --path azureml://datastores/myblobstore/paths/models/cifar10/cifar.pt

Tam bir örnek için bkz . CLI başvurusu.

İş çıktısı

Model verileriniz bir iş çıkışından geliyorsa, model yolunu belirtmek için iki seçeneğiniz vardır. MLflow runs: URI biçimini veya azureml://jobs URI biçimini kullanabilirsiniz.

Not

Yapıtlar ayrılmış anahtar sözcüğü varsayılan yapıt konumundan çıktıyı temsil eder.

  • MLflow çalıştırmaları: URI biçimi

    Bu seçenek, büyük olasılıkla MLflow URI biçimini zaten bilen MLflow runs: kullanıcıları için iyileştirilmiştir. Bu seçenek, tüm MLflow tarafından günlüğe kaydedilen modellerin ve yapıtların bulunduğu varsayılan yapıt konumundaki yapıtlardan bir model oluşturur. Bu seçenek ayrıca kayıtlı bir model ile modelin geldiği çalıştırma arasında bir köken oluşturur.

    Biçim: runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>

    Örnek:

    az ml model create --name my-registered-model --version 1 --path runs:/my_run_0000000000/model/ --type mlflow_model
    

  • azureml://jobs URI biçimi

    Başvuru azureml://jobs URI'si seçeneği, işin çıkış yollarından herhangi birinde yapıtlardan bir model kaydetmenizi sağlar. Bu biçim başvuru URI biçimiyle azureml://datastores hizalanır ve ayrıca varsayılan yapıt konumu dışındaki adlandırılmış çıkışlardan yapıtlara başvuruda bulunmayı destekler.

    MLflow kullanarak modelinizi doğrudan eğitim betiğine kaydetmediyseniz, kayıtlı modelle eğitildiği iş arasında bir köken oluşturmak için bu seçeneği kullanabilirsiniz.

    Biçim: azureml://jobs/<run-id>/outputs/<output-name>/paths/<path-to-model>

    • Varsayılan yapıt konumu: azureml://jobs/<run-id>/outputs/artifacts/paths/<path-to-model>/. Bu konum MLflow runs:/<run-id>/<model>ile eşdeğerdir.
    • Adlandırılmış çıkış klasörü: azureml://jobs/<run-id>/outputs/<named-output-folder>
    • Adlandırılmış çıkış klasöründeki belirli dosya: azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-filename>
    • Adlandırılmış çıktı klasörünün içindeki belirli klasör yolu: azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-folder-name>

    Örnek:

    Adlandırılmış bir çıkış klasöründen model kaydedin:

    az ml model create --name run-model-example --version 1 --path azureml://jobs/my_run_0000000000/outputs/artifacts/paths/model/
    

    Tam bir örnek için bkz . CLI başvurusu.


Eğitim için modelleri kullanma

v2 Azure CLI ve Python SDK'sı ayrıca modelleri eğitim işlerinde giriş veya çıkış olarak kullanmanıza da olanak tanır.

Eğitim işinde giriş olarak model kullanma

  1. İş belirtimi YAML dosyası, <dosya adı>.yml oluşturun. inputs İşin bölümünde şunları belirtin:

    • modeli type, veya triton_modelolabilirmlflow_modelcustom_model.
    • path Modelinizin bulunduğu yer, aşağıdaki örneğin açıklamasında listelenen yollardan herhangi biri olabilir.
    $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://video2.skills-academy.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. YAML dosyanızın adını değiştirerek aşağıdaki komutu çalıştırın.

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

Tam bir örnek için bkz . Model GitHub deposu.

İş için çıkış olarak model yazma

İşiniz, çıkışları kullanarak bulut tabanlı depolama alanınıza model yazabilir.

  1. İş belirtimi YAML dosya <adı>.yml oluşturun. outputs Bölümü çıkış modeli türü ve yolu ile doldurun.

    $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. CLI kullanarak iş oluşturma:

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

Tam bir örnek için bkz . Model GitHub deposu.

Modelleri yönetme

Azure CLI ve Python SDK'sı, Azure Machine Learning model varlıklarınızın yaşam döngüsünü yönetmenize de olanak sağlar.

Liste

Çalışma alanınızdaki tüm modelleri listeleyin:

az ml model list

Tüm model sürümlerini belirli bir ad altında listeleyin:

az ml model list --name run-model-example

Göster

Belirli bir modelin ayrıntılarını alın:

az ml model show --name run-model-example --version 1

Güncelleştir

Belirli bir modelin değiştirilebilir özelliklerini güncelleştirme:

Önemli

Yalnızca modeller description için ve tags güncelleştirilebilir. Diğer tüm özellikler sabittir ve bunları değiştirmeniz gerekiyorsa modelin yeni bir sürümünü oluşturmanız gerekir.

az ml model update --name  run-model-example --version 1 --set description="This is an updated description." --set tags.stage="Prod"

Arşiv

Modeli arşivleme, varsayılan olarak olduğu gibi az ml model list liste sorgularından gizler. İş akışlarınızda arşivlenmiş bir modele başvurmaya ve kullanmaya devam edebilirsiniz.

Modelin tüm sürümlerini veya yalnızca belirli sürümlerini arşivleyebilirsiniz. Bir sürüm belirtmezseniz, modelin tüm sürümleri arşivlenir. Arşivlenmiş bir model kapsayıcısı altında yeni bir model sürümü oluşturursanız, yeni sürüm de otomatik olarak arşivlenmiş olarak ayarlanır.

Modelin tüm sürümlerini arşivle:

az ml model archive --name run-model-example

Belirli bir model sürümünü arşivle:

az ml model archive --name run-model-example --version 1