Modelltrainings
Die Trainingsphase des gesamten Lebenszyklus des maschinellen Lernens (ML) reicht vom Zugriff auf Ihren Trainingsdatensatz über die Generierung eines endgültigen Modells bis hin zur Auswahl des Modells mit der besten Leistung für den Einsatz. Die folgenden Abschnitte bieten einen Überblick über die verfügbaren Trainingsfunktionen und Ressourcen von SageMaker mit ausführlichen technischen Informationen zu den einzelnen Funktionen.
Die grundlegende Architektur von SageMaker Training
Wenn Sie SageMaker AI zum ersten Mal verwenden und nach einer schnellen ML-Lösung suchen, um ein Modell mit Ihrem Datensatz zu trainieren, sollten Sie eine No-Code- oder Low-Code-Lösung wie SageMaker Canvas, JumpStart in SageMaker Studio Classic oder SageMaker Autopilot verwenden.
Für fortgeschrittene Programmierkenntnisse sollten Sie ein SageMaker Studio Classic Notebook oder SageMaker Notebook Instances verwenden. Folgen Sie zunächst den Anleitungen unter Trainieren eines Modells im Leitfaden Erste Schritte von SageMaker AI. Wir empfehlen dies für Anwendungsfälle, in denen Sie Ihr eigenes Modell und Ihr eigenes Trainingsskript mithilfe eines ML-Frameworks erstellen.
Die zentrale Funktion von SageMaker-AI-Jobs ist die Containerisierung von ML-Workloads und die Fähigkeit, Rechenressourcen zu verwalten. Die SageMaker-Trainingsplattform übernimmt die schwersten Aufgaben, die mit der Einrichtung und Verwaltung der Infrastruktur für ML-Trainingsworkloads verbunden ist. Mit SageMaker Training können Sie sich auf die Entwicklung, das Training und die Optimierung Ihres Modells konzentrieren.
Das folgende Architekturdiagramm zeigt, wie SageMaker AI ML-Trainingsjobs verwaltet und Amazon-EC2-Instances im Namen von SageMaker-AI-Benutzern bereitstellt. Sie als SageMaker-AI-Benutzer können Ihren eigenen Trainingsdatensatz mitbringen und ihn in Amazon S3 speichern. Sie können ein ML-Modelltraining aus den verfügbaren integrierten Algorithmen von SageMaker AI auswählen oder Ihr eigenes Trainingsskript mit einem Modell mitbringen, das mit gängigen Frameworks für Machine Learning erstellt wurde.
Vollständige Ansicht des Workflows und der Funktionen von SageMaker Training
Der gesamte Ablauf des ML-Trainings umfasst Aufgaben, die über die Datenaufnahme in ML-Modelle hinausgehen, Modelle auf Rechen-Instances trainieren und Modellartefakte und -ausgaben abrufen. Sie müssen jede Phase vor, während und nach dem Training auswerten, um sicherzustellen, dass Ihr Modell gut trainiert ist, damit es die Zielgenauigkeit für Ihre Ziele erreicht.
Das folgende Flussdiagramm zeigt einen allgemeinen Überblick über Ihre Aktionen (in blauen Feldern) und die verfügbaren SageMaker-Trainingsfunktionen (in hellblauen Feldern) während der gesamten Trainingsphase des ML-Lebenszyklus.
Die folgenden Abschnitte führen Sie durch die einzelnen Trainingsphasen, die im vorherigen Ablaufdiagramm dargestellt wurden, sowie durch nützliche Funktionen, die SageMaker AI in den drei Unterphasen des ML-Trainings bietet.
Vor dem Training
Es gibt eine Reihe von Szenarien für die Einrichtung von Datenressourcen und den Zugriff, die Sie vor dem Training berücksichtigen müssen. Anhand des folgenden Diagramms und der Einzelheiten der einzelnen Phasen vor dem Training können Sie sich ein Bild davon machen, welche Entscheidungen Sie treffen müssen.
-
Daten vorbereiten: Vor dem Training müssen Sie die Datenbereinigung und das Feature-Engineering während der Datenvorbereitungsphase abgeschlossen haben. SageMaker AI verfügt über mehrere Tools zur Kennzeichnung und Feature Engineering, die Ihnen dabei helfen. Weitere Informationen finden Sie unter Daten kennzeichnen, Datensätze vorbereiten und analysieren, Daten verarbeiten und Funktionen erstellen, speichern und teilen.
-
Wählen Sie einen Algorithmus oder ein Framework: Je nachdem, wie viele Anpassungen Sie benötigen, gibt es unterschiedliche Optionen für Algorithmen und Frameworks.
-
Wenn Sie eine Low-Code-Implementierung eines vorgefertigten Algorithmus bevorzugen, verwenden Sie einen der von SageMaker AI angebotenen integrierten Algorithmen. Weitere Informationen finden Sie unter Auswahl eines Algorithmus.
-
Wenn Sie mehr Flexibilität bei der Anpassung Ihres Modells benötigen, führen Sie Ihr Trainingsskript mit Ihren bevorzugten Frameworks und Toolkits in SageMaker AI aus. Weitere Informationen finden Sie unter ML Frameworks und Toolkits.
-
Informationen zur Erweiterung vorgefertigter Docker-Images von SageMaker AI als Basis-Image Ihres eigenen Containers finden Sie unter Verwenden von vorgefertigten Docker-Images von SageMaker AI.
-
Informationen dazu, wie Sie Ihren benutzerdefinierten Docker-Container in SageMaker AI integrieren können, finden Sie unter Anpassen Ihres eigenen Docker-Containers für die Verwendung mit SageMaker AI. Sie müssen das sagemaker-training-toolkit
in Ihrem Container installieren.
-
-
Datenspeicher verwalten: Machen Sie sich mit der Zuordnung zwischen dem Datenspeicher (wie Amazon S3, Amazon EFS oder Amazon FSx) und dem Trainingscontainer vertraut, der in der Amazon-EC2-Rechen-Instance ausgeführt wird. SageMaker AI hilft bei der Zuordnung der Speicherpfade und lokalen Pfade im Trainingscontainer. Sie können sie auch manuell angeben. Nachdem das Mapping abgeschlossen ist, sollten Sie einen der Datenübertragungsmodi verwenden: File, Pipe und FastFile. Informationen dazu, wie SageMaker AI Speicherpfade zuordnet, finden Sie unter Training-Speicherordner.
-
Richten Sie den Zugriff auf Trainingsdaten ein: Verwenden Sie Amazon SageMaker AI Domain, ein Domain-Benutzerprofil, IAM, Amazon VPC und AWS KMS erfüllen Sie die Anforderungen der anspruchsvollsten Organisationen in puncto Sicherheit.
-
Informationen zur Kontoverwaltung finden Sie unter Domain von Amazon SageMaker AI.
-
Eine vollständige Referenz zu IAM-Richtlinien und -Sicherheit finden Sie unter Sicherheit in Amazon SageMaker AI.
-
-
Streamen Sie Ihre Eingabedaten: SageMaker AI bietet drei Dateneingabemodi: File, Pipe und FastFile. Der Standardeingabemodus ist der Dateimodus, bei dem der gesamte Datensatz während der Initialisierung des Trainingsjobs geladen wird. Allgemeine bewährte Methoden für das Streamen von Daten aus Ihrem Datenspeicher in den Trainingscontainer finden Sie unter Zugriff auf Trainingsdaten.
Im Pipe-Modus können Sie auch erwägen, eine erweiterte Manifestdatei zu verwenden, um Ihre Daten direkt von Amazon Simple Storage Service (Amazon S3) zu streamen und Ihr Modell zu trainieren. Durch die Verwendung des Pipe-Modus wird der Speicherplatz reduziert, da Amazon Elastic Block Store nur Ihre endgültigen Modellartefakte speichern muss, anstatt Ihren gesamten Trainingsdatensatz zu speichern. Weitere Informationen finden Sie unter Bereitstellen von Datensatz-Metadaten für Trainingsaufträge mit einer erweiterten Manifestdatei.
-
Analysieren Sie Ihre Daten auf Verzerrungen: Vor dem Training können Sie Ihren Datensatz und Ihr Modell auf Verzerrungen im Vergleich zu einer benachteiligten Gruppe analysieren, sodass Sie mit SageMaker Clarify überprüfen können, ob Ihr Modell einen unverzerrten Datensatz lernt.
-
Wählen Sie, welches SageMaker-AI-SDK verwendet werden soll: Es gibt zwei Möglichkeiten, einen Trainingsjob in SageMaker AI zu starten: mit dem High-Level-SDK von SageMaker AI Python oder mit den Low-Level-APIs von SageMaker für das Python-SDK (Boto3) oder das AWS CLI. Das SageMaker Python SDK abstrahiert die Low-Level-SageMaker-API, um praktische Tools bereitzustellen. Wie bereits unter Die grundlegende Architektur von SageMaker Training erwähnt, können Sie mit SageMaker Canvas, JumpStart in SageMaker Studio Classic oder SageMaker AI Autopilot auch Optionen ohne Code oder mit minimalem Code nutzen.
Während des Trainings
Während des Trainings müssen Sie die Trainingsstabilität, die Trainingsgeschwindigkeit und die Trainingseffizienz kontinuierlich verbessern und gleichzeitig die Rechenressourcen, die Kostenoptimierung und vor allem die Modellleistung skalieren. Lesen Sie weiter, um weitere Informationen zu Trainingsphasen und den relevanten Funktionen von SageMaker Training zu erhalten.
-
Infrastruktur einrichten: Wählen Sie den richtigen Instance-Typ und die richtigen Infrastrukturmanagement-Tools für Ihren Anwendungsfall aus. Sie können mit einer kleinen Instance beginnen und diese je nach Arbeitslast hochskalieren. Um ein Modell anhand eines tabellarischen Datensatzes zu trainieren, beginnen Sie mit der kleinsten CPU-Instance der C4- oder C5-Instance-Familien. Um ein großes Modell für Computer Vision oder Verarbeitung natürlicher Sprache zu trainieren, beginnen Sie mit der kleinsten GPU-Instance der P2-, P3-, G4dn- oder G5-Instance-Familien. Mit den folgenden Instance-Verwaltungstools von SageMaker AI können Sie auch verschiedene Instance-Typen in einem Cluster mischen oder Instances in warmen Pools speichern. Sie können auch persistenten Cache verwenden, um die Latenz und die abzurechnende Zeit bei iterativen Trainingsaufgaben zu reduzieren, anstatt die Latenz allein durch warme Pools zu reduzieren. Weitere Informationen finden Sie unter den folgenden Themen.
Sie müssen über ein ausreichendes Kontingent verfügen, um einen Trainingsjob ausführen zu können. Wenn Sie Ihren Trainingsjob auf einer Instance ausführen, für die das Kontingent nicht ausreicht, erhalten Sie eine
ResourceLimitExceeded-Fehlermeldung. Um die derzeit verfügbaren Kontingente in Ihrem Konto zu überprüfen, verwenden Sie Ihre Service Quotas-Konsole. Informationen zum Anfordern einer Kontingenterhöhung finden Sie unter Unterstützte Regionen und Quotas. Preisinformationen und je nach AWS-Regionen verfügbaren Instance-Typen finden Sie auch in den Tabellen auf der Preisseite von Amazon SageMaker . -
Führen Sie einen Trainingsjob über einen lokalen Code aus: Sie können Ihren lokalen Code mit einem Remote-Decorator kommentieren, um Ihren Code als SageMaker-Trainingsjob in Amazon SageMaker Studio Classic, einem Amazon SageMaker-Notebook oder von Ihrer lokalen integrierten Entwicklungsumgebung aus auszuführen. Weitere Informationen finden Sie unter Führen Sie Ihren lokalen Code als SageMaker-Trainingsauftrag aus.
-
Trainingsjobs nachverfolgen: Überwachen und verfolgen Sie Ihre Trainingsjobs mit SageMaker Experiments, SageMaker Debugger oder Amazon CloudWatch. Mithilfe von SageMaker-AI-Experimenten können Sie die Leistung des Modells in Bezug auf Genauigkeit und Konvergenz beobachten und eine vergleichende Analyse der Metriken zwischen mehreren Trainingsjobs durchführen. Sie können die Nutzungsrate der Rechenressourcen mithilfe der Profiling-Tools von SageMaker Debugger oder Amazon CloudWatch verfolgen. Weitere Informationen finden Sie unter den folgenden Themen.
Verwenden Sie für Deep-Learning-Aufgaben außerdem die Modell-Debugging-Tools und integrierten Regeln von Amazon SageMaker Debugger, um komplexere Probleme bei der Modellkonvergenz und Gewichtsupdate zu identifizieren.
-
Verteiltes Training: Wenn Ihr Trainingsjob in eine stabile Phase übergeht, ohne dass er aufgrund einer Fehlkonfiguration der Trainingsinfrastruktur oder aufgrund von Speicherproblemen unterbrochen wird, sollten Sie nach weiteren Optionen suchen, um Ihren Job zu skalieren und über einen längeren Zeitraum von Tagen oder sogar Monaten zu laufen. Wenn Sie bereit sind, Ihr System hochzuskalieren, sollten Sie verteilte Trainings in Betracht ziehen. SageMaker AI bietet verschiedene Optionen für verteilte Berechnungen, von leichten ML-Workloads bis hin zu schweren Deep-Learning-Workloads.
Für Deep-Learning-Aufgaben, bei denen sehr große Modelle auf sehr großen Datensätzen trainiert werden, sollten Sie erwägen, eine der verteilten Trainingsstrategien von SageMaker AI zu verwenden, um hochzuskalieren und Datenparallelität, Modellparallelität oder eine Kombination aus beiden zu erreichen. Sie können den SageMaker Trainingscompiler auch zum Kompilieren und Optimieren von Modelldiagrammen auf GPU-Instances verwenden. Diese SageMaker-AI-Features unterstützen Deep-Learning-Frameworks wie PyTorch, TensorFlow und Hugging Face Transformers.
-
Modell-Hyperparameter-Tuning: Optimieren Sie Ihre Modell-Hyperparameter mithilfe der automatischen Modelloptimierung mit SageMaker AI. SageMaker AI bietet Hyperparameter-Tuning-Methoden wie Grid-Suche und Bayes-Suche und startet parallel Hyperparameter-Tuning-Jobs mit Early-Stopp-Funktionalität für Hyperparameter-Tuning-Jobs, die sich nicht verbessern.
-
Verwenden von Prüfpunkten und Kosteneinsparung mit Spot-Instances: Wenn Trainingszeit kein großes Problem darstellt, könnten Sie erwägen, die Kosten für das Modelltraining mit verwalteten Spot-Instances zu optimieren. Beachten Sie, dass Sie Checkpointing für Spot-Trainings aktivieren müssen, um die Wiederherstellung nach zeitweiligen Job-Pausen aufgrund des Austauschs von Spot-Instances aufrechtzuerhalten. Sie können die Checkpoint-Funktion auch verwenden, um Ihre Modelle für den Fall einer unerwarteten Kündigung des Trainingsauftrags zu sichern. Weitere Informationen finden Sie unter den folgenden Themen.
Nach dem Training
Nach dem Training erhalten Sie ein fertiges Modellartefakt, das Sie für die Modellbereitstellung und Inferenz verwenden können. In der Phase nach dem Training sind weitere Maßnahmen erforderlich, wie im folgenden Diagramm veranschaulicht.
-
Basismodell abrufen: Nachdem Sie das Modellartefakt haben, können Sie es als Basismodell festlegen. Ziehen Sie die folgenden Maßnahmen nach dem Training und der Verwendung der SageMaker-AI-Features in Betracht, bevor Sie mit der Modellbereitstellung in der Produktion fortfahren.
-
Untersuchen Sie die Modellleistung und überprüfen Sie sie auf Verzerrungen: Verwenden Sie Amazon CloudWatch Metrics und SageMaker Clarify für Verzerrungen nach dem Training, um Verzerrungen in eingehenden Daten zu erkennen und im Laufe der Zeit im Vergleich zum Ausgangswert zu modellieren. Sie müssen Ihre neuen Daten und Modellprognosen regelmäßig oder in Echtzeit anhand der neuen Daten auswerten. Mithilfe dieser Funktionen können Sie Benachrichtigungen über akute Veränderungen oder Anomalien sowie über allmähliche Änderungen oder Abweichungen von Daten und Modellen erhalten.
-
Sie können auch die Inkrementelle Trainingsfunktion von SageMaker AI verwenden, um Ihr Modell mit einem erweiterten Datensatz zu laden und zu aktualisieren (oder eine Feinabstimmung vorzunehmen).
-
Sie können das Modelltraining als Schritt in Ihrer SageMaker-AI-Pipeline oder als Teil anderer von SageMaker AI angebotener Workflow-Funktionen registrieren, um den gesamten ML-Lebenszyklus zu orchestrieren.