Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 4: Schulungsjobs | Amazon Web Services

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 4: Schulungsjobs | Amazon Web Services

Im Jahr 2021 haben wir gestartet Proaktive AWS-Support-Services als Teil der AWS Enterprise-Support planen. Seit der Einführung haben wir Hunderten von Kunden dabei geholfen, ihre Arbeitslasten zu optimieren, Leitplanken festzulegen und die Transparenz der Kosten und Nutzung ihrer Arbeitslasten für maschinelles Lernen (ML) zu verbessern.

In dieser Beitragsreihe teilen wir unsere Erkenntnisse zur Kostenoptimierung Amazon Sage Maker. In diesem Beitrag konzentrieren wir uns auf SageMaker-Schulungsjobs.

SageMaker-Schulungsjobs

SageMaker-Trainingsjobs sind asynchrone Batch-Prozesse mit integrierten Funktionen für das Training und die Optimierung von ML-Modellen.

Mit SageMaker-Trainingsjobs können Sie Ihren eigenen Algorithmus mitbringen oder aus mehr als 25 integrierten Algorithmen wählen. SageMaker unterstützt verschiedene Datenquellen und Zugriffsmuster, verteiltes Training einschließlich heterogener Cluster sowie Experimentmanagementfunktionen und automatische Modelloptimierung.

Die Kosten eines Trainingsjobs basieren auf den Ressourcen, die Sie (Instanzen und Speicher) für die Dauer (in Sekunden) verwenden, in der diese Instanzen ausgeführt werden. Dazu gehört die Zeit, in der das Training stattfindet, und, falls Sie das verwenden warme Poolfunktion, der von Ihnen konfigurierte Keep-Alive-Zeitraum. In Teil 1Wir haben gezeigt, wie Sie mit der Verwendung beginnen können AWS-Kosten-Explorer um Kostenoptimierungsmöglichkeiten in SageMaker zu identifizieren. Sie können Schulungskosten filtern, indem Sie einen Filter auf die Nutzungsart anwenden. Die Namen dieser Nutzungsarten lauten wie folgt:

  • REGION-Train:instanceType (zum Beispiel, USE1-Train:ml.m5.large)
  • REGION-Train:VolumeUsage.gp2 (zum Beispiel, USE1-Train:VolumeUsage.gp2)

Um eine Aufschlüsselung Ihrer Schulungskosten im Cost Explorer anzuzeigen, können Sie Folgendes eingeben: train: als Präfix für Nutzungsart. Wenn Sie nur nach genutzten Stunden filtern (siehe folgenden Screenshot), generiert Cost Explorer zwei Diagramme: Kosten und Nutzung. Mithilfe dieser Ansicht können Sie Ihre Optimierungsmöglichkeiten priorisieren und ermitteln, welche Instanzen langwierig und kostspielig sind.

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 4: Schulungsjobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Bevor Sie einen bestehenden Schulungsauftrag optimieren, empfehlen wir, die darin beschriebenen Best Practices zu befolgen Kostenoptimierung für maschinelles Lernen mit Amazon SageMaker: Testen Sie Ihren Code lokal und verwenden Sie ihn Lokalbetrieb Verwenden Sie zum Testen nach Möglichkeit vorab trainierte Modelle und überlegen Sie, ob dies der Fall ist Managed Spot Training (wodurch die Kosten im Vergleich zu On-Demand-Instanzen um bis zu 90 % optimiert werden können).

Wenn ein On-Demand-Job gestartet wird, durchläuft er fünf Phasen: Starten, Herunterladen, Training, Hochladen und Abgeschlossen. Sie können diese Phasen und Beschreibungen auf der Seite des Schulungsauftrags in der SageMaker-Konsole sehen.

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 4: Schulungsjobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Aus preislicher Sicht werden Ihnen die Download-, Schulungs- und Upload-Phasen in Rechnung gestellt.

Die Überprüfung dieser Phasen ist ein erster Schritt bei der Diagnose, wo Sie Ihre Schulungskosten optimieren können. In diesem Beitrag besprechen wir die Download- und Schulungsphasen.

Download-Phase

Im vorherigen Beispiel dauerte die Download-Phase weniger als eine Minute. Wenn das Herunterladen von Daten jedoch einen großen Teil Ihrer Schulungskosten ausmacht, sollten Sie die von Ihnen verwendete Datenquelle und Zugriffsmethoden berücksichtigen. SageMaker-Schulungsjobs unterstützen nativ drei Datenquellen: Amazon Elastic File System (Amazon-EFS), Amazon Simple Storage-Service (Amazon S3) und Amazon FSx für Lustre. Für Amazon S3 bietet SageMaker drei verwaltete Möglichkeiten, wie Ihr Algorithmus auf das Training zugreifen kann: Dateimodus (wo Daten in den Instanzblockspeicher heruntergeladen werden), Pipe-Modus (Daten werden an die Instanz gestreamt, wodurch die Dauer der Download-Phase entfällt). und Fast File-Modus (kombiniert die Benutzerfreundlichkeit des vorhandenen File-Modus mit der Leistung des Pipe-Modus). Ausführliche Anleitungen zur Auswahl der richtigen Datenquelle und Zugriffsmethoden finden Sie unter Wählen Sie die beste Datenquelle für Ihren Amazon SageMaker-Schulungsauftrag.

Bei Verwendung von verwaltetem Spot-Training werden alle wiederholten Download-Phasen, die aufgrund einer Unterbrechung aufgetreten sind, nicht in Rechnung gestellt (die Dauer des Daten-Downloads wird Ihnen also nur einmal in Rechnung gestellt).

Es ist wichtig zu beachten, dass SageMaker-Schulungsjobs zwar die von uns genannten Datenquellen unterstützen, diese jedoch nicht obligatorisch sind. In Ihrem Trainingscode können Sie jede Methode zum Herunterladen der Trainingsdaten aus einer beliebigen Quelle implementieren (vorausgesetzt, die Trainingsinstanz kann darauf zugreifen). Es gibt zusätzliche Möglichkeiten, die Downloadzeit zu verkürzen, z. B. die Verwendung der Boto3-API mit Multiprocessing zum gleichzeitigen Herunterladen von Dateien oder die Verwendung von Bibliotheken von Drittanbietern wie WebDataset oder s5cmd für einen schnelleren Download von Amazon S3. Weitere Informationen finden Sie unter Parallelisieren von S3-Workloads mit s5cmd.

Trainingsphase

Die Optimierung der Kosten für die Trainingsphase besteht aus der Optimierung zweier Vektoren: der Auswahl der richtigen Infrastruktur (Instanzfamilie und -größe) und der Optimierung des Trainings selbst. Wir können Trainingsinstanzen grob in zwei Kategorien einteilen: beschleunigte GPU-basierte, hauptsächlich für Deep-Learning-Modelle, und CPU-basierte für gängige ML-Frameworks. Hinweise zur Auswahl der richtigen Instanzfamilie für das Training finden Sie unter Sorgen Sie für effiziente Rechenressourcen auf Amazon SageMaker. Wenn Ihr Training GPU-Instanzen erfordert, empfehlen wir Ihnen, sich das Video anzusehen So wählen Sie Amazon EC2-GPU-Instanzen für Deep Learning aus.

Als allgemeine Richtlinie gilt: Wenn Ihre Arbeitslast eine NVIDIA-GPU erfordert, haben wir festgestellt, dass Kunden mit zwei GPUs erhebliche Kosteneinsparungen erzielen Amazon Elastic Compute-Cloud (Amazon EC2) Instanztypen: ml.g4dn und ml.g5. Der ml.g4dn ist mit NVIDIA T4 ausgestattet und bietet besonders niedrige Kosten pro Speicher. Die ml.g5-Instanz ist mit NVIDIA A10g Tensor Core ausgestattet und weist die niedrigsten Kosten pro CUDA-Flop (fp32) auf.

AWS bietet spezifische kostensparende Funktionen für Deep-Learning-Schulungen:

Um Ihre Instanz richtig zu dimensionieren und zu optimieren, sollten Sie sich zunächst die ansehen Amazon CloudWatch Metriken, die die Schulungsjobs generieren. Weitere Informationen finden Sie unter SageMaker-Jobs und Endpunktmetriken. Sie können CloudWatch weiterhin verwenden Benutzerdefinierte Algorithmusmetriken zur Überwachung der Trainingsleistung.

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 4: Schulungsjobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Diese Kennzahlen können auf Engpässe oder eine Überbereitstellung von Ressourcen hinweisen. Wenn Sie beispielsweise eine hohe CPU-Auslastung bei geringer GPU-Auslastung beobachten, können Sie das Problem mithilfe von beheben heterogene Cluster. Ein weiteres Beispiel kann eine anhaltend niedrige CPU-Auslastung während der gesamten Jobdauer sein – dies kann zu einer Reduzierung der Instanzgröße führen.

Wenn Sie mit verteiltes Training, sollten Sie verschiedene Verteilungsmethoden (Tower, Ring-AllReduce, Mirrored usw.) testen, um die maximale Auslastung zu validieren und Ihre Framework-Parameter entsprechend zu optimieren (ein Beispiel finden Sie unter Best Practices für TensorFlow 1.x-Beschleunigungstraining auf Amazon SageMaker). Es ist wichtig hervorzuheben, dass Sie die SageMaker-Distributions-API und ähnliche Bibliotheken verwenden können SageMaker verteilte Daten parallel, SageMaker-Modellparallel und SageMaker Shard Data Parallel, die für die AWS-Infrastruktur optimiert sind und dazu beitragen, Schulungskosten zu senken.

Beachten Sie, dass verteiltes Training nicht unbedingt linear skaliert und möglicherweise einen gewissen Overhead mit sich bringt, der sich auf die Gesamtlaufzeit auswirkt.

Für Deep-Learning-Modelle ist die Verwendung gemischter Präzision eine weitere Optimierungstechnik. Gemischte Präzision kann das Training beschleunigen und dadurch sowohl die Trainingszeit als auch den Speicherverbrauch reduzieren, ohne dass sich dies nur minimal oder gar nicht auf die Modellgenauigkeit auswirkt. Weitere Informationen finden Sie unter Trainieren Sie mit Datenparallel und Modellparallel Abschnitt in Verteiltes Training in Amazon SageMaker.

Schließlich kann die Optimierung rahmenspezifischer Parameter einen erheblichen Einfluss auf die Optimierung des Trainingsprozesses haben. Automatische Modellabstimmung von SageMaker findet Hyperparameter mit der besten Leistung, gemessen anhand einer von Ihnen gewählten objektiven Metrik. Das Festlegen der Trainingszeit als objektive Metrik und der Framework-Konfiguration als Hyperparameter kann dabei helfen, Engpässe zu beseitigen und die gesamte Trainingszeit zu verkürzen. Ein Beispiel für die Optimierung der TensorFlow-Standardeinstellungen und die Beseitigung eines CPU-Engpasses finden Sie unter Aerobotics verbessert die Trainingsgeschwindigkeit mit Amazon SageMaker und TensorFlow um das 24-fache pro Probe.

Eine weitere Möglichkeit, sowohl die Download- als auch die Verarbeitungszeit zu optimieren, besteht darin, ein Training für eine Teilmenge Ihrer Daten in Betracht zu ziehen. Wenn Ihre Daten aus mehreren doppelten Einträgen oder Features mit geringem Informationsgewinn bestehen, können Sie möglicherweise auf einer Teilmenge der Daten trainieren und die Download- und Trainingszeit reduzieren sowie eine kleinere Instanz verwenden Amazon Elastic Block-Shop (Amazon EBS) Volumen. Ein Beispiel finden Sie unter Verwenden Sie einen datenzentrierten Ansatz, um die Datenmenge zu minimieren, die zum Trainieren von Amazon SageMaker-Modellen erforderlich ist. Auch Amazon SageMaker Data Wrangler kann die Analyse und Erstellung von Trainingsbeispielen vereinfachen. Weitere Informationen finden Sie unter Erstellen Sie zufällige und geschichtete Datenstichproben mit Amazon SageMaker Data Wrangler.

SageMaker-Debugger

Um eine effiziente Schulung und Ressourcennutzung sicherzustellen, kann SageMaker ein Profil Ihres Schulungsauftrags erstellen Amazon SageMaker-Debugger. Debugger-Angebote eingebaute Regeln um Sie auf häufige Probleme aufmerksam zu machen, die sich auf Ihr Training auswirken, z. B. CPU-Engpass, Erhöhung des GPU-Speichers oder E/A-Engpass, oder Sie können Ihre eigenen Regeln erstellen. Sie können auf den generierten Bericht zugreifen und ihn analysieren Amazon SageMaker-Studio. Weitere Informationen finden Sie unter Amazon SageMaker Debugger-Benutzeroberfläche in Amazon SageMaker Studio-Experimenten. Der folgende Screenshot zeigt die Debugger-Ansicht in Studio.

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 4: Schulungsjobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Sie können einen Drilldown zu den Python-Operatoren und -Funktionen durchführen (die Top-Operationen auf der GPU Abschnitt), die zur Ausführung des Trainingsjobs ausgeführt werden. Die im Debugger integrierten Regeln für die Profilerstellung bei Problemen im Zusammenhang mit dem Watch-Framework-Betrieb, einschließlich übermäßiger Trainingsinitialisierungszeit aufgrund des Herunterladens von Daten vor Trainingsbeginn und Ausreißern bei der Schrittdauer in Trainingsschleifen. Beachten Sie, dass die Verwendung der integrierten Regeln zwar kostenlos ist, für benutzerdefinierte Regeln jedoch Kosten anfallen, die auf der Instanz basieren, die Sie für die Dauer des Trainingsauftrags und des damit verbundenen Speichers konfigurieren.

Zusammenfassung

In diesem Beitrag haben wir Anleitungen zur Kostenanalyse und Best Practices beim Training von ML-Modellen mithilfe von SageMaker-Trainingsjobs gegeben. Da sich maschinelles Lernen branchenübergreifend als leistungsstarkes Werkzeug etabliert, müssen Schulung und Ausführung von ML-Modellen weiterhin kosteneffektiv bleiben. SageMaker bietet einen breiten und umfassenden Funktionsumfang zur Erleichterung jedes Schritts in der ML-Pipeline und bietet Möglichkeiten zur Kostenoptimierung, ohne die Leistung oder Agilität zu beeinträchtigen.


Über die Autoren

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 4: Schulungsjobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Deepali Rajale ist Senior AI/ML-Spezialist bei AWS. Sie arbeitet mit Unternehmenskunden zusammen und bietet technische Beratung mit Best Practices für die Bereitstellung und Wartung von KI/ML-Lösungen im AWS-Ökosystem. Sie hat mit einer Vielzahl von Organisationen an verschiedenen Deep-Learning-Anwendungsfällen mit NLP und Computer Vision gearbeitet. Ihre Leidenschaft liegt darin, Unternehmen dabei zu unterstützen, generative KI zu nutzen, um ihr Nutzungserlebnis zu verbessern. In ihrer Freizeit genießt sie Filme, Musik und Literatur.

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 4: Schulungsjobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Uri Rosenberg ist der AI & ML Specialist Technical Manager für Europa, den Nahen Osten und Afrika. Uri hat seinen Sitz in Israel und arbeitet daran, Unternehmenskunden in allen ML-Themen dabei zu unterstützen, in großem Maßstab zu entwerfen, zu bauen und zu betreiben. In seiner Freizeit fährt er gerne Rad, wandert und beschäftigt sich mit der Entropiesteigerung.

Zeitstempel:

Mehr von AWS Maschinelles Lernen