Azure Machine Learning'de modellerle çalışma

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

Azure Machine Learning, farklı model türleriyle çalışmanızı sağlar. Bu makalede Azure Machine Learning'i kullanarak özel, MLflow ve Triton gibi farklı model türleriyle çalışmayı öğreneceksiniz. Ayrıca, modeli farklı konumlardan kaydetmeyi ve modellerinizi yönetmek için Azure Machine Learning SDK'sını, kullanıcı arabirimini (UI) ve Azure Machine Learning CLI'yı kullanmayı da öğrenirsiniz.

İpucu

SDK/CLI v1 kullanan model varlıkları oluşturduysanız bunları SDK/CLI v2 ile kullanmaya devam edebilirsiniz. Tam geriye dönük uyumluluk sağlanır. V1 SDK'sı ile kaydedilen tüm modellere türü customatanır.

Önkoşullar

Ayrıca şunları yapmanız gerekir:

Desteklenen yollar

Kaydetmek istediğiniz modeli sağladığınızda, verilere veya iş konumuna işaret eden bir path parametre belirtmeniz gerekir. Aşağıda Azure Machine Learning'de desteklenen farklı veri konumlarını ve parametresine yönelik örnekleri gösteren bir tablo verilmiştir path :

Konum Örnekler
Yerel bilgisayarınızda bir yol mlflow-model/model.pkl
Azure Machine Learning Veri Deposu'nda yol azureml://datastores/<datastore-name>/paths/<path_on_datastore>
Azure Machine Learning işinden bir yol azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location>
MLflow işinden yol runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
Azure Machine Learning Çalışma Alanı'ndaki Model Varlığından bir yol azureml:<model-name>:<version>
Azure Machine Learning Kayıt Defteri'ndeki Model Varlığından bir yol azureml://registries/<registry-name>/models/<model-name>/versions/<version>

Desteklenen modlar

Model girişleriyle/çıkışlarıyla bir iş çalıştırdığınızda modu belirtebilirsiniz; örneğin modelin salt okunur olarak bağlanmasını mı yoksa işlem hedefine mi indirileceğini seçebilirsiniz. Aşağıdaki tabloda, farklı tür/mod/giriş/çıkış bileşimleri için olası modlar gösterilmektedir:

Tür Giriş/Çıkış upload download ro_mount rw_mount direct
custom dosyası Giriş
custom Klasör Giriş
mlflow Giriş
custom dosyası Çıktı
custom Klasör Çıktı
mlflow Çıktı

Jupyter Notebooks'ta birlikte izleyin

Bu örneği bir Jupyter Notebook takip edebilirsiniz. azureml-examples deposunda not defterini açın: model.ipynb.

Model kayıt defterinde model oluşturma

Model kaydı , modellerinizi Azure bulutunda, ç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.

Bu bölümdeki kod parçacıkları şunların nasıl yapılacağını kapsar:

  • CLI kullanarak modelinizi Machine Learning'de varlık olarak kaydedin.
  • SDK'sını kullanarak modelinizi Machine Learning'de varlık olarak kaydedin.
  • Kullanıcı arabirimini kullanarak modelinizi Machine Learning'de varlık olarak kaydedin.

Bu kod parçacıkları ve mlflowkullanırcustom.

  • custom , şu anda Azure Machine Learning tarafından desteklenmeyen özel bir standartla eğitilmiş bir model dosyasına veya klasöre başvuran bir türdür.
  • mlflow mlflow ile eğitilen bir modele başvuran bir türdür. 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ördedir.

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

İlk olarak üzerinde çalışacağımız Azure Machine Learning çalışma alanına bağlanalım.

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

CLI kullanarak modelinizi Machine Learning'de varlık olarak kaydetme

Modelinizin bulunduğu yeri seçmek için aşağıdaki sekmeleri kullanın.

$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

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

SDK kullanarak modelinizi Machine Learning'de varlık olarak kaydetme

Modelinizin bulunduğu yeri seçmek için aşağıdaki sekmeleri kullanın.

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)

Kullanıcı arabirimini kullanarak modelinizi Machine Learning'de varlık olarak kaydetme

Machine Learning'de model oluşturmak için kullanıcı arabiriminden Modeller sayfasını açın. Modeli kaydet'i seçin ve modelinizin bulunduğu yeri seçin. Gerekli alanları doldurun ve Kaydet'i seçin.

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


Modelleri yönetme

SDK ve CLI (v2), Azure Machine Learning modeli 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:

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

Önemli

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

Arşiv

Modelin arşivlenmesi, modeli varsayılan olarak liste sorgularından (az ml model list ) 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 bir sürümü arşivleyebilirsiniz.

Bir sürüm belirtmezseniz, modelin bu adın altındaki tüm sürümleri arşivlenir. Arşivlenmiş model kapsayıcısı altında yeni bir model sürümü oluşturursanız, bu 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

Eğitim için modeli kullanma

SDK ve CLI (v2), eğitim işinde giriş veya çıkış olarak model kullanmanıza da olanak sağlar.

Modeli bir işte giriş olarak kullanma

İş belirtimi YAML dosyası (<file-name>.yml oluşturun. inputs İşin bölümünde belirtin:

  1. type; modelin , mlflow_modelcustom_model veya triton_modelolup olmadığı.
  2. path Verilerinizin bulunduğu konum; Desteklenen Yollar bölümünde özetlenen 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://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

Ardından CLI'da komutunu çalıştırın

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

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

Modeli bir işte çıkış olarak kullanma

İşinizde çıkışları kullanarak bulut tabanlı depolama alanınıza model yazabilirsiniz.

Bölüm, verilerinizi yazmak istediğiniz türü ve yolu ile doldurulmuş bir iş belirtimi YAML dosyası ()<file-name>.ymloutputs oluşturun:

$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

Ardından CLI kullanarak bir iş oluşturun:

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

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

Sonraki adımlar