Freigeben über


Verwenden von VMs mit niedriger Priorität für Batchbereitstellungen

GILT FÜR:Azure CLI ML-Erweiterung v2 (aktuell)Python SDK azure-ai-ml v2 (aktuell)

Azure Batch-Bereitstellungen unterstützen VMs mit niedriger Priorität, um die Kosten für Batchrückschlussworkloads zu verringern. VMs mit niedriger Priorität ermöglichen die Nutzung einer hohen Computeleistung zu geringen Kosten. VMs mit niedriger Priorität nutzen überschüssige Kapazitäten in Azure. Wenn Sie VMs mit niedriger Priorität in Pools angeben, kann Azure diesen Überschuss nutzen, sobald er zur Verfügung steht.

Tipp

Die Verwendung von VMs mit niedriger Priorität hat jedoch den Nachteil, dass diese VMs je nach verfügbarer Kapazität möglicherweise nicht zur Verfügung stehen und jederzeit vorzeitig entfernt werden können. Aus diesem Grund eignet sich dieser Ansatz am besten für Workloads für die Batchverarbeitung und asynchrone Verarbeitung, bei denen die Zeit für den Auftragsabschluss flexibel ist und die Arbeit auf viele VMs verteilt wird.

VMs mit niedriger Priorität sind im Vergleich zu dedizierten VMs kostengünstiger. Preisdetails finden Sie unter Azure Machine Learning – Preise.

Funktionsweise der Batchbereitstellung mit VMs mit niedriger Priorität

Azure Machine Learning-Batch-Bereitstellungen stellt verschiedene Funktionen bereit, die die vorteilhafte Nutzung von VMs mit niedriger Priorität erleichtern:

  • Batchbereitstellungsaufträge nutzen VMs mit niedriger Priorität, da sie auf Azure Machine Learning-Computeclustern ausgeführt werden, die mit VMs mit niedriger Priorität erstellt wurden. Nachdem eine Bereitstellung einem Cluster von VMs mit niedriger Priorität zugeordnet wurde, verwenden alle von dieser Bereitstellung erstellten Aufträge VMs mit niedriger Priorität. Die Konfiguration pro Auftrag ist nicht möglich.
  • Batchbereitstellungsaufträge suchen automatisch die vorgegebene Anzahl der VMs im verfügbaren Computecluster basierend auf der Anzahl der zu übermittelnden Aufgaben. Wenn VMs vorgezogen wurden oder nicht verfügbar sind, versuchen Batchbereitstellungsaufträge die verlorene Kapazität zu ersetzen, indem sie die fehlgeschlagenen Aufgaben in die Warteschlange des Clusters verschieben.
  • VMs mit niedriger Priorität verfügen über ein separates vCPU-Kontingent, das von dem dedizierter VMs abweicht. Für Kerne mit niedriger Priorität pro Region gilt je nach Abonnement ein Standardgrenzwert von 100 bis 3.000. Die Anzahl der Kerne niedriger Priorität pro Abonnement kann erhöht werden. Es handelt sich bei allen VM-Familien um einen einzelnen Wert. Siehe Azure Machine Learning-Compute-Kontingente.

Überlegungen und Anwendungsfälle

Viele Batchworkloads eignen sich gut für VMs mit niedriger Priorität. Die Verwendung von VMs mit niedriger Priorität kann bei der Belegungsfreigabe von VMs zu Ausführungsverzögerungen führen. Wenn Sie hinsichtlich der Ausführungsdauer von Aufträgen flexibel sind, können Sie die potenziellen Kapazitätseinbußen ggf. tolerieren.

Wenn Sie Modelle unter Batchendpunkten bereitstellen, kann die Neuplanung auf Minibatchebene erfolgen. Dieser Ansatz bietet den Vorteil, dass sich die Belegungsfreigabe nur auf die Minibatches auswirkt, die auf dem betroffenen Knoten gerade verarbeitet werden und noch nicht abgeschlossen sind. Alle abgeschlossenen Aufträge werden beibehalten.

Begrenzungen

  • Nachdem eine Bereitstellung einem Cluster von VMs mit niedriger Priorität zugeordnet wurde, verwenden alle von dieser Bereitstellung erstellten Aufträge VMs mit niedriger Priorität. Die Konfiguration pro Auftrag ist nicht möglich.
  • Die Neuplanung erfolgt unabhängig vom Fortschritt auf Minibatchebene. Es wird keine Prüfpunktfunktion bereitgestellt.

Warnung

In Fällen, in denen der gesamte Cluster vorzeitig entfernt oder auf einem Einzelknotencluster ausgeführt wird, wird der Auftrag abgebrochen, da keine Kapazität für seine Ausführung verfügbar ist. In diesem Fall muss der Auftrag erneut übermittelt werden.

Erstellen von Batchbereitstellungen mit VMs mit niedriger Priorität

Batchbereitstellungsaufträge nutzen VMs mit niedriger Priorität, da sie auf Azure Machine Learning-Computeclustern ausgeführt werden, die mit VMs mit niedriger Priorität erstellt wurden.

Hinweis

Nachdem eine Bereitstellung einem Cluster von VMs mit niedriger Priorität zugeordnet wurde, verwenden alle von dieser Bereitstellung erstellten Aufträge VMs mit niedriger Priorität. Die Konfiguration pro Auftrag ist nicht möglich.

Folgendermaßen erstellen Sie einen Azure Machine Learning-Computecluster mit niedriger Priorität:

Erstellen Sie wie im folgenden Beispiel gezeigt eine YAML-Computedefinition low-pri-cluster.yml:

$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json 
name: low-pri-cluster
type: amlcompute
size: STANDARD_DS3_v2
min_instances: 0
max_instances: 2
idle_time_before_scale_down: 120
tier: low_priority

Erstellen Sie das Compute-Element mithilfe des folgenden Befehls:

az ml compute create -f low-pri-cluster.yml

Nachdem Sie die neue Computeressource erstellt haben, können Sie Ihre Bereitstellung erstellen oder aktualisieren, um den neuen Cluster zu verwenden:

Um eine Bereitstellung unter dem neuen Computecluster zu erstellen oder zu aktualisieren, erstellen Sie eine YAML-Konfigurationsdatei endpoint.yml:

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier@latest
compute: azureml:low-pri-cluster
resources:
  instance_count: 2
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 2
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 300

Erstellen Sie dann die Bereitstellung mit dem folgenden Befehl:

az ml batch-endpoint create -f endpoint.yml

Anzeigen und Überwachen der Knotenbelegungsfreigabe

Neue Metriken stehen im Azure-Portal für VMs mit niedriger Priorität zur Überwachung von VMs mit niedriger Priorität zur Verfügung. Diese Metriken sind:

  • Vorzeitig entfernte Knoten
  • Preempted cores (Kerne mit präemptivem Multitasking)

So zeigen Sie diese Metriken im Azure-Portal an

  1. Navigieren Sie im Azure-Portal zu Ihrem Azure Machine Learning-Arbeitsbereich.
  2. Wählen Sie Metriken im Abschnitt Überwachung aus.
  3. Wählen Sie die gewünschten Metriken aus der Liste Metriken aus.

Screenshot: Abschnitt „Metriken“ im Bereich „Ressourcenüberwachung“ mit den relevanten Metriken für VMs mit niedriger Priorität