Verwalten und Optimieren von Azure Machine Learning-Kosten

Erfahren Sie, wie Sie Kosten beim Trainieren und Bereitstellen von Machine Learning-Modellen für Azure Machine Learning verwalten und optimieren.

Verwenden Sie die folgenden Tipps, um Ihre Kosten für Computeressourcen zu verwalten und zu optimieren.

  • Konfigurieren Sie Ihre Trainingscluster für automatische Skalierung
  • Legen Sie Kontingente für Ihr Abonnement und Ihre Arbeitsbereiche fest
  • Legen Sie Terminierungsrichtlinien für Ihren Trainingsauftrag fest
  • Verwenden Sie virtuelle Computer (VMs) mit niedriger Priorität
  • Planen Sie das automatische Herunterfahren und Starten von Compute-Instanzen.
  • Verwenden Sie eine reservierte Azure-VM-Instanz
  • Trainieren Sie lokal
  • Parallelisieren Sie das Training
  • Legen Sie Richtlinien für die Aufbewahrung und das Löschen von Daten fest
  • Stellen Sie Ressourcen in derselben Region bereit

Informationen zur Planung und Überwachung von Kosten finden Sie im Leitfaden zum Planen der Kostenverwaltung für Azure Machine Learning.

Wichtig

Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Die Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Verwenden des Azure Machine Learning Compute-Clusters (AmlCompute)

Bei sich ständig verändernden Daten benötigen Sie ein schnelles und optimiertes Training und Nachtraining von Modellen, um die Genauigkeit der Modelle aufrecht zu erhalten. Fortlaufendes Training hat aber seinen Preis, insbesondere bei Deep Learning-Modellen auf GPUs.

Azure Machine Learning-Benutzer können den verwalteten Azure Machine Learning-Computecluster verwenden, der auch als „AmlCompute“ bezeichnet wird. AmlCompute unterstützt verschiedene GPU- und CPU-Optionen. Der AmlCompute-Cluster wird von Azure Machine Learning intern im Auftrag Ihres Abonnements gehostet. Er bietet die gewohnte Sicherheit, Compliance und Governance auf Unternehmensniveau im Umfang einer Azure-IaaS-Cloud.

Da sich diese Computepools innerhalb der Azure IaaS-Infrastruktur befinden, können Sie Ihr Training mit den gleichen Sicherheits- und Complianceanforderungen bereitstellen, skalieren und verwalten wie den Rest Ihrer Infrastruktur. Diese Bereitstellungen erfolgen in Ihrem Abonnement und richten sich nach Ihren Governanceregeln. Weitere Informationen zu Azure Machine Learning Compute.

Konfigurieren von Trainingsclustern für automatische Skalierung

Cluster mit automatischer Skalierung auf der Grundlage Ihrer Workloadanforderungen helfen Ihnen, Ihre Kosten zu senken, indem Sie nur nutzen, was Sie benötigen.

AmlCompute-Cluster sind auf die workloadabhängige Skalierung ausgelegt. Der Cluster kann auf die maximale Anzahl der konfigurierten Knoten hochskaliert werden. Nach dem Abschluss der einzelnen Aufträge gibt der Cluster Knoten frei und wird auf die von Ihnen konfigurierte minimale Knotenanzahl skaliert.

Wichtig

Zum Vermeiden von Gebühren, wenn keine Aufträge ausgeführt werden, legen Sie die minimale Anzahl von Knoten auf 0 fest. Durch diese Einstellung kann Azure Machine Learning die Zuordnung der Knoten aufheben, wenn diese nicht verwendet werden. Bei jedem Wert größer 0 wird die entsprechende Anzahl von Knoten weiter ausgeführt, auch wenn sie nicht verwendet werden.

Sie können auch festlegen, wie lange sich der Knoten im Leerlauf befindet, bevor er herunterskaliert wird. Standardmäßig ist die Leerlaufzeit vor dem Herunterskalieren auf 120 Sekunden festgelegt.

  • Wenn Sie weniger iterative Experimente ausführen, setzen Sie diese Zeit herab, um Kosten zu sparen.
  • Wenn Sie hochgradig iterative Dev/Test-Experimente ausführen, müssen Sie die Zeit möglicherweise erhöhen, damit Sie nicht für ständiges Hoch- und Herunterskalieren nach jeder Änderung Ihres Trainingsskripts oder Ihrer Umgebung zahlen müssen.

AmlCompute-Cluster können im Azure-Portal für Ihre wechselnden Workloadanforderungen konfiguriert werden, mithilfe der AmlCompute SDK-Klasse, des AmlCompute-CLIs und mit den REST-APIs.

Festlegen von Kontingenten für Ressourcen

AmlCompute bietet eine Konfiguration für Kontingente (Limits). Dieses Kontingent ist für die VM-Familie spezifisch (z. B. Dv2-Serie, NCv3-Serie) und variiert für die einzelnen Abonnements nach Region. Abonnements beginnen mit kleinen Standardwerten für den Einstieg, aber mit dieser Einstellung können Sie die Menge der Amlcompute-Ressourcen bestimmen, die für das Hochfahren in Ihrem Abonnement verfügbar sind.

Konfigurieren Sie außerdem für jeden Arbeitsbereich innerhalb eines Abonnements das Kontingent auf Arbeitsbereichsebene pro VM-Familie. Diese ermöglicht Ihnen eine präzisere Kontrolle der Kosten, die für die einzelnen Arbeitsbereiche anfallen können, und eine Einschränkung bestimmter VM-Familien.

Beginnen Sie das Festlegen von Kontingenten auf Arbeitsbereichsebene im Azure-Portal. Wählen Sie einen beliebigen Arbeitsbereich in Ihrem Abonnement aus, und wählen Sie im linken Bereich Nutzung + Kontingente aus. Wählen Sie anschließend die Registerkarte Kontingente konfigurieren aus, um die Kontingente anzuzeigen. Sie benötigen Berechtigungen auf Abonnementebene, um dieses Kontingent festzulegen, da diese Einstellung mehrere Arbeitsbereiche betrifft.

Festlegen von Richtlinien für die automatische Beendigung von Aufträgen

In einigen Fällen sollten Sie Ihre Trainingsdurchläufe so konfigurieren, dass ihre Dauer eingeschränkt wird oder sie vorzeitig beendet werden. Das gilt beispielsweise, wenn Sie die integrierte Hyperparameteroptimierung von Azure Machine Learning oder automatisiertes maschinelles Lernen nutzen.

Dies sind einige der Optionen, die sich Ihnen bieten:

  • Definieren Sie einen Parameter mit dem Namen max_run_duration_seconds in ihrer RunConfiguration, um die maximale Dauer zu steuern, auf die ein Lauf auf der von Ihnen gewählten Compute (lokale oder Remote-Cloudcompute) ausgedehnt werden kann.
  • Definieren Sie für die Hyperparameteroptimierung eine Richtlinie für vorzeitige Beendigung, eine Medianstopprichtlinie oder eine Kürzungsauswahlrichtlinie. Verwenden Sie Parameter wie max_total_runs oder max_duration_minutes, um Hyperparametersweeps präziser zu steuern.
  • Legen Sie für automatisiertes maschinelles Lernen ähnliche Beendigungsrichtlinien mithilfe des Flags enable_early_stopping fest. Verwenden Sie darüber hinaus Eigenschaften wie iteration_timeout_minutes und experiment_timeout_minutes, um die maximale Dauer eines Auftrags für das gesamte Experiment zu steuern.

Verwenden von virtuellen Computern mit niedriger Priorität

Azure erlaubt es Ihnen, nicht ausgelastete Überschusskapazität in Form von VMs mit niedriger Priorität für VM-Skalierungsgruppen, Batch und den Machine Learning-Dienst zu verwenden. Für diese Zuordnungen können Bevorrechtigungen festgelegt werden (pre-emptible), sie bieten jedoch den Vorteil eines niedrigeren Preises im Vergleich mit dedizierten VMs. Im Allgemeinen wird empfohlen, VMS mit niedriger Priorität für Batchworkloads zu verwenden. Sie sollten diese ebenfalls in Fällen verwenden, in denen eine Wiederherstellung nach Unterbrechungen erfolgen kann – entweder durch erneute Einleitung (bei Batchrückschlüssen) oder mithilfe eines Neustarts (bei Training mit Prüfpunktausführung in Deep-Learning-Szenarios).

VMs mit niedriger Priorität besitzen ein einzelnes Kontingent, das sich nach der VM-Familie richtet. Weitere Informationen über AmlCompute-Kontingente.

VMs mit geringer Priorität funktionieren nicht als Computeinstanzen, da sie in der Lage sein müssen, interaktive Notebookumgebungen zu unterstützen.

Planen von Compute-Instanzen

Wenn Sie eine Compute-Instanz erstellen, bleibt die VM eingeschaltet, damit sie für Ihre Arbeit verfügbar ist.

Verwenden von reservierten Instanzen

Reservierte Azure VM-Instanzen sind eine weitere Möglichkeit zur Kosteneinsparung bei Computeressourcen. Bei diesem Angebot stehen Verträge mit ein- oder dreijähriger Laufzeit zur Wahl. Diese Rabatte erreichen bis zu 72 % gegenüber den Preisen für nutzungsbasierte Bezahlung und werden direkt auf Ihre monatliche Azure-Rechnung angewendet.

Azure Machine Learning Compute unterstützt reservierte Instanzen nativ. Wenn Sie eine reservierte Instanz für ein Jahr oder drei Jahre kaufen, wenden wir den Rabatt automatisch auf ihre verwalteten Azure Machine Learning-Computeressourcen an.

Parallelisieren Sie das Training

Eine der wichtigsten Methoden zur Optimierung von Kosten und Leistung ist die Parallelisierung der Workload mit Hilfe einer parallelen Komponente in Azure Machine Learning. Mit einer parallelen Komponente können Sie viele kleinere Knoten verwenden, um den Task parallel auszuführen, sodass Sie die horizontale Skalierung verwenden können. Für die Parallelisierung fällt ein Mehraufwand an. Abhängig von der Workload und dem Grad der Parallelität, der erreicht werden kann, stellt dies eine Möglichkeit dar. Weitere Informationen finden Sie unter diesem Link zur ParallelComponent-Dokumentation.

Festlegen von Richtlinien für Datenaufbewahrung und Löschen

Bei jeder Ausführung einer Pipeline werden bei jedem Schritt Zwischen-Datasets generiert. Im Laufe der Zeit nehmen diese Zwischen-Datasets Speicherplatz in Ihrem Speicherkonto in Anspruch. Erwägen Sie das Einrichten von Richtlinien zum Verwalten Ihrer Daten während des gesamten Lebenszyklus, um Ihre Datasets zu archivieren und zu löschen. Weitere Informationen finden Sie unter Optimieren der Kosten durch Automatisieren der Azure Blob Storage-Zugriffsebenen.

Stellen Sie Ressourcen in derselben Region bereit

Bei Computes, die sich in verschiedenen Regionen befinden, können Netzwerklatenz und erhöhte Datenübertragungskosten auftreten. Azure-Netzwerkkosten entstehen durch die von Azure-Rechenzentren ausgehende Bandbreite. Um die Netzwerkkosten zu senken, stellen Sie alle Ihre Ressourcen in der Region bereit. Die Bereitstellung Ihres Azure Machine Learning-Arbeitsbereichs und der abhängigen Ressourcen in derselben Region wie Ihre Daten kann zur Kostensenkung und Leistungssteigerung beitragen.

Bei Hybrid Cloud-Szenarien wie ExpressRoute kann es manchmal kostengünstiger sein, alle Ressourcen nach Azure zu verschieben, um die Netzwerkkosten und die Wartezeit zu optimieren.

Nächste Schritte