Amazon MLA-C01: Modelltraining und Hyperparameter-Optimierung — Lernleitfaden
Teil des AWS Machine Learning Engineer Associate MLA-C01 — Lernleitfaden. Üben Sie mit verifizierten Antworten im Amazon-Prüfungscenter, oder absolvieren Sie zeitlich begrenzte Übungstests auf ExamRoll.io.
Grundkonzept
Das Modelltraining in Amazon SageMaker ist ein orchestrierter Prozess, der containerisierten Trainingscode, Rechenressourcen, persistenten Speicher und optionale verteilte Kommunikationsstrukturen kombiniert. Ein SageMaker-Trainingsjob wird durch ein Trainings-Image oder einen Framework-Estimator, eine Eingabedatenspezifikation, die auf S3-Speicherorte verweist, und eine Ressourcenkonfiguration definiert, die InstanceType, InstanceCount und VolumeSizeInGB umfasst. Für Managed Spot Training setzen Sie EnableManagedSpotTraining auf true und geben MaxWaitTimeInSeconds sowie MaxRuntimeInSeconds an, damit SageMaker auf freie Kapazitäten bieten und Jobs innerhalb des von Ihnen erlaubten Zeitfensters fortsetzen oder anhalten kann. Checkpointing wird über CheckpointConfig mit S3Uri und LocalPath konfiguriert; bei der Verwendung von Managed Spot Instances müssen Sie häufig Checkpoints erstellen und MaxWaitTimeInSeconds ausreichend größer als MaxRuntimeInSeconds einstellen, damit unterbrochene Jobs erneut versucht werden können.
Verteiltes Training wird entweder als datenparallele oder modellparallele Strategie implementiert. SageMaker unterstützt natives verteiltes datenparalleles Training über PyTorch DistributedDataParallel oder Horovod und bietet die smdistributed-Bibliothek mit smdistributed.dataparallel für optimierte NCCL-Kommunikation. Modellparallelität ist über smdistributed.modelparallel oder Framework-spezifische Partitionierung verfügbar. Eine Kommunikation zwischen den Knoten mit hohem Durchsatz erfordert Instanzfamilien mit Unterstützung für NVLink und EFA (Elastic Fabric Adapter) – wählen Sie ml.p4d, ml.p3dn oder andere EFA-fähige Instanztypen und setzen Sie use_mpi oder use_nccL entsprechend den Anforderungen Ihres Trainingsskripts, um einen effizienten Gradienten-All-Reduce zu erhalten. Für umfangreiche Jobs (large-scale) stellen Sie InstanceTypes mit GPU-Speicher und Netzwerkeigenschaften bereit, die auf die Größe Ihrer Modell-Shards zugeschnitten sind, um das Verhältnis von Rechenleistung zu Kommunikation auszugleichen.
Die Hyperparameter-Optimierung wird von SageMaker Automatic Model Tuning (AMT) übernommen, das viele Trainingsjobs startet, um einen Hyperparameter-Raum zu durchsuchen und eine Zielmetrik zu optimieren. Die HyperParameterTuningJobConfig umfasst ParameterRanges, ResourceLimits mit MaxNumberOfTrainingJobs und MaxParallelTrainingJobs sowie eine Strategy (standardmäßig Bayesian; Alternativen sind Random oder Grid für erschöpfende oder weniger korrelierte Suchen). Definieren Sie ObjectiveMetricName und MetricDefinitions, damit AMT die Trainingsprotokolle parsen kann. Wenn Ihr Ziel der F1-Score ist, setzen Sie ObjectiveType auf Maximize und stellen Sie sicher, dass die Regex Ihrer MetricDefinitions mit der ausgegebenen Metrik übereinstimmt. Um die Optimierung zu beschleunigen und gleichzeitig das Budget zu schonen, verwenden Sie WarmStartConfig, um Ergebnisse aus früheren Optimierungsjobs wiederzuverwenden, und aktivieren Sie Richtlinien für das frühzeitige Beenden (EarlyStoppingType: Auto), wo unterstützt, um nicht vielversprechende Trainingsjobs zu beenden.
Wichtige Services und Konfiguration
Beim Aufbau eines durchgängigen Trainings- und Optimierungs-Workflows werden Sie üblicherweise mehrere AWS-Services und SageMaker-Funktionen gemeinsam nutzen:
- Amazon SageMaker Training Jobs (Estimator API / CreateTrainingJob)
- SageMaker Automatic Model Tuning (CreateHyperParameterTuningJob)
- SageMaker Model Registry (ModelPackage und CreateModelPackageGroup)
- AWS Glue / AWS Lake Formation für die sichere, zentralisierte Datenkatalogisierung
- Amazon S3 für die dauerhafte Speicherung von Checkpoints und Artefakten
Innerhalb der Konfiguration eines Trainingsjobs geben Sie ResourceConfig an, einschließlich InstanceType und InstanceCount, und übergeben Hyperparameter über HyperParameters. Für Managed Spot Training fügen Sie EnableManagedSpotTraining hinzu und setzen CheckpointConfig.S3Uri, damit unterbrochene Jobs ihren Zustand speichern. Wenn Sie Optimierungsjobs über CreateHyperParameterTuningJob starten, füllen Sie HyperParameterTuningJobConfig.ParameterRanges mit Einträgen für IntegerParameterRange, ContinuousParameterRange und CategoricalParameterRange und legen Sie ResourceLimits mit MaxNumberOfTrainingJobs und MaxParallelTrainingJobs fest. Verwenden Sie WarmStartConfig mit ParentHyperParameterTuningJobs und setzen Sie WarmStartType entweder auf IDENTICAL_DATA_AND_ALGORITHM oder TRANSFER_LEARNING, um die Suche mit Ergebnissen aus früheren Durchläufen zu starten (Bootstrap).
Zur Gewährleistung von Sicherheit und Betriebskontrolle zentralisieren Sie Modell-Artefakte, indem Sie ModelPackage-Objekte in einer ModelPackageGroup in der SageMaker Model Registry registrieren. Setzen Sie ModelApprovalStatus auf PendingManualApproval, um vor der Bereitstellung eine manuelle Änderung auf Approved zu erzwingen. Kombinieren Sie Model Registry-Ereignisse mit AWS CodePipeline oder AWS Step Functions, um eine manuelle Genehmigungsaktion zu erstellen, die ModelPackage.ModelApprovalStatus über die UpdateModelPackage-API aktualisiert. Für die Überwachung von Live-Endpunkten und die Erkennung von Drift aktivieren Sie DataCaptureConfig auf den Endpunkten und verwenden Sie SageMaker Model Monitor, um mit CreateMonitoringSchedule eine Baseline der Statistiken vor der Bereitstellung zu erstellen und später die Datenerfassung von BatchTransform oder RealTimeInference mit S3 DestinationS3Uri für eine kontinuierliche Evaluierung zu nutzen.
Entwurfsmuster und Kompromisse
Die Wahl eines datenparallelen verteilten Trainings mit vielen kleineren Shards ermöglicht eine unkomplizierte Skalierung und ist in der Regel das einfachste Muster, wenn Ihr Modell auf eine einzelne GPU passt. Datenparallele Ansätze, die PyTorch DDP oder Horovod verwenden, skalieren gut, wenn die Netzwerkinfrastruktur hochleistungsfähig ist und die Instanzen EFA und NCCL unterstützen. Wenn die Modellgewichte den Speicher einer einzelnen GPU überschreiten, sind Modellparallelität oder Pipeline-Parallelität erforderlich. smdistributed.modelparallel hilft dabei, Tensoren über GPUs hinweg zu partitionieren, erhöht aber die Komplexität beim Debugging, bei der Erstellung von Checkpoints und beim Ausgleich zwischen Rechenleistung und Kommunikation. Ein praktisches Entwurfsmuster ist ein hybrider Ansatz: Verwenden Sie Modell-Sharding für sehr große Layer und Datenparallelität über Worker-Gruppen hinweg.
Die Kompromisse bei der Hyperparameter-Optimierung bestehen hauptsächlich zwischen Zeit und Kosten. Eine breite zufällige oder Rastersuche (Random oder Grid Search) ist einfach, aber teuer. Die Bayes’sche Optimierung (die Standardstrategie von AMT) nutzt frühere Ergebnisse, um die Suche zu fokussieren, und kann die Anzahl der Trainingsjobs reduzieren, die erforderlich sind, um eine gute Konfiguration zu erreichen. Verwenden Sie WarmStartConfig, um früheres Optimierungswissen auf neue Experimente zu übertragen, wenn Änderungen am Datensatz oder Modell inkrementell sind. Die Parallelisierung vieler Trainingsjobs beschleunigt die Optimierung der Gesamtdauer (Wall-Clock Time), erhöht aber die momentanen Kosten und kann an Service-Quotas stoßen. Konfigurieren Sie MaxParallelTrainingJobs konservativ und verwenden Sie Spot-Instanzen für Optimierungsjobs, um die Ausgaben zu reduzieren. Konfigurieren Sie jedoch immer CheckpointConfig und MaxWaitTimeInSeconds, um Unterbrechungen zu tolerieren.
Die Häufigkeit der Checkpoints und die Wahl des Speichers beeinflussen sowohl die Ausfallsicherheit als auch die Kosten. Häufige Checkpoints reduzieren den Verlust an Rechenleistung bei Unterbrechungen, verursachen aber zusätzlichen Overhead bei S3-Durchsatz und Latenz. Verwenden Sie inkrementelles Checkpointing innerhalb des Containers (LocalPath) und synchronisieren Sie asynchron mit S3, um eine dauerhafte Wiederherstellung zu ermöglichen. Wenn Sie auf verwalteten Spot-Instanzen trainieren, legen Sie ein robustes Checkpoint-Intervall fest und verwenden Sie geringere Anzahlen von Instanzen für Trainingsjobs, die innerhalb der typischen Unterbrechungsfenster abgeschlossen werden können. Alternativ gestalten Sie die Trainingsschleife so, dass sie Präemption toleriert, indem Sie von SageMaker bereitgestellte SIGTERM-Hooks verwenden, um konsistente Checkpoints sicher abzuschließen.
Häufige Fallstricke und Entscheidungskriterien
Ein häufiger operativer Fallstrick ist die Verwendung von benutzerdefinierten Container-Images ohne Leistungstests. Vom Framework bereitgestellte Images (vorgefertigte SageMaker-Images für PyTorch, TensorFlow, XGBoost) starten schneller, beinhalten eine automatische Integration zur Metrik-Übermittlung und minimieren die Kaltstartlatenz. Ein weiterer häufiger Fehler bei der HPO sind falsch konfigurierte MetricDefinitions oder ObjectiveMetricName, die verhindern, dass AMT das richtige Signal findet und optimiert. Validieren Sie immer den Regex, der zur Extraktion von Metriken aus den Protokollen verwendet wird, bevor Sie einen Tuning-Job skalieren. Wenn CheckpointConfig bei der Verwendung von verwaltetem Spot-Training nicht aktiviert wird, geht der Job-Fortschritt bei einer Unterbrechung verloren, was zu einer längeren kumulativen Laufzeit und höheren Kosten führen kann.
Sicherheits- und Governance-Entscheidungen müssen sich auf das Prinzip der geringsten Rechte (Least Privilege) und die Kontrolle des Modell-Lebenszyklus konzentrieren. Verwenden Sie die SageMaker Model Registry zusammen mit dem Genehmigungs-Workflow für ModelPackage und IAM-Richtlinien, um sicherzustellen, dass nur autorisierte ModelPackage-Versionen die Produktion erreichen. Schützen Sie Trainingsdaten in S3 durch Verschlüsselung (SSE-S3 oder SSE-KMS) und steuern Sie den Zugriff über IAM-Rollen, die vom Trainingsjob übernommen werden (Parameter RoleArn in CreateTrainingJob), sowie über Lake Formation, wo zentrale Datenzugriffsrichtlinien erforderlich sind. Kombinieren Sie für die Drift-Erkennung und Ursachenanalyse SageMaker Model Monitor mit Artefakten der Model Registry, um nachzuverfolgen, welche Artefaktversionen sich verschlechtern, und um Genehmigungsabläufe mit menschlicher Beteiligung (Human-in-the-Loop) vor einer erneuten Bereitstellung auszulösen.
Praktisches Problem: Anwendungsfallszenario
Unternehmen: FinGuard Inc. – Herausforderung: Erstellen eines Betrugserkennungsmodells, das auf in S3 gespeicherten Transaktionsprotokollen und lokalen (On-Premises) MySQL-Kundenprofilen trainiert wird. Dabei sollen die Kosten minimiert, Spot-Unterbrechungen toleriert, eine automatisierte Hyperparameter-Optimierung durchgeführt, eine manuelle Genehmigung vor der Produktionsbereitstellung erzwungen und Bias oder Drift nach der Bereitstellung erkannt werden.
Datenaggregation und -vorbereitung: Nehmen Sie S3-Transaktionsprotokolle direkt auf und verwenden Sie AWS Glue mit einer JDBC-Verbindung zur lokalen MySQL-Datenbank, um Kundenprofiltabellen zu crawlen und zu katalogisieren. Registrieren Sie die kuratierten Features in einer SageMaker Feature Store FeatureGroup für den Zugriff mit geringer Latenz und zur Erzwingung der Schemakonsistenz. Verschlüsseln Sie den OfflineStore S3 mit SSE-KMS und steuern Sie den Zugriff über IAM- und Lake Formation-Richtlinien.
Training und verteilte Konfiguration: Verwenden Sie einen SageMaker Estimator mit einem integrierten XGBoost-Container für das Ausgangsmodell. Konfigurieren Sie ResourceConfig mit dem InstanceType ml.m5.4xlarge für die Baseline und skalieren Sie auf ml.p3.2xlarge für GPU-beschleunigte Experimente. Verwenden Sie für große Experimente smdistributed.dataparallel auf EFA-fähigen Instanzen (ml.p3dn.24xlarge oder ml.p4d.24xlarge) und setzen Sie CheckpointConfig.S3Uri auf s3://finguard-checkpoints/{job-name} sowie LocalPath auf /opt/ml/checkpoints. Aktivieren Sie verwaltetes Spot-Training, indem Sie EnableManagedSpotTraining auf true setzen und MaxWaitTimeInSeconds auf mindestens das Zweifache von MaxRuntimeInSeconds einstellen, um Wiederholungsversuche zu ermöglichen.
Hyperparameter-Optimierung: Starten Sie SageMaker Automatic Model Tuning mit HyperParameterTuningJobConfig.ParameterRanges für eta, max_depth und scale_pos_weight (um das Klassenungleichgewicht ohne aufwändige Vorverarbeitung zu beheben). Setzen Sie ObjectiveMetricName auf validation:F1 und stellen Sie einen MetricDefinitions-Regex bereit, der den F1-Wert extrahiert. Verwenden Sie die Strategy Bayesian, ResourceLimits mit MaxNumberOfTrainingJobs 50 und MaxParallelTrainingJobs 5, sowie WarmStartConfig, wenn Sie auf früheren Tuning-Ergebnissen aufbauen. Führen Sie Tuning-Jobs auf verwalteten Spot-Instanzen aus, um die Kosten zu senken, und stellen Sie sicher, dass CheckpointConfig für jeden Trainingsjob aktiv ist.
Modell-Governance und Bereitstellung: Registrieren Sie die besten Modellartefakte in der SageMaker Model Registry als ModelPackage innerhalb einer ModelPackageGroup und setzen Sie ModelApprovalStatus auf PendingManualApproval. Implementieren Sie eine AWS Step Functions-Pipeline, die einen menschlichen Genehmigungsschritt (manuelle Aufgabe) enthält und bei Genehmigung UpdateModelPackage aufruft, um ModelApprovalStatus auf Approved zu setzen, und dann CreateModel und CreateEndpointConfig/CreateEndpoint für die Bereitstellung auslöst. Verwenden Sie die Endpoint DataCaptureConfig, um Inferenzanfragen und -antworten in s3://finguard-capture für Model Monitor zu erfassen.
Begründung aus AWS-Sicht: AWS Glue zentralisiert und katalogisiert hybride Datenquellen und lässt sich in SageMaker integrieren. SageMaker Feature Store standardisiert Features und sichert sie für Training und Inferenz. Verwaltetes Spot-Training plus CheckpointConfig reduziert die Rechenkosten und bewahrt gleichzeitig den Fortschritt über Unterbrechungen (Preemptions) hinweg. SageMaker Automatic Model Tuning mit MetricDefinitions und WarmStartConfig beschleunigt die Suche nach robusten Hyperparametern bei gleichzeitiger Kontrolle des Budgets. Model Registry mit PendingManualApproval plus Step Functions oder CodePipeline erzwingt Governance und die Überführung von Modellen in die Produktion nach dem Least-Privilege-Prinzip. SageMaker Model Monitor und DataCaptureConfig bieten eine automatisierte Drift- und Bias-Erkennung für laufende Überprüfungen des Modellzustands.
← Daten-Engineering und Feature-Engineering · Alle Domänen · Modellevaluierung und Auswahl →
Diese Fragen üben → · Zeitlich begrenzte Übung auf ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Bestehe deine Prüfung →