Amazon MLA-C01: Daten-Engineering und Feature-Engineering — 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
Beim Data Engineering für ML geht es darum, reproduzierbare und prüffähige Eingaben für das Modelltraining und die Inferenz zu erstellen und dabei Leckagen (Leakage) und den Betriebsaufwand zu minimieren. Den Kern bilden eine konsistente Ingestionssemantik (Ereigniszeit, Datensatz-Identifikator, Schema), ein kanonischer Metadatenkatalog und klar definierte Transformationen, die sowohl offline für das Modelltraining als auch online für die Echtzeit-Inferenz ausgeführt werden können. Architektieren Sie Ihre Pipelines so, dass derselbe Transformationscode (oder dieselben Feature-Store-Datensatzdefinitionen) sowohl für Trainingsdatensätze als auch für die bei der Inferenz zurückgegebenen Online-Features verwendet wird; dies vermeidet Train/Serve Skew. Bei zeitlichen Problemen sollten Sie die Ereigniszeit für jeden Datensatz beibehalten und zeitbezogene Joins und Splits erzwingen, um Label Leakage zu verhindern. Wenn Sie SageMaker Feature Store verwenden, setzen Sie einen RecordIdentifierFeatureName und einen EventTimeFeatureName in CreateFeatureGroup, damit nachgelagerte Trainings- und Inferenzprozesse identische Schlüssel verwenden.
Das Feature Engineering unterteilt sich in deterministische, wiederholbare Transformationen und explorative Transformationen. Zu den deterministischen Transformationen gehören Imputation, Skalierung, kategoriale Kodierung und abgeleitete Aggregationen (gleitende Zählungen, Zeitfenster-Features). Führen Sie diese als Code aus, der in Glue ETL, SageMaker Processing oder SageMaker Data Wrangler laufen und in einem Offline-Store als Checkpoint gesichert werden kann. Bevorzugen Sie für kategoriale Features mit hoher Kardinalität Target Encoding mit Cross-Validation-Folds oder frequenz- bzw. einbettungsbasierte Darstellungen anstelle einer naiven One-Hot-Kodierung, um eine kombinatorische Explosion zu vermeiden. Für numerische Features bevorzugen Sie eine pipeline-freundliche Standardisierung (Mittelwert/Varianz) oder Quantil-Transformationen, die als Parameter in einem Modell-Artefakt gespeichert werden, damit die Normalisierung in der Produktion mit der im Training übereinstimmt.
Wichtige Services und Konfiguration
AWS Glue stellt die kanonische ETL- und Metadatenschicht für viele ML-Pipelines bereit. Verwenden Sie Glue Crawlers, um den Glue Data Catalog für S3- und JDBC-Quellen zu füllen, und erstellen Sie dann Spark-basierte Glue-ETL-Jobs oder visuelle Jobs in Glue Studio, um Daten zu bereinigen und zu transformieren. Konfigurieren Sie Glue-Jobs mit GlueVersion (z. B. 3.0), WorkerType (G.1X, G.2X), NumberOfWorkers, JobBookmarks für die inkrementelle Verarbeitung und DefaultArguments wie „–additional-python-modules“, um Bibliotheken wie awswrangler oder pydeequ einzubinden. Für die Ingestion aus einem On-Premise-MySQL richten Sie eine Glue-Verbindung mit JDBC-URL ein und verwenden Sie entweder Glue-Jobs oder AWS DMS, um CDC in einer S3-Landing-Zone zu erfassen. Wenn Sie DMS verwenden, wählen Sie Full-Load und dann CDC und als Ziel S3 Parquet für effiziente Offline-Features.
SageMaker Feature Store ist die zentrale Option für das Feature-Management mit geringem Betriebsaufwand bei Skalierung. CreateFeatureGroup erfordert FeatureDefinitions, RecordIdentifierFeatureName, EventTimeFeatureName, OnlineStoreConfig (EnableOnlineStore=True, um einen DynamoDB-gestützten Store mit niedriger Latenz zu aktivieren) und OfflineStoreConfig mit S3Uri und DataCatalogConfig, um Offline-Features über Athena/Glue verfügbar zu machen. Die Ingestion erfolgt je nach Durchsatz mit BatchPutRecord oder PutRecord; schließen Sie die FeatureGroupArn und die RoleArn ein, die dem Service PutRecord-Berechtigungen gewährt. Der Offline-Store speichert Parquet-Dateien dauerhaft in S3 und integriert sich automatisch in den Glue Data Catalog, was reproduzierbare Trainingsabfragen ermöglicht. Für Echtzeit-Features verwenden Sie GetRecord gegen den Online-Store; für Bulk-Joins für das Training bevorzugen Sie den Offline-S3-Parquet-Pfad.
Für Modell-Governance- und Deployment-Workflows verwenden Sie SageMaker Model Registry und SageMaker Pipelines. Registrieren Sie trainierte Modelle mit CreateModelPackage oder dem Pipelines-Schritt RegisterModel und setzen Sie den ModelApprovalStatus auf „PendingManualApproval“, um ein manuelles Genehmigungs-Gate zu erzwingen. Integrieren Sie Pipelines mit AWS CodePipeline oder fügen Sie eine benutzerdefinierte Lambda-Funktion hinzu, die autorisierte Versionen von model_package über UpdateModelPackage auf „Approved“ setzt. Zur Überwachung von Drift und Bias kombinieren Sie SageMaker Clarify für die Bias-/Baseline-Analyse und SageMaker Model Monitor für die kontinuierliche Daten- und Label-Drift-Erkennung. Verwenden Sie den ClarifyProcessor (sagemaker.processing.ProcessingJob) für eine On-Demand-Bias-Bewertung, indem Sie ihn auf die Parquet-Artefakte des Offline-Stores oder auf von Model Monitor gesammelte Streaming-Samples verweisen.
Entwurfsmuster und Kompromisse
Wählen Sie Offline-First-Architekturen, wenn der Trainingsdurchsatz und komplexe Joins von Bedeutung sind: Aggregieren und persistieren Sie große, gefensterte Features in S3 Parquet (Glue/EMR/Glue Spark-Jobs), katalogisieren Sie sie im Glue Data Catalog und versionieren Sie Datensätze mit S3-Präfixen und Objektversionierung. Dieser Ansatz begünstigt die Reproduzierbarkeit und kosteneffiziente Speicherung, erhöht jedoch die Latenz bei der Bereitstellung von aktuellen Features. Wenn Features mit geringer Latenz erforderlich sind, spiegeln Sie eine Teilmenge in den Feature Store Online (DynamoDB) oder eine Caching-Schicht; der Kompromiss ist der betriebliche Mehraufwand, um Online- und Offline-Speicher konsistent zu halten. Verwenden Sie die integrierten BatchPutRecord-Pipelines des Feature Store oder die Stream-Ingestion über Kinesis Data Streams + Lambda, die in den Feature Store schreiben, um Aktualisierungen nahezu in Echtzeit zu erreichen und gleichzeitig eine kanonische Offline-Ansicht beizubehalten.
Für iterative Experimente im Vergleich zum Produktionsdurchsatz bieten SageMaker Pipelines mit Caching einen bemerkenswerten Vorteil: Aktivieren Sie CacheConfig in den Pipeline-Schritten, sodass rechenintensive Transformationen und sogar Trainingsschritte übersprungen werden, wenn sich ihre Eingaben (Parameter, Daten-Prüfsummen) nicht geändert haben. Dies reduziert die Startlatenz für aufeinanderfolgende Ausführungen im Vergleich zur wiederholten Bereitstellung identischer Rechenressourcen. Für Inferenz mit extrem niedriger Latenz müssen Sie Kompromisse bei Kosten und Komplexität eingehen: Multi-Model-Endpunkte oder Provisioned Concurrency reduzieren die Kaltstart-Variabilität, erhöhen aber die Kosten; die Verwendung des Feature Store online plus eines schlanken Modell-Containers minimiert die Orchestrierung pro Anfrage.
Die Wahl des Algorithmus und der Vorverarbeitungsschritte bringt Kompromisse mit sich: Das integrierte XGBoost eignet sich hervorragend für tabellarische Betrugserkennungsaufgaben und bietet scale_pos_weight, um Klassenungleichgewichte ohne Resampling zu beheben, was betrieblich einfach ist. Deep-Learning-Modelle mit Embeddings gehen jedoch eleganter mit kategorialen Variablen hoher Kardinalität um, erfordern aber mehr Infrastruktur und Feature-Pipelines. Verwenden Sie nach Möglichkeit automatisierte Transformationen: SageMaker Data Wrangler und Glue DataBrew bieten visuelle, wiederholbare Transformationen (Imputation, Normalisierung, Resampling) und können Flows in Skripte oder in den Feature Store exportieren, was den Entwicklungsaufwand reduziert.
Häufige Fallstricke und Entscheidungskriterien
Ein häufiger Fehler ist es, die Transformationen für das Training und die Bereitstellung (Serving) nicht aufeinander abzustimmen. Speichern Sie Transformationsparameter (Scaler, Encoder) mit dem Modell oder im Feature Store, damit die Online-Vorverarbeitung mit der des Trainings identisch ist. Ein weiterer Fallstrick ist das One-Hot-Encoding von Kategorien mit hoher Kardinalität, das zu einer exzessiven Dimensionalität der Merkmale führt; bevorzugen Sie Embeddings, Hashing oder Target-Frequency-Encodings und validieren Sie diese durch kreuzvalidierte, Leakage-sichere Verfahren. Auch Sicherheitsfehler sind häufig: Wenn Sie auf sensiblen S3-Daten trainieren, erzwingen Sie SSE-KMS (KmsKeyId), schränken Sie den Zugriff mit S3-Bucket-Richtlinien und IAM-Rollen (Principal sagemaker.amazonaws.com) ein und platzieren Sie Trainingsjobs in einer VPC mit S3-VPC-Gateway-Endpunkten, damit die Daten nicht das öffentliche Internet durchqueren.
Entscheiden Sie zwischen Glue-Job-gesteuertem ETL und SageMaker Processing/Data Wrangler, indem Sie Häufigkeit und Komplexität bewerten: Glue ist für geplantes, skalierbares Spark-ETL über viele Quellen hinweg optimiert und lässt sich in den Glue Data Catalog integrieren; Data Wrangler und SageMaker Processing eignen sich für schnelles Experimentieren und den direkten Export in den Feature Store oder in Trainingsjobs. Für die Anomalieerkennung verwenden Sie Amazon Lookout for Metrics für die automatische statistische Anomalieerkennung auf Zeitreihen ohne aufwändige ML-Ops, aber wählen Sie Deequ, das in Glue läuft, für anpassbare, Lineage-bewusste Datenqualitätsprüfungen, die Metriken in Dashboards einspeisen können.
Praktisches Problem: Anwendungsfallszenario
Genanntes Unternehmen: FinEdge
FinEdge entwickelt einen Betrugserkennungsdienst, der Modelle aus täglichen Batch-Transaktionsprotokollen in Amazon S3 sowie aus Kundenprofilen, die in einer On-Premises-MySQL-Datenbank gespeichert sind, trainieren muss. Die Daten müssen verschlüsselt und isoliert bleiben; Modellversionen erfordern eine manuelle Freigabe vor der Produktionsbereitstellung; Modelle müssen eine On-Demand-Bewertung von Bias und Drift ermöglichen; die Inferenz benötigt Feature-Lookups mit geringer Latenz.
Aufnehmen und zentralisieren: Verwenden Sie AWS DMS, um eine initiale Vollladung und eine CDC-Replikation von der On-Premises-MySQL-Datenbank in eine S3-Landing-Zone als Parquet-Dateien durchzuführen. Konfigurieren Sie DMS mit S3-Zieleinstellungen und stellen Sie SSL für die JDBC-Quelle sicher. Verwenden Sie einen Glue Crawler, um sowohl die S3-Transaktionsprotokolle als auch die DMS-Parquet-Kundenprofile im Glue Data Catalog zu registrieren. Legen Sie die Glue-Jobparameter fest: GlueVersion 3.0, WorkerType G.2X, eine zum täglichen Volumen passende NumberOfWorkers und aktivieren Sie JobBookmarks für inkrementelle Durchläufe.
Feature Engineering und Speicherung: Erstellen Sie Spark-Transformationen in Glue oder verwenden Sie SageMaker Data Wrangler für interaktive Feature-Iterationen und den Export. Persistieren Sie deterministische aggregierte Features als Parquet in S3 und erstellen Sie eine SageMaker Feature Store FeatureGroup mit CreateFeatureGroup unter Angabe von FeatureDefinitions, RecordIdentifierFeatureName=“transaction_id”, EventTimeFeatureName=“event_time”, OnlineStoreConfig mit EnableOnlineStore=True und einer OfflineStoreConfig, deren S3Uri auf den kanonischen Data Lake verweist, sowie einer DataCatalogConfig, um die Glue-Tabelle zu verknüpfen. Nehmen Sie Daten über BatchPutRecord für Massen-Uploads und PutRecord für transaktionale Updates auf.
Training und Modellregistrierung: Verwenden Sie SageMaker Pipelines für Vorverarbeitung, Training und Registrierung. Fügen Sie einen RegisterModel-Schritt hinzu, der das Modell in einer ModelPackageGroupName registriert und ModelApprovalStatus=“PendingManualApproval” setzt. Binden Sie eine manuelle Genehmigungsaktion von AWS CodePipeline ein oder verwenden Sie die SageMaker-API UpdateModelPackage, um genehmigte Pakete auf “Approved” zu setzen. Bei unausgeglichenen Klassen (Class Imbalance) setzen Sie den XGBoost-Hyperparameter “scale_pos_weight” basierend auf dem in den Baseline-Statistiken berechneten Klassenverhältnis, um die Komplexität des Resamplings zu vermeiden.
Governance, Überwachung und On-Demand-Prüfungen: Erstellen Sie Baselines mit SageMaker Clarify unter Verwendung eines ClarifyProcessor, um Bias-Metriken zu berechnen und die Baselines in S3/FeatureStore offline zu speichern. Stellen Sie Model Monitor mit CreateMonitoringSchedule für Daten-/Feature-Drift bereit; für eine On-Demand-Bewertung von Bias oder Drift führen Sie einen ClarifyProcessor oder StartMonitoringSchedule programmatisch aus, um den kürzlich erfassten Traffic oder den Snapshot des Online-Stores zu analysieren. Speichern Sie die Überwachungsausgaben in S3 und visualisieren Sie Anomalien über QuickSight-Dashboards. Sichern Sie S3 mit SSE-KMS, beschränken Sie den Zugriff durch IAM-Rollen mit den geringsten Rechten (Least Privilege) und platzieren Sie Training und Inferenz in einer VPC mit einem S3-VPC-Endpunkt.
Begründung aus AWS-Sicht: Dieser Ansatz nutzt Glue und DMS für die skalierbare, auditierbare Aufnahme und Metadatenverwaltung über den Glue Data Catalog; SageMaker Feature Store für konsistente Online-/Offline-Features und Lookups mit geringer Latenz; SageMaker Pipelines und Model Registry, um den Modell-Lebenszyklus mit minimalem Betriebsaufwand und integrierter Unterstützung für manuelle Genehmigungen zu steuern; Clarify und Model Monitor, um eine On-Demand- und kontinuierliche Bias-/Drift-Analyse bereitzustellen. Die Kombination bewahrt die verschlüsselte Isolation (SSE-KMS, VPC-Endpunkte), reduziert den Entwicklungsaufwand durch die Nutzung von Managed Services für die Datenaufnahme und das Feature-Management und erzwingt reproduzierbare, auditierbare ML-Artefakte.
Alle Domänen · Modelltraining und Hyperparameter-Optimierung →
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 →