Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)
Python SDK azure-ai-ml v2 (geçerli)
Modelinizi ölçeklenebilir bir şekilde eğitmek için işlem oluşturmanız ve yönetmeniz gerekmez. Bunun yerine işinizi sunucusuz işlem adlı bir işlem hedef türüne gönderebilirsiniz. Sunucusuz işlem, Azure Machine Learning'de eğitim işlerini çalıştırmanın en kolay yoludur. Sunucusuz işlem, tam olarak yönetilen, isteğe bağlı bir işlemdir. Azure Machine Learning işlemi sizin için oluşturur, ölçeklendirir ve yönetir. Modelleri eğitmek için sunucusuz işlem kullandığınızda makine öğrenmesi modelleri oluşturmaya odaklanabilir ve işlem altyapısı veya ayarlama hakkında bilgi edinmeniz gerekmez.
İşin ihtiyaç duyduğu kaynakları belirtebilirsiniz. Azure Machine Learning, işlem altyapısını yönetir ve yönetilen ağ yalıtımı sağlayarak size olan yükü azaltır.
Kuruluşlar ayrıca her iş için en uygun kaynakları belirterek maliyetleri düşürebilir. BT yöneticileri, abonelik ve çalışma alanı düzeylerinde çekirdek kota belirterek ve Azure ilkeleri uygulayarak denetimi uygulamaya devam edebilir.
Model kataloğundaki modellerde ince ayar yapmak için sunucusuz işlem kullanabilirsiniz. Azure Machine Learning studio, Python SDK ve Azure CLI kullanarak her tür işi çalıştırmak için bunu kullanabilirsiniz. Ortam görüntüleri oluşturmak ve sorumlu yapay zeka panosu senaryoları için sunucusuz işlem de kullanabilirsiniz. Sunucusuz işler, Azure Machine Learning işlem kotası ile aynı kotayı tüketir. Standart (ayrılmış) katmanı veya spot (düşük öncelikli) VM'leri seçebilirsiniz. Yönetilen kimlik ve kullanıcı kimliği sunucusuz işler için desteklenir. Faturalama modeli, Azure Machine Learning işlem modeliyle aynıdır.
Sunucusuz işlemin avantajları
- Azure Machine Learning, yönetim yükünü azaltmak için işlem altyapısı oluşturmayı, ayarlamayı, ölçeklendirmeyi, silmeyi ve yama uygulamayı yönetir.
- İşlem, çeşitli işlem türleri veya ilgili özellikler hakkında bilgi edinmeniz gerekmez.
- İhtiyacınız olan her VM boyutu için, aynı ayarları kullanarak ve her çalışma alanı için çoğaltarak tekrar tekrar kümeler oluşturmanız gerekmez.
- Her işin çalışma zamanında örnek türü (VM boyutu) ve örnek sayısı için tam olarak ihtiyaç duyduğu kaynakları belirterek maliyetleri iyileştirebilirsiniz. Bir işin ihtiyaç duyduğu kaynakları iyileştirmek için işin kullanım ölçümlerini de izleyebilirsiniz.
- bir işi çalıştırmak için daha az adım gerekir.
- İş gönderimini daha da basitleştirmek için kaynakları tamamen atlayabilirsiniz. Azure Machine Learning varsayılan olarak örnek sayısını belirler ve kota, maliyet, performans ve disk boyutu gibi faktörleri dikkate alarak bir örnek türü seçer.
- Bazı senaryolarda işlerin çalışmaya başlaması için bekleme süreleri kısalır.
- İş gönderimi için kullanıcı kimliği ve çalışma alanı kullanıcı tarafından atanan yönetilen kimlik desteklenir.
- yönetilen ağ izolasyonu ile ağ yalıtımı yapılandırmanızı kolaylaştırabilir ve otomatikleştirebilirsiniz. Müşteri sanal ağları da desteklenir.
- Yönetim denetimi kota ve Azure ilkeleri aracılığıyla kullanılabilir.
Sunucusuz işlem kullanma
Kendi işlem kümenizi oluşturduğunuzda, komut işinde bu kümenin adını kullanırsınız. Örneğin,
compute="cpu-cluster". Sunucusuz ile işlem kümesi oluşturmayı atlayabilir ve parametresinicomputeatlayarak sunucusuz işlem kullanabilirsiniz. bir iş için belirtilmediğindecompute, iş sunucusuz işlem üzerinde çalışır. Aşağıdaki iş türlerinde sunucusuz işlem kullanmak için Azure CLI veya Python SDK işlerinizdeki işlem adını atlayın ve isteğe bağlı olarak örnek sayısı ve örnek türü için işin ihtiyaç duyduğu kaynakları sağlayın:- Etkileşimli işler ve dağıtılmış eğitim de dahil olmak üzere komut işleri
- AutoML işleri
- Süpürme işleri
- Paralel işler
Azure CLI aracılığıyla işlem hattı işleri için işlem hattı düzeyinde varsayılan hesaplama birimini kullanın
default_compute: azureml:serverless. Python SDK'sı aracılığıyla işlem hattı işleri için kullanındefault_compute="serverless". Örnek için bkz . İşlem hattı işi .Studio'da bir eğitim işi gönderdiğinizde işlem türü olarak Sunucusuz'u seçin.
Azure Machine Learning tasarımcısını kullanırken, varsayılan işlem olarak Sunucusuz seçin.
Performans değerlendirmeleri
Sunucusuz işlem, eğitiminizin hızını aşağıdaki yollarla artırabilir:
Yetersiz kota başarısızlıklarından kaçının. Kendi işlem kümenizi oluşturduğunuzda VM boyutunu ve düğüm sayısını belirlemek sizin sorumluluğunuzdadır. İşiniz çalıştığında, küme için yeterli kotanız yoksa iş başarısız olur. Sunucusuz işlem, varsayılan olarak uygun bir VM boyutu seçmek için kotanızla ilgili bilgileri kullanır.
Ölçeği azaltma iyileştirmesi. bir işlem kümesinin ölçeği azaltıldığında, yeni bir işin iş çalıştırılabilmesi için önce kümenin ölçeğini azaltmasını ve sonra ölçeği artırmasını beklemesi gerekir. Sunucusuz işlemde ölçeği azaltmayı beklemeniz gerekmez. İşiniz başka bir kümede/düğümde çalışmaya başlayabilir (kotanız olduğu varsayılarak).
Küme meşgul iyileştirmesi. Bir iş bir hesaplama kümesinde çalıştırıldığında ve başka bir iş gönderildiğinde, işiniz şu anda çalışan işin arkasında kuyruğa alınır. Sunucusuz işlem sayesinde işiniz başka bir düğümde/kümede çalışmaya başlayabilir (kotanız olduğu varsayılarak).
Kota
Bir iş gönderdiğinizde, devam etmek için yeterli Azure Machine Learning işlem kotasına (hem çalışma alanı düzeyinde hem de abonelik düzeyinde kota) ihtiyacınız vardır. Sunucusuz işler için varsayılan VM boyutu bu kotaya göre seçilir. Kendi VM boyutunuzu/ailenizi belirtirseniz:
- VM boyutunuz/aileniz için biraz kotanız varsa ancak örnek sayısı için yeterli kotanız yoksa bir hata görürsünüz. Hata, örnek sayısını kota sınırınıza göre geçerli bir sayıya düşürmenizi, VM ailesi için kota artışı istemenizi veya VM boyutunu değiştirmenizi önerir.
- Belirtilen VM boyutunuz için kotanız yoksa bir hata görürsünüz. Hata, VM ailesi için kotanız veya istek kotanız olan farklı bir VM boyutu seçmenizi önerir.
- Vm ailesinin sunucusuz işi çalıştırması için yeterli kotanız varsa ancak diğer işler kotayı kullanıyorsa, işinizin kota kullanılabilir olana kadar kuyrukta beklemesi gerektiğini belirten bir ileti alırsınız.
Azure portalında kullanımınızı ve kotalarınızı görüntülediğinizdesunucusuz işler tarafından kullanılan tüm kotalar için Sunucusuz adını görürsünüz.
Kimlik desteği ve kimlik bilgisi iletimi
Kullanıcı kimlik bilgisi geçişi: Sunucusuz işlem, kullanıcı kimlik bilgisi geçişlerini tam olarak destekler. İşi gönderen kullanıcının kullanıcı belirteci depolama erişimi için kullanılır. Bu kimlik bilgileri Microsoft Entra Id'den alınıyor.
Sunucusuz işlem, sistem tarafından atanan kimliği desteklemez.
from azure.ai.ml import command from azure.ai.ml import MLClient # Handle to the workspace. from azure.identity import DefaultAzureCredential # Authentication package. from azure.ai.ml.entities import ResourceConfiguration from azure.ai.ml.entities import UserIdentityConfiguration credential = DefaultAzureCredential() # Get a handle to the workspace. You can find the info on the workspace tab on ml.azure.com. ml_client = MLClient( credential=credential, subscription_id="<Azure subscription ID>", resource_group_name="<Azure resource group>", workspace_name="<Azure Machine Learning workspace>", ) job = command( command="echo 'hello world'", environment="azureml://registries/azureml/environments/sklearn-1.5/labels/latest", identity=UserIdentityConfiguration(), ) # Submit the command job. ml_client.create_or_update(job)Kullanıcı tarafından atanan yönetilen kimlik: Kullanıcı tarafından atanan yönetilen kimlikle yapılandırılmış bir çalışma alanınız olduğunda, depolama erişimi için sunucusuz iş ile bu kimliği kullanabilirsiniz. Gizli bilgilere erişim hakkında bilgi için bkz. Azure Machine Learning işlerinde kimlik doğrulama bilgileri gizli bilgilerini kullanma.
Çalışma alanı kimlik yapılandırmanızı doğrulayın.
from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential subscription_id = "<your-subscription-id>" resource_group = "<your-resource-group>" workspace = "<your-workspace-name>" ml_client = MLClient( DefaultAzureCredential(), subscription_id, resource_group, workspace ) # Get workspace details. ws = ml_client.workspaces.get(name=workspace) print(ws)Çıktıda kullanıcı tarafından atanan kimliği arayın. Eksikse, Azure Machine Learning ile diğer hizmetler arasında kimlik doğrulamasını ayarlama başlığı altında verilen yönergeleri izleyerek kullanıcı tarafından atanan yönetilen kimlikle yeni bir çalışma alanı oluşturun.
İşinizde kullanıcı tarafından atanan yönetilen kimliğinizi kullanın.
from azure.ai.ml import command from azure.ai.ml import MLClient # Handle to the workspace. from azure.identity import DefaultAzureCredential # Authentication package. from azure.ai.ml.entities import ResourceConfiguration from azure.ai.ml.entities import ManagedIdentityConfiguration credential = DefaultAzureCredential() # Get a handle to the workspace. You can find the info on the workspace tab on ml.azure.com. ml_client = MLClient( credential=credential, subscription_id="<Azure-subscription-ID>", resource_group_name="<Azure-resource-group>", workspace_name="<Azure-Machine-Learning-workspace>", ) job = command( command="echo 'hello world'", environment="azureml://registries/azureml/environments/sklearn-1.5/labels/latest", identity= ManagedIdentityConfiguration(client_id="<workspace-UAMI-client-ID>"), ) # Submit the command job. ml_client.create_or_update(job)
Komut işlerinin özelliklerini yapılandırma
Komut, süpürme ve AutoML işleri için işlem hedefi belirtilmezse, işlem varsayılan olarak sunucusuz işlem olarak ayarlanır. İşte bir örnek:
from azure.ai.ml import command
from azure.ai.ml import MLClient # Handle to the workspace.
from azure.identity import DefaultAzureCredential # Authentication package.
credential = DefaultAzureCredential()
# Get a handle to the workspace. You can find the info on the workspace tab on ml.azure.com.
ml_client = MLClient(
credential=credential,
subscription_id="<Azure-subscription-ID>",
resource_group_name="<Azure-resource-group>",
workspace_name="<Azure-Machine-Learning-workspace>",
)
job = command(
command="echo 'hello world'",
environment="azureml://registries/azureml/environments/sklearn-1.5/labels/latest",
)
# Submit the command job.
ml_client.create_or_update(job)
İşlem varsayılan olarak sunucusuz işlem olarak şu şekildedir:
- Bu iş için tek bir düğüm. Varsayılan düğüm sayısı, işin türüne bağlıdır. Diğer iş türleri için aşağıdaki bölümlere bakın.
- CPU sanal makinesi. VM kota, performans, maliyet ve disk boyutuna göre belirlenir.
- Ayrılmış sanal makineler.
- Çalışma alanı konumu.
Bu varsayılanları geçersiz kılabilirsiniz. Sunucusuz işlem için VM türünü veya düğüm sayısını belirtmek istiyorsanız, işinize ekleyin resources :
Belirli bir VM'yi seçmek için kullanın
instance_type. Belirli bir CPU veya GPU VM boyutu istiyorsanız bu parametreyi kullanınDüğüm sayısını belirtmek için kullanın
instance_count.from azure.ai.ml import command from azure.ai.ml import MLClient # Handle to the workspace. from azure.identity import DefaultAzureCredential # Authentication package. from azure.ai.ml.entities import JobResourceConfiguration credential = DefaultAzureCredential() # Get a handle to the workspace. You can find the info on the workspace tab on ml.azure.com. ml_client = MLClient( credential=credential, subscription_id="<Azure-subscription-ID>", resource_group_name="<Azure-resource-group>", workspace_name="<Azure-Machine-Learning-workspace>", ) job = command( command="echo 'hello world'", environment="azureml://registries/azureml/environments/sklearn-1.5/labels/latest", resources = JobResourceConfiguration(instance_type="Standard_NC24", instance_count=4) ) # Submit the command job. ml_client.create_or_update(job)İş katmanını değiştirmek için ayrılmış VM'ler () ile düşük öncelikli VM'ler (
queue_settingsjob_tier: Standard) arasında seçim yapmak için kullanınjob_tier: Spot.from azure.ai.ml import command from azure.ai.ml import MLClient # Handle to the workspace. from azure.identity import DefaultAzureCredential # Authentication package. credential = DefaultAzureCredential() # Get a handle to the workspace. You can find the info on the workspace tab on ml.azure.com. ml_client = MLClient( credential=credential, subscription_id="<Azure-subscription-ID>", resource_group_name="<Azure-resource-group>", workspace_name="<Azure-Machine-Learning-workspace>", ) job = command( command="echo 'hello world'", environment="azureml://registries/azureml/environments/sklearn-1.5/labels/latest", queue_settings={ "job_tier": "Spot" } ) # Submit the command job. ml_client.create_or_update(job)
Komut işleri olan tüm alanlar için örnek
burada, işin kullanması gereken kimlik de dahil olmak üzere belirtilen tüm alanları gösteren bir örnek verilmiş. Çalışma alanı düzeyinde yönetilen ağ yalıtımı otomatik olarak kullanıldığından sanal ağ ayarlarını belirtmeniz gerekmez.
from azure.ai.ml import command
from azure.ai.ml import MLClient # Handle to the workspace.
from azure.identity import DefaultAzureCredential # Authentication package.
from azure.ai.ml.entities import ResourceConfiguration
from azure.ai.ml.entities import UserIdentityConfiguration
credential = DefaultAzureCredential()
# Get a handle to the workspace. You can find the info on the workspace tab on ml.azure.com.
ml_client = MLClient(
credential=credential,
subscription_id="<Azure-subscription-ID>",
resource_group_name="<Azure-resource-group>",
workspace_name="<Azure-Machine-Learning-workspace>",
)
job = command(
command="echo 'hello world'",
environment="azureml://registries/azureml/environments/sklearn-1.5/labels/latest",
identity=UserIdentityConfiguration(),
queue_settings={
"job_tier": "Standard"
}
)
job.resources = ResourceConfiguration(instance_type="Standard_E4s_v3", instance_count=1)
# Submit the command job.
ml_client.create_or_update(job)
Burada, eğitim için sunucusuz işlem kullanmanın iki örneği daha verilmiştir:
AutoML işi
AutoML işleri için hesaplama belirtmenize gerek yok. İsteğe bağlı olarak kaynaklar belirtilebilir. Örnek sayısı belirtilmezse, max_concurrent_trials ve max_nodes parametrelerine göre varsayılan olarak ayarlanır. Bir örnek türü belirtmeden bir AutoML görüntü sınıflandırması veya NLP görevi gönderirseniz, GPU VM boyutu otomatik olarak seçilir. AUTOML işlerini CLI'leri, Python SDK'sını veya studio'yu kullanarak gönderebilirsiniz.
Tür veya örnek sayısını belirtmek istiyorsanız sınıfını ResourceConfiguration kullanın.
# Create the AutoML classification job with the related factory-function.
from azure.ai.ml.entities import ResourceConfiguration
classification_job = automl.classification(
experiment_name=exp_name,
training_data=my_training_data_input,
target_column_name="y",
primary_metric="accuracy",
n_cross_validations=5,
enable_model_explainability=True,
tags={"my_custom_tag": "My custom value"},
)
# Limits are all optional
classification_job.set_limits(
timeout_minutes=600,
trial_timeout_minutes=20,
max_trials=max_trials,
# max_concurrent_trials = 4,
# max_cores_per_trial: -1,
enable_early_termination=True,
)
# Training properties are optional
classification_job.set_training(
blocked_training_algorithms=[ClassificationModels.LOGISTIC_REGRESSION],
enable_onnx_compatible_models=True,
)
# Serverless compute resources used to run the job
classification_job.resources =
ResourceConfiguration(instance_type="Standard_E4s_v3", instance_count=6)
İşlem hattı işi
İşlem hattı işi için sunucusuz işlem kullanmak için varsayılan işlem türünüz olarak belirtin "serverless" .
# Construct pipeline
@pipeline()
def pipeline_with_components_from_yaml(
training_input,
test_input,
training_max_epochs=20,
training_learning_rate=1.8,
learning_rate_schedule="time-based",
):
"""E2E dummy train-score-eval pipeline with components defined via yaml."""
# Call component obj as function: apply given inputs & parameters to create a node in pipeline
train_with_sample_data = train_model(
training_data=training_input,
max_epochs=training_max_epochs,
learning_rate=training_learning_rate,
learning_rate_schedule=learning_rate_schedule,
)
score_with_sample_data = score_data(
model_input=train_with_sample_data.outputs.model_output, test_data=test_input
)
score_with_sample_data.outputs.score_output.mode = "upload"
eval_with_sample_data = eval_model(
scoring_result=score_with_sample_data.outputs.score_output
)
# Return: pipeline outputs
return {
"trained_model": train_with_sample_data.outputs.model_output,
"scored_data": score_with_sample_data.outputs.score_output,
"evaluation_report": eval_with_sample_data.outputs.eval_output,
}
pipeline_job = pipeline_with_components_from_yaml(
training_input=Input(type="uri_folder", path=parent_dir + "/data/"),
test_input=Input(type="uri_folder", path=parent_dir + "/data/"),
training_max_epochs=20,
training_learning_rate=1.8,
learning_rate_schedule="time-based",
)
# set pipeline to use serverless compute
pipeline_job.settings.default_compute = "serverless"Sunucusuz işlem de Tasarımcı'da varsayılan işlem olarak ayarlayabilirsiniz.
Sunucusuz işlem hattı görevlerini, kullanıcı tarafından atanan yönetilen kimlik ile yapılandırma
İşlem hattı işlerinde sunucusuz işlem kullandığınızda, kullanıcı kimliğini kök işlem hattı düzeyinde değil, işlem üzerinde çalıştırılacak tek tek adım düzeyinde ayarlamanızı öneririz. (Kimlik ayarı hem kök işlem hattı hem de adım düzeylerinde destekleniyor olsa da, her ikisi de ayarlandıysa adım düzeyi ayarı önceliklidir. Ancak, işlem hattı bileşenlerini içeren işlem hatları için kimlik, çalıştırılacak tek tek adımlarda ayarlanmalıdır. Kök işlem hattı veya işlem hattı bileşeni düzeyinde ayarlanan kimlik çalışmaz. Bu nedenle, basitlik adına kimliği tek tek adım düzeyinde ayarlamanızı öneririz.)
def my_pipeline():
train_job = train_component(
training_data=Input(type="uri_folder", path="./data")
)
# Set managed identity for the job
train_job.identity = {"type": "managed"}
return {"train_output": train_job.outputs}
pipeline_job = my_pipeline()
# Configure the pipeline to use serverless compute.
pipeline_job.settings.default_compute = "serverless"
İlgili içerik
Sunucusuz işlemle ilgili diğer eğitim örneklerini görüntüleyin: