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
- Azure Machine Learning'in ücretsiz veya ücretli sürümüne sahip bir Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Azure Machine Learning çalışma alanı.
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ü custom
atanır.
Studio kullanıcı arabirimini kullanarak model kaydetme
Azure Machine Learning stüdyosu kullanıcı arabirimini kullanarak modeli kaydetmek için:
Stüdyodaki çalışma alanınızda sol gezinti bölmesinden Modeller'i seçin.
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)
İlk Kayıt modeli ekranında:
- Modeliniz için yerel dosyaya, veri deposuna veya iş çıkışına gidin.
- Giriş modeli türünü seçin: MLflow, Triton veya Belirtilmeyen tür.
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.
Gözden Geçir ekranında yapılandırmayı gözden geçirin ve kaydet'i seçin.
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.mlflow
tü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.
komutunu çalıştırarak
az login
ve istemleri izleyerek Azure'da oturum açın.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
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.
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çimiyleazureml://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 MLflowruns:/<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.
- Varsayılan yapıt konumu:
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
İş belirtimi YAML dosyası, <dosya adı>.yml oluşturun.
inputs
İşin bölümünde şunları belirtin:- modeli
type
, veyatriton_model
olabilirmlflow_model
custom_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
- modeli
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.
İş 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
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