Verwalten und Optimieren von Azure Machine Learning-Kosten

In diesem Artikel wird gezeigt, wie Sie Kosten beim Trainieren und Bereitstellen von Machine Learning-Modellen für Azure Machine Learning verwalten und optimieren können.

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

  • Verwenden eines Azure Machine Learning-Computeclusters
  • Konfigurieren Sie Ihre Trainingscluster für automatische Skalierung
  • Konfigurieren Sie Ihre verwalteten Onlineendpunkte für die 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
  • 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
  • Löschen fehlgeschlagener Bereitstellungen

Informationen zur Planung und Überwachung von Kosten finden Sie unter Planen der Verwaltung von Kosten für Azure Machine Learning.

Wichtig

Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Die Preview-Version wird ohne Service Level Vereinbarung bereitgestellt. Wir raten davon ab, Vorschauversionen für Produktionsworkloads zu verwenden. 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-Computeclusters

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 finden Sie unter Planen der Verwaltung von Kosten für Azure Machine Learning.

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 verlängern, damit Sie nicht für ständiges Hoch- und Herunterskalieren nach jeder Änderung Ihres Trainingsskripts oder Ihrer Umgebung zahlen müssen.

Sie können AmlCompute-Cluster für Ihre sich ändernden Workloadanforderungen konfigurieren, indem Sie Folgendes verwenden:

Konfigurieren von verwalteten Onlineendpunkten für die automatische Skalierung

Die automatische Skalierung führt automatisch die richtige Menge an Ressourcen aus, um die Last für Ihre Anwendung zu bewältigen. Verwaltete Onlineendpunkte unterstützen die automatische Skalierung durch die Integration in die Funktion für die automatische Skalierung vom Azure Monitor. Weitere Informationen finden Sie unter Onlineendpunkte und Bereitstellungen für Rückschlüsse in Echtzeit.

Die automatische Azure Monitor-Skalierung unterstützt eine Vielzahl von Regeln:

  • Metrikbasierte Skalierung, z. B. CPU-Auslastung >70 %
  • Zeitplanbasierte Skalierung, z. B. Skalierungsregeln für Hauptgeschäftszeiten
  • Kombination der beiden Elemente

Weitere Informationen finden Sie unter Autoskalierung von Onlineendpunkten.

Festlegen von Kontingenten für Ressourcen

AmlCompute bietet eine Konfiguration für Kontingente (Limits). Dieses Kontingent gilt je VM-Familie, z. B. Dv2-Serie oder NCv3-Serie. Das Kontingent variiert je nach Region für jedes Abonnement. Abonnements beginnen mit kleinen Standardwerten. Verwenden Sie diese Einstellung, um die Menge der verfügbaren AmlCompute-Ressourcen zu steuern, die in Ihrem Abonnement gestartet werden können. Weitere Informationen finden Sie unter Azure Machine Learning Compute.

Zudem können Sie für jeden Arbeitsbereich innerhalb eines Abonnements das Kontingent auf Arbeitsbereichsebene pro VM-Familie konfigurieren. Dieser Ansatz 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. Weitere Informationen finden Sie unter Kontingente auf Arbeitsbereichsebene.

So legen Sie Kontingente auf Arbeitsbereichsebene fest

  1. Öffnen Sie das Azure-Portal, und wählen Sie dann einen beliebigen Arbeitsbereich in Ihrem Abonnement aus.

  2. Wählen Sie Support + Problembehandlung>Nutzung + Kontingente im Arbeitsbereichsmenü aus.

  3. Wählen Sie Kontingent anzeigen aus, um Kontingente in Azure Machine Learning Studio anzuzeigen.

  4. Auf dieser Seite finden Sie Ihr Abonnement und Ihre Region, um Kontingente festzulegen.

    Da sich diese Einstellung auf mehrere Arbeitsbereiche auswirkt, benötigen Sie Berechtigungen im Abonnementbereich, um das Kontingent festzulegen.

Festlegen von Richtlinien zum Beenden 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 Machine Learning verwenden.

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 eine Ausführung auf der von Ihnen gewählten Computeressource (lokale oder Remote-Cloudcomputeressource) 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. Weitere Informationen finden Sie unter Angeben der Richtlinie für vorzeitige Beendigung.
  • Legen Sie für automatisiertes maschinelles Lernen ähnliche Beendigungsrichtlinien mithilfe des Flags enable_early_stopping fest. Sie können auch Eigenschaften wie iteration_timeout_minutes und experiment_timeout_minutes verwenden, um die maximale Dauer eines Auftrags oder für das gesamte Experiment zu steuern. Weitere Informationen finden Sie unter Beendigungskriterien.

Verwenden Sie virtuelle Computer mit niedriger Priorität

Azure ermöglicht es Ihnen, ungenutzte Überschusskapazität in Form von VMs mit niedriger Priorität für VM-Skalierungsgruppen, Batch und den Machine Learning-Dienst zu verwenden. Diese Zuordnungen sind präemtiv, 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 auch in Fällen verwenden, in denen eine Wiederherstellung nach Unterbrechungen erfolgen kann – entweder durch erneute Übermittlungen bei Batchrückschlüssen oder mithilfe eines Neustarts beim Training mit Prüfpunktausführung in Deep-Learning-Szenarien.

VMs mit niedriger Priorität besitzen ein einzelnes Kontingent, das sich nach der VM-Familie richtet. Weitere Informationen zu AmlCompute-Kontingenten finden Sie unter Verwalten und Erhöhen von Kontingenten.

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 automatisch einen Rabatt 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 mithilfe 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 horizontal skalieren 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 dieser Ansatz eine Option dar. Weitere Informationen finden Sie unter ParallelComponent-Klasse.

Legen Sie Richtlinien für die Aufbewahrung und das Löschen von Daten fest

Bei jeder Ausführung einer Pipeline werden in 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 von Kosten durch automatisches Verwalten des Datenlebenszyklus.

Stellen Sie Ressourcen in derselben Region bereit

Bei Computeressourcen, die sich in unterschiedlichen 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, die Azure ExpressRoute verwenden, kann es manchmal kostengünstiger sein, alle Ressourcen nach Azure zu verschieben, um die Netzwerkkosten und die Latenz zu optimieren.

Löschen fehlgeschlagener Bereitstellungen

Verwaltete Onlineendpunkte verwenden VMs für Bereitstellungen. Wenn Sie eine Anforderung zur Erstellung einer Onlinebereitstellung übermittelt haben und diese fehlgeschlagen ist, hat die Anforderung möglicherweise die Phase der Erstellung von Computeressourcen durchlaufen. In diesem Fall würden für den fehlgeschlagenen Einsatz Gebühren anfallen. Wenn Sie das Debuggen oder die Untersuchung des Fehlers abgeschlossen haben, löschen Sie die fehlgeschlagenen Bereitstellungen, um Kosten zu sparen.