Trainieren mit Amazon SageMaker

Amazon SageMaker bietet alles, was Sie benötigen, um die Optimierung und Fehlerbehebung von Machine-Learning-Modellen (ML) durchzuführen und Trainingstests durchzuführen. So können Sie Modelle auf einfache Weise trainieren.

Funktionen

Verwaltung und Nachverfolgung von Tests

Machine Learning ist ein iterativer Prozess, der auf kontinuierlichem Experimentieren beruht, z. B. dem Ausprobieren neuer Lernalgorithmen oder dem Anpassen der Hyperparameter eines Algorithmus, während die Auswirkungen solcher inkrementellen Änderungen auf die Modellleistung und -genauigkeit beobachtet werden. Im Laufe der Zeit erschwert der sprunghafte Anstieg der Datenmenge das Nachverfolgen, welche Modelle die beste Leistung liefern, welche Beobachtungen und Erkenntnisse beim Experimentieren gewonnen wurden und welche Zutaten und Rezepte primär in die Erstellung der Modelle eingeflossen sind.

Amazon SageMaker Experiments ermöglicht Ihnen, Trainingstests auf einfache und skalierbare Weise nachzuverfolgen, zu evaluieren und zu organisieren. SageMaker Experiments ist in Amazon SageMaker Studio integriert und umfasst ein Python-SDK mit umfangreichen Jupyter-Integrationen.

Mit Amazon SageMaker Experiments können Sie Tausende von Trainingstests organisieren, Testartefakte wie Datensätze, Hyperparameter und Metriken protokollieren sowie Tests reproduzieren. Da SageMaker Experiments in SageMaker Studio integriert ist, können Sie Modelle visualisieren und schnell und einfach die besten Modelle evaluieren. Sie können ein laufendes Protokoll mit Notizen und Anmerkungen zu den Tests führen und die Tests einfach per Klick mit Teammitgliedern teilen. SageMaker Experiments speichert den kompletten Verlauf der Tests, sodass Sie im zeitlichen Verlauf zurückgehen und Artefakte überprüfen können, wenn ein Modell beginnt, vom erwarteten Ergebnis abzuweichen.

Tests

Analyse und Fehlerbehebung mit kompletter Transparenz

Umfassende Einblicke in den ML-Trainingsprozess zu erhalten und ihn komplett transparent zu gestalten, ist schwierig. Es gibt keine einfache Methode, sicherzustellen, dass ein Modell progressiv die korrekten Werte für seine Parameter lernt. Wenn Sie beispielsweise ein Modell für maschinelles Sehen mithilfe eines neuronalen Konvolutionsnetzwerks trainieren, müssen Sie das Training möglicherweise mehrere Stunden ausführen. In dieser Zeit haben Sie keinen Einblick, wie die verschiedenen ML-Modellparameter sich auf das Modelltraining auswirken und ob der Trainingsprozess die gewünschten Ergebnisse bringt.

Amazon SageMaker Debugger bietet kompletten Einblick in den Trainingsprozess. SageMaker Debugger erleichtert Entwicklern die Überprüfung über eine visuelle Oberfläche zum Analysieren der Fehlerbehebungsdaten und visuelle Indikatoren für potenzielle Anomalien im Trainingsprozess.

SageMaker Debugger erkennt automatisch häufig auftretende Fehler und weist Sie darauf hin – z. B., wenn Gradientenwerte zu groß oder klein werden. Sie können auch das Debugger-SDK verwenden, um automatisch neue Klassen modellspezifischer Fehler zu erkennen, oder interaktiv Trainingsdurchläufe in einem SageMaker Notebook analysieren. So lässt sich der Fehlerbehebungsaufwand für Machine-Learning-Modelle von Tagen auf Minuten reduzieren. Von SageMaker Debugger erfasste Daten verbleiben in Ihrem Konto, sodass Sie die Funktion auch für vertrauliche Anwendungen verwenden können.

SageMaker Debugger erstellt außerdem Echtzeit-Performancemetriken für Ihre Modelle. Dazu gehören Trainings- und Validierungsverluste (stellen Modellfehler dar und sollten so niedrig wie möglich sein), Wahrheitsmatrizes (bei Klassifizierungsmodellen stellen sie die falsch-positiven und -negativen Vorhersagen dar, und wie diese sich während des Trainings ändern) sowie Lerngradienten. Durch das Überprüfen der Lernkurven von Modellen während des Trainings lassen sich Lernprobleme diagnostizieren, z. B. unter- oder überangepasste Modelle (Underfitting/Overfitting), und es lässt sich feststellen, ob die Trainings- und Validierungsdatensätze angemessen repräsentativ sind. Diese Metriken können in Notebooks in Amazon SageMaker Studio aufgerufen und visualisiert werden.

SageMaker Debugger generiert auch Warnungen und Fehlerbehebungshinweise, wenn häufig vorkommende Trainingsprobleme erkannt werden. Wenn Ihr Modell beispielsweise alles aus den Daten gelernt hat, was es kann, und sich dennoch nicht verbessert, aber weiter trainiert wird (was Zeit und Geld kostet), meldet SageMaker Debugger Ihnen das frühzeitig, sodass Sie das Training beenden können. Es kann außerdem häufige Datenvalidierungsprobleme erkennen, wenn z. B. Ihre Netzwerkgewichtungen dauernd auf null gesetzt werden, und identifizieren, ob Ihr Modell mit Overfitting beginnt.

Debugger

Training mit einem Klick

Das Trainieren von Modellen ist mit Amazon SageMaker einfach. Wenn Sie zum Training in SageMaker bereit sind, müssen Sie nur den Speicherort der Daten in Amazon S3 und den Typ und die Anzahl der benötigten SageMaker-ML-Instances angeben und können das Training dann mit einem Klick starten. Amazon SageMaker richtet einen verteilten Datenverarbeitungscluster ein, führt das Training durch, gibt das Ergebnis in Amazon S3 aus und löst den Cluster nach Ende des Trainings wieder auf. 

Wenn Sie den Speicherort der Daten in Amazon S3 angeben, verwendet SageMaker Ihren Algorithmus und führt ihn für einen Trainingscluster aus, der in seinem eigenen softwaredefinierten Netzwerk isoliert und gemäß Ihren Anforderungen konfiguriert ist. Wenn Sie den Instance-Typ wählen, einschließlich Amazon EC2 P3dn, der leistungsstärksten GPU-basierten Instance in der Cloud, erstellt SageMaker den Cluster in einer Auto Scaling-Gruppe. SageMaker hängt außerdem an jeden Knoten EBS-Volumes an, richtet die Daten-Pipelines ein und startet das Training mit Ihren integrierten oder benutzerdefinierten Algorithmen aus TensorFlow, MXNet, Pytorch, Chainer oder Ihrem Framework-Skript. Nach Abschluss werden die Ergebnisse in S3 gespeichert und der Cluster wird automatisch aufgelöst.

Um die Durchführung von Trainings zu vereinfachen, haben wir den Fluss der Trainingsdaten aus Amazon S3 optimiert. Über die API können Sie angeben, ob alle Daten an jeden Knoten im Cluster gesendet werden sollen oder SageMaker die Verteilung der Daten auf die Knoten gemäß den Anforderungen des Algorithmus verwalten soll. In Verbindung mit den integrierten Algorithmen kann die mit Amazon SageMaker mögliche Skalierbarkeit von Trainings die Zeit und die Kosten von Trainingsdurchläufen drastisch reduzieren.

Automatische Modelloptimierung

Amazon SageMaker kann Ihr Modell automatisch optimieren, indem Tausende verschiedener Kombinationen von Algorithmusparametern angepasst werden, um die genauesten Vorhersagen zu erzielen, die mit dem Modell möglich sind.

Die Optimierung des Modells für maximale Genauigkeit erfordert zwei wesentliche Schritte: die Anpassung der Dateneingaben für das Modell (z. B. Logarithmus einer Zahl) und die Anpassung der Parameter, die das Modellverhalten definieren. Diese werden als Hyperparameter bezeichnet und die Ermittlung der richtigen Werte kann schwierig sein. In der Regel wird mit einem zufälligen Wert begonnen, der wiederholt angepasst wird, um die Auswirkungen jeder Änderung zu beobachten. Abhängig von der Anzahl der Hyperparameter im Modell kann dieser Zyklus sehr lange dauern.

SageMaker erleichtert dies, indem während des Trainings als Option die automatische Modelloptimierung angeboten wird. Die automatische Modelloptimierung nutzt Machine Learning zur schnellen Optimierung Ihres Modells, damit es so genau wie möglich wird. Auf diese Weise entfällt der langwierige Prozess der manuellen Anpassung von Hyperparametern durch Ausprobieren. Die automatische Modelloptimierung führt dagegen eine Optimierung der Hyperparameter über mehrere Trainingsdurchläufe durch. Dazu erkennt sie interessante Merkmale in Ihren Daten und ermittelt, wie diese Merkmale interagieren und die Genauigkeit beeinflussen. So sparen Sie Tage oder sogar Wochen bei der Qualitätsoptimierung Ihres trainierten Modells.

Sie geben lediglich die Anzahl der Trainingsjobs über die API oder Konsole an und SageMaker übernimmt den Rest, indem es Machine Learning zur Optimierung des Modells einsetzt. SageMaker lernt, welche Auswirkungen verschiedene Datentypen auf ein Modell haben, und wendet dieses Wissen auf viele Kopien des Modells an, um schnell das bestmögliche Ergebnis zu ermitteln. Als Entwickler oder Daten-Wissenschaftler müssen Sie sich daher nur mit den gewünschten Anpassungen der Eingabedaten für das Modell beschäftigen und können viele andere Aspekte des Trainings ausblenden.

Managed Spot Training

Durch Managed Spot Training können Sie die Kosten für die Schulung Ihrer Machine Learning-Modelle um bis zu 90 % senken. Managed Spot Training verwendet die Amazon EC2 Spot-Instances, die eine freie EC2-Kapazität sind, sodass im Vergleich zu Amazon EC2 On-Demand-Instances Ihre Schulungsaufgaben zu wesentlich niedrigeren Kosten ausgeführt werden. Amazon SageMaker verwaltet die Schulungsaufgaben, sodass sie ausgeführt werden, sobald die Datenverarbeitungskapazität verfügbar wird. Daher müssen Sie nicht kontinuierlich nach Kapazität suchen und Managed Spot Training macht es überflüssig, zur Verwaltung der Unterbrechungen zusätzliche Tools aufzubauen. Managed Spot Training arbeitet mit automatischer Modelloptimierung, den integrierten Algorithmen und Frameworks, die in Amazon SageMaker integriert sind, sowie benutzerdefinierten Algorithmen.

Automatische Modelloptimierung mit Amazon SageMaker

Absolvieren Sie diese Praxisübungen zur automatischen Modelloptimierung auf GitHub.

Trainieren von Machine-Learning-Modellen mit TensorFlow auf Amazon SageMaker

Erfahren Sie, wie Sie TensorFlow-basierte Machine-Learning-Modelle trainieren.