Amazon MLA-C01: Inżynieria danych i inżynieria cech — Przewodnik do nauki
Część AWS Machine Learning Engineer Associate MLA-C01 — Przewodnik do nauki. Ćwicz ze zweryfikowanymi odpowiedziami w centrum egzaminów Amazon, albo rozwiąż testy na czas na ExamRoll.io.
Główna koncepcja
Inżynieria danych dla uczenia maszynowego polega na tworzeniu odtwarzalnych, audytowalnych danych wejściowych do trenowania modeli i wnioskowania, przy jednoczesnej minimalizacji wycieku danych i obciążenia operacyjnego. U jej podstaw leży spójna semantyka pozyskiwania danych (czas zdarzenia, identyfikator rekordu, schemat), kanoniczny katalog metadanych oraz dobrze zdefiniowane transformacje, które można wykonywać zarówno w trybie offline do trenowania modeli, jak i online do wnioskowania w czasie rzeczywistym. Projektuj potoki w taki sposób, aby ten sam kod transformacji (lub te same definicje rekordów w Feature Store) obsługiwał zarówno zbiory danych treningowych, jak i cechy online zwracane podczas wnioskowania; pozwala to uniknąć rozbieżności między trenowaniem a serwowaniem. W przypadku problemów czasowych zachowuj czas zdarzenia dla każdego rekordu i wymuszaj złączenia oraz podziały uwzględniające czas, aby zapobiec wyciekowi etykiet; używając SageMaker Feature Store, ustaw RecordIdentifierFeatureName i EventTimeFeatureName w CreateFeatureGroup, aby późniejsze etapy trenowania i wnioskowania używały identycznych kluczy.
Inżynieria cech dzieli się na deterministyczne, powtarzalne transformacje oraz transformacje eksploracyjne. Deterministyczne transformacje obejmują imputację, skalowanie, kodowanie kategoryczne i agregacje pochodne (zliczenia kroczące, cechy oparte na oknach czasowych). Wykonuj je jako kod, który może być uruchamiany w Glue ETL, SageMaker Processing lub SageMaker Data Wrangler i zapisywany jako punkty kontrolne w magazynie offline. Dla cech kategorycznych o wysokiej kardynalności preferuj target encoding z podziałem na zbiory walidacji krzyżowej lub reprezentacje oparte na częstotliwości/embeddingach zamiast naiwnego kodowania one-hot, aby uniknąć eksplozji kombinatorycznej. Dla cech numerycznych preferuj przyjazną dla potoków standaryzację (średnia/wariancja) lub transformacje kwantylowe przechowywane jako parametry w artefakcie modelu, aby normalizacja produkcyjna była zgodna z tą podczas trenowania.
Kluczowe usługi i konfiguracja
AWS Glue dostarcza kanoniczną warstwę ETL i metadanych dla wielu potoków uczenia maszynowego. Użyj crawlerów Glue do wypełnienia katalogu danych Glue dla źródeł S3 i JDBC, a następnie twórz zadania Glue ETL oparte na Sparku lub wizualne zadania w Glue Studio do czyszczenia i transformacji danych. Konfiguruj zadania Glue za pomocą GlueVersion (na przykład 3.0), WorkerType (G.1X, G.2X), NumberOfWorkers, JobBookmarks do przetwarzania przyrostowego oraz DefaultArguments, takich jak “–additional-python-modules”, aby dołączyć biblioteki, np. awswrangler lub pydeequ. Aby pozyskiwać dane z lokalnej bazy MySQL, utwórz połączenie Glue z adresem URL JDBC i użyj zadań Glue lub AWS DMS do przechwytywania zmian (CDC) do strefy docelowej w S3; używając DMS, wybierz opcję pełnego załadowania, a następnie CDC, i jako docelowy format w S3 wskaż Parquet, aby uzyskać wydajne cechy offline.
SageMaker Feature Store to centralna opcja zarządzania cechami, zapewniająca niskie obciążenie operacyjne na dużą skalę. CreateFeatureGroup wymaga FeatureDefinitions, RecordIdentifierFeatureName, EventTimeFeatureName, OnlineStoreConfig (z EnableOnlineStore=True, aby włączyć magazyn o niskim opóźnieniu oparty na DynamoDB) oraz OfflineStoreConfig z S3Uri i DataCatalogConfig, aby udostępniać cechy offline przez Athena/Glue. Pozyskuj dane za pomocą BatchPutRecord lub PutRecord w zależności od przepustowości; dołącz FeatureGroupArn i RoleArn, która nadaje usłudze uprawnienia PutRecord. Magazyn offline utrwala pliki Parquet w S3 i automatycznie integruje się z katalogiem danych Glue, umożliwiając odtwarzalne zapytania treningowe. Dla cech w czasie rzeczywistym użyj GetRecord na magazynie online; dla masowych złączeń treningowych preferuj ścieżkę do plików Parquet w S3 w trybie offline.
Do zarządzania modelem i przepływów wdrożeniowych użyj SageMaker Model Registry i SageMaker Pipelines. Rejestruj wytrenowane modele za pomocą CreateModelPackage lub kroku RegisterModel w Pipelines i ustaw ModelApprovalStatus na “PendingManualApproval”, aby wymusić ręczną bramkę zatwierdzania. Zintegruj Pipelines z AWS CodePipeline lub dodaj niestandardową funkcję Lambda, która po autoryzacji zmienia status wersji model_package na “Approved” za pomocą UpdateModelPackage. Do monitorowania dryftu i stronniczości połącz SageMaker Clarify do analizy stronniczości/linii bazowej z SageMaker Model Monitor do ciągłego wykrywania dryftu danych/etykiet. Użyj ClarifyProcessor (sagemaker.processing.ProcessingJob) do oceny stronniczości na żądanie, wskazując go na artefakty Parquet z magazynu offline lub na próbki przesyłane strumieniowo, zebrane przez Model Monitor.
Wzorce projektowe i kompromisy
Wybieraj architektury typu offline-first, gdy liczy się przepustowość treningu i złożone operacje join: agreguj i utrwalaj duże cechy okienkowe w formacie Parquet w S3 (za pomocą zadań Glue/EMR/Glue Spark), kataloguj je w Glue Data Catalog i wersjonuj zbiory danych za pomocą prefiksów S3 oraz object-versioning. Takie podejście sprzyja powtarzalności i efektywnemu kosztowo przechowywaniu danych, ale zwiększa opóźnienie w dostarczaniu świeżych cech. Gdy wymagane są cechy o niskim opóźnieniu, utwórz kopię lustrzaną podzbioru w Feature Store Online (DynamoDB) lub w warstwie pamięci podręcznej (caching layer); kompromisem jest dodatkowy narzut operacyjny związany z utrzymaniem spójności między magazynami online i offline. Użyj wbudowanych potoków BatchPutRecord w Feature Store lub pozyskiwania strumieniowego za pomocą Kinesis Data Streams + Lambda, które zapisują dane do Feature Store, aby osiągnąć aktualizacje niemal w czasie rzeczywistym, zachowując jednocześnie kanoniczny widok offline.
W przypadku iteracyjnego eksperymentowania w porównaniu z przepustowością produkcyjną, SageMaker Pipelines z mechanizmem buforowania (caching) zapewnia znaczącą korzyść: włącz CacheConfig w krokach potoku, dzięki czemu kroki wymagające dużej mocy obliczeniowej, a nawet kroki treningowe, są pomijane, gdy ich dane wejściowe (parametry, sumy kontrolne danych) nie uległy zmianie. Zmniejsza to opóźnienie uruchomienia dla kolejnych uruchomień w porównaniu z wielokrotnym provisionowaniem identycznych zasobów obliczeniowych. Dla wnioskowania o ekstremalnie niskim opóźnieniu będziesz musiał pójść na kompromis między kosztem a złożonością: multi-model endpoints lub provisioned concurrency zmniejszają zmienność zimnego startu (cold-start), ale zwiększają koszty; użycie Feature Store online wraz z lekkim kontenerem modelu minimalizuje orkiestrację dla każdego żądania.
Wybór algorytmu i metod przetwarzania wstępnego wiąże się z kompromisami: wbudowany XGBoost doskonale sprawdza się w zadaniach związanych z wykrywaniem oszustw na danych tabelarycznych i dostarcza parametr scale_pos_weight do radzenia sobie z niezrównoważeniem klas bez konieczności resamplingu, co jest lekkie operacyjnie. Jednak modele głębokie z osadzeniami (embeddings) lepiej radzą sobie ze zmiennymi kategorycznymi o wysokiej kardynalności, ale wymagają bardziej rozbudowanej infrastruktury i potoków cech. Tam, gdzie to możliwe, używaj zautomatyzowanych transformacji: SageMaker Data Wrangler i Glue DataBrew oferują wizualne, powtarzalne transformacje (imputacja, normalizacja, resampling) i mogą eksportować przepływy (flows) do skryptów lub do Feature Store, skracając czas pracy inżynierskiej.
Częste pułapki i kryteria decyzyjne
Częstym błędem jest brak spójności transformacji między treningiem a serwowaniem. Przechowuj parametry transformacji (skalery, enkodery) razem z modelem lub w Feature Store, aby przetwarzanie wstępne online było identyczne z tym podczas treningu. Inną pułapką jest kodowanie one-hot dla kategorii o wysokiej kardynalności, co powoduje nadmierną wymiarowość cech; preferuj embeddingi, haszowanie lub kodowanie oparte na częstotliwości docelowej (target-frequency) i waliduj je za pomocą procedur zabezpieczonych przed wyciekiem danych (leakage-safe) z walidacją krzyżową. Powszechne są również błędy w zabezpieczeniach: podczas trenowania na wrażliwych danych w S3, wymuszaj użycie SSE-KMS (KmsKeyId), ograniczaj dostęp za pomocą polityk bucketów S3 i ról IAM (principal sagemaker.amazonaws.com) i umieszczaj zadania treningowe w VPC z punktami końcowymi S3 VPC Gateway, aby dane nie przechodziły przez publiczny internet.
Decydując między ETL opartym na zadaniach Glue a SageMaker Processing/Data Wrangler, należy ocenić częstotliwość i złożoność: Glue jest zoptymalizowany pod kątem zaplanowanych, skalowalnych zadań ETL w Sparku na wielu źródłach i integruje się z Glue Data Catalog; Data Wrangler i SageMaker Processing są odpowiednie do szybkiego eksperymentowania i bezpośredniego eksportu do Feature Store lub zadań treningowych. Do wykrywania anomalii użyj Amazon Lookout for Metrics do automatycznego statystycznego wykrywania anomalii w danych szeregów czasowych bez dużego obciążenia operacyjnego ML (ML ops), ale wybierz Deequ działający w Glue do konfigurowalnych kontroli jakości danych świadomych ich pochodzenia (lineage-aware), które mogą zasilać metrykami pulpity nawigacyjne.
Problem praktyczny: Scenariusz użycia
Nazwa firmy: FinEdge
FinEdge buduje usługę wykrywania oszustw, która musi trenować modele na podstawie dziennych logów transakcji w trybie batch z Amazon S3 oraz profili klientów przechowywanych w lokalnej bazie danych MySQL (on-prem). Dane muszą pozostać zaszyfrowane i odizolowane; wersje modelu wymagają ręcznej akceptacji przed wdrożeniem na produkcję; modele muszą mieć możliwość oceny obciążenia (bias) i dryfu na żądanie; inferencja wymaga wyszukiwania cech z niskim opóźnieniem.
Pozyskiwanie i centralizacja: Użyj AWS DMS do wykonania początkowego pełnego załadowania i replikacji CDC (Change Data Capture) z lokalnej bazy MySQL do strefy lądowania (landing zone) w S3 jako pliki Parquet. Skonfiguruj DMS z ustawieniami docelowymi S3 i zapewnij SSL dla źródła JDBC. Użyj Glue Crawler, aby zarejestrować zarówno logi transakcji z S3, jak i profile klientów z DMS w formacie Parquet w Glue Data Catalog. Ustaw parametry zadania Glue: GlueVersion 3.0, WorkerType G.2X, NumberOfWorkers dostosowany do dziennego wolumenu i włącz JobBookmarks dla uruchomień przyrostowych.
Inżynieria cech i przechowywanie: Twórz transformacje Spark w Glue lub użyj SageMaker Data Wrangler do interaktywnych iteracji na cechach i eksportu. Utrwalaj deterministyczne, zagregowane cechy w S3 jako Parquet i utwórz FeatureGroup w SageMaker Feature Store za pomocą CreateFeatureGroup, określając FeatureDefinitions, RecordIdentifierFeatureName=“transaction_id”, EventTimeFeatureName=“event_time”, OnlineStoreConfig z EnableOnlineStore=True oraz OfflineStoreConfig z S3Uri wskazującym na kanoniczne jezioro danych (data lake) i DataCatalogConfig, aby powiązać z tabelą Glue. Wprowadzaj dane za pomocą BatchPutRecord dla ładowań hurtowych i PutRecord dla aktualizacji transakcyjnych.
Trening i rejestr modeli: Użyj SageMaker Pipelines do przetwarzania wstępnego, treningu i rejestracji. Dołącz krok RegisterModel, który rejestruje model w grupie pakietów modeli (ModelPackageGroupName) i ustawia ModelApprovalStatus=“PendingManualApproval”. Podłącz akcję ręcznej akceptacji z AWS CodePipeline lub użyj API SageMaker UpdateModelPackage, aby przenieść zatwierdzone pakiety do stanu “Approved”. W przypadku nierównowagi klas ustaw hiperparametr XGBoost “scale_pos_weight” na podstawie proporcji klas obliczonej w statystykach bazowych, aby uniknąć złożoności związanej z resamplingiem.
Zarządzanie, monitorowanie i kontrole na żądanie: Utwórz punkty odniesienia (baselines) za pomocą SageMaker Clarify, używając ClarifyProcessor do obliczenia metryk obciążenia (bias) i zapisania ich w S3/FeatureStore offline. Wdróż Model Monitor za pomocą CreateMonitoringSchedule do monitorowania dryfu danych/cech; w celu oceny obciążenia lub dryfu na żądanie, uruchom programowo ClarifyProcessor lub StartMonitoringSchedule, aby analizować ostatnio przechwycony ruch lub migawkę magazynu online. Przechowuj wyniki monitorowania w S3 i prezentuj anomalie na pulpitach nawigacyjnych QuickSight. Zabezpiecz S3 za pomocą SSE-KMS, ogranicz dostęp za pomocą ról IAM z zasadą najmniejszych uprawnień (least privilege) i umieść zadania treningowe oraz inferencję w VPC z punktem końcowym S3 VPC.
Uzasadnienie wyboru usług AWS: To podejście wykorzystuje Glue i DMS do skalowalnego, audytowalnego pozyskiwania danych i metadanych za pośrednictwem Glue Data Catalog; SageMaker Feature Store do zapewnienia spójnych cech online/offline i wyszukiwania z niskim opóźnieniem; SageMaker Pipelines i Model Registry do kontrolowania cyklu życia modelu przy minimalnym narzucie operacyjnym i z wbudowanym wsparciem dla ręcznej akceptacji; Clarify i Model Monitor do zapewnienia analizy obciążenia/dryfu na żądanie i w sposób ciągły. Ta kombinacja zachowuje izolację dzięki szyfrowaniu (SSE-KMS, punkty końcowe VPC), redukuje pracę inżynierską poprzez wykorzystanie usług zarządzanych do pozyskiwania danych i zarządzania cechami oraz wymusza tworzenie powtarzalnych, audytowalnych artefaktów ML.
Wszystkie domeny · Trenowanie modeli i optymalizacja hiperparametrów →
Przećwicz te pytania → · Testy na czas na 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.
Zdaj egzamin →