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ü custom
atanır.
Önkoşullar
- Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun. Azure Machine Learning'in ücretsiz veya ücretli sürümünü deneyin.
- Azure Machine Learning çalışma alanı.
- Python için Azure Machine Learning SDK v2.
- Azure Machine Learning CLI v2.
Ayrıca şunları yapmanız gerekir:
- Azure CLI'yi ve ml uzantısını Azure CLI'ya yükleyin. Daha fazla bilgi için bkz . CLI'yi (v2) yükleme, ayarlama ve kullanma.
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 mlflow
kullanı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.
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:
type
; modelin ,mlflow_model
custom_model
veyatriton_model
olup olmadığı.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>.yml
outputs
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
- Python SDK v2'yi yükleme ve ayarlama
- MLflow modelleri için kodsuz dağıtım
- MLflow ve Azure Machine Learning hakkında daha fazla bilgi edinin