Amazon MLS-C01: Inżynieria danych i inżynieria cech — Przewodnik do nauki
Część AWS Machine Learning Specialty MLS-C01 — Przewodnik do nauki. Ćwicz ze zweryfikowanymi odpowiedziami w centrum egzaminów Amazon, albo rozwiąż testy na czas na ExamRoll.io.
Pozyskiwanie danych, przechowywanie i formaty plików
Projektowanie jeziora danych (data lake) gotowego do uczenia maszynowego zaczyna się od wyboru odpowiedniego wzorca pozyskiwania danych i trwałego formatu zapisu. Do telemetrii w czasie rzeczywistym użyj Kinesis Data Streams (przetwarzanie o niskim opóźnieniu) lub Kinesis Data Firehose (zarządzane dostarczanie). Firehose może dostarczać dane bezpośrednio do Amazon S3 i wykonywać konwersję formatu rekordów po stronie serwera na Parquet/ORC w połączeniu z AWS Glue Schema Registry i transformacją Lambda; wybierz Data Streams + Kinesis Data Analytics lub Lambda, jeśli potrzebujesz niestandardowego wzbogacania danych lub odpowiedzi w czasie poniżej sekundy. Do migracji masowej użyj AWS DataSync, Database Migration Service (DMS) dla źródeł RDS/OLTP lub Snowball do transferów offline na skalę terabajtów. Na S3 przechowuj dane w kolumnowym formacie Parquet dla obciążeń analitycznych (predicate pushdown, kompresja taka jak Snappy, klucze partycjonowania dostosowane do wzorców zapytań) oraz TFRecord do zasilania potoków TensorFlow w celu sekwencyjnych odczytów o wysokiej przepustowości. Uważaj na problem eksplozji małych plików: buforuj zapisy (buforowanie w Firehose, batching w Glue), aby tworzyć obiekty S3 o rozmiarze odpowiednim dla frameworków big data (dziesiątki do setek MB). Ewolucja schematu jest częstym zjawiskiem: użyj Glue Catalog i Schema Registry do wersjonowania schematów; stosuj partycjonowanie i konwencje nazewnictwa, aby unikać kosztownego pełnego skanowania tabel. Częstą pułapką jest używanie trybu File w dalszych etapach przetwarzania, co powoduje kopiowanie całych zbiorów danych na węzły obliczeniowe; preferuj strumieniowanie (tryb Pipe w SageMaker), Redshift Spectrum lub Athena zamiast kopiowania całych zbiorów, gdy zawierają one miliony rekordów.
Bezserwerowy i klastrowy ETL: Glue, EMR, Redshift i SageMaker
Wybór narzędzi ETL zależy od skali, możliwości dostosowania, profilu kosztów i zapotrzebowania na biblioteki. AWS Glue zapewnia bezserwerowy ETL oparty na Spark z katalogowaniem, crawlerami i wbudowaną orkiestracją zadań — jest to doskonałe rozwiązanie dla częstych transformacji sterowanych zdarzeniami, gdzie pożądane jest zarządzane skalowanie. EMR jest preferowany, gdy potrzebujesz niestandardowych ekosystemów Spark/Hadoop, długo działających klastrów lub wyspecjalizowanych bibliotek (niestandardowe buildy GraphX, MLlib) i możesz używać S3 jako bazowego jeziora danych. Do analityki bez pozyskiwania danych użyj Redshift Spectrum lub Athena, aby odpytywać dane w formacie Parquet/ORC bezpośrednio w S3; Redshift jest lepszy do złożonych złączeń (join) i obciążeń BI. Do przygotowania danych dla modelu zadania SageMaker Processing zapewniają zarządzane kontenery do uruchamiania skalowalnego przetwarzania wstępnego w Spark lub Python, gwarantując, że kod przetwarzania wstępnego działa blisko procesu treningu i może być wersjonowany razem z zadaniem treningowym. Uruchamiając trening w SageMaker z wbudowanymi algorytmami, podaj co najmniej obraz treningowy, rolę IAM, instance_type/count oraz URI S3 dla danych treningowych; rozważ tryb Pipe, aby strumieniować rekordy i uniknąć kopiowania na EBS dla zbiorów danych z milionami rekordów. Częste pułapki: wybieranie Glue do transformacji o ekstremalnie niskim opóźnieniu (zamiast tego użyj Lambda/Kinesis) lub niepotrzebne kopiowanie danych z S3 do HDFS/EBS, gdy wystarczyłby Redshift Spectrum/Athena.
Inżynieria cech, potoki transformacji i selekcja
Inżynieria cech powinna być powtarzalna i odizolowana od wycieku danych (data leakage). Implementuj przetwarzanie wstępne jako potoki klasy produkcyjnej (scikit-learn Pipeline, potoki Spark ML lub SageMaker Processing + Feature Store), aby identyczne transformacje były stosowane zarówno podczas treningu, jak i wnioskowania. Obsługuj brakujące wartości poprzez wybór strategii: prosta imputacja (średnia/mediana/dominanta) dla małych braków; metody oparte na modelach (KNN, iteracyjne MICE), gdy inne cechy pozwalają przewidzieć brakujące wartości. Skaluj cechy numeryczne za pomocą StandardScaler lub MinMax dla modeli opartych na gradientach; zastosuj skalowanie odporne (robust scaling), jeśli dominują wartości odstające. Dla zmiennych kategorycznych wybierz kodowanie one-hot dla niskiej kardynalności, kodowanie docelowe (target encoding) lub wyuczone osadzenia (embeddings) dla kategorii o wysokiej kardynalności (użyj Embeddings w modelach głębokich lub haszowania cech (feature hashing) w celu kontroli wymiarowości). Dla danych tekstowych wykonaj spójną normalizację (zmiana na małe litery, usuwanie interpunkcji, tokenizacja); użyj Word2Vec/BlazingText do tworzenia osadzeń (embeddings) lub potoków TF-IDF/dla danych rzadkich (sparse pipelines) dla modeli liniowych; BlazingText w SageMaker obsługuje skip-gram/CBoW i jest wydajny na dużą skalę. Do selekcji cech użyj regularyzacji L1, ważności cech opartej na drzewach (XGBoost/RandomForest), informacji wzajemnej lub rekurencyjnej eliminacji cech, i zawsze przeprowadzaj selekcję cech wewnątrz podziałów walidacji krzyżowej, aby uniknąć błędu selekcji (selection bias). Największą praktyczną pułapką jest wyciek danych (leakage): nigdy nie twórz cech na podstawie informacji o przyszłej wartości docelowej ani nie stosuj przetwarzania wstępnego na całym zbiorze danych przed jego podziałem.
Bezpieczeństwo, kontrola dostępu, ład korporacyjny i monitorowanie operacyjne
Bezpieczna i audytowalna inżynieria danych jest obowiązkowa. Szyfruj dane w spoczynku (at rest) za pomocą SSE-KMS dla S3 i wolumenów EBS oraz używaj szyfrowania po stronie klienta (client-side) dla dodatkowej kontroli; zarządzaj kluczami za pomocą kluczy CMK w AWS KMS i stosuj polityki kluczy oraz granty w celu zapewnienia zasady najmniejszych uprawnień (least privilege). Ogranicz dostęp do zbiorów danych w S3 do VPC, używając S3 VPC endpoint oraz precyzyjnych polityk bucketów lub S3 Access Points z zakresem ograniczonym do podmiotu VPC (principal); łącząc to z rolami IAM przypisanymi do SageMaker, Glue, EMR lub Lambda, aby wymusić zasadę najmniejszych uprawnień. Dla wrażliwych danych PII (dane osobowe) stosuj tokenizację lub szyfrowanie na poziomie pola i upewnij się, że KMS rotuje klucze zgodnie z polityką. Operacyjnie włącz CloudTrail do logowania aktywności API SageMaker i Glue oraz CloudWatch do zbierania metryk zadań; używaj SageMaker Model Monitor do wykrywania dryfu (drift) i ustawiaj alerty w celu ponownego trenowania lub sprawdzania obciążenia (bias) modeli. Ład danych (data governance) wymaga użycia Glue Data Catalog lub korporacyjnego repozytorium metadanych, śledzenia pochodzenia danych (data lineage) oraz tagowania na potrzeby polityk cyklu życia; wdrażaj reguły cyklu życia S3 (przenoszenie do Glacier) dla zimnych danych (cold data). Częste błędne przekonania to założenie, że same grupy bezpieczeństwa (security groups) są wystarczające (potrzebujesz również IAM, polityk bucketów i VPC endpoints) lub zapominanie o włączeniu szyfrowania na wolumenach instancji treningowych — zawsze uwzględniaj szyfrowanie EBS w definicjach zadań treningowych i weryfikuj dostęp za pomocą ról o najmniejszych uprawnieniach.
Problem praktyczny: Scenariusz użycia
Scenariusz: Firma MetroRetail zarządza środowiskiem ML w AWS, w którym dane o ścieżkach kliknięć klientów (clickstream) są pozyskiwane do Kinesis Data Streams, przechowywane w S3, a modele są trenowane w SageMaker. Jezioro danych (data lake) wykorzystuje Glue Catalog i Athena na potrzeby analityków.
Wyzwanie: Konwersja strumieniowanych zdarzeń kliknięć w formacie CSV na format Parquet w S3 z obsługą ewolucji schematu, tworzenie niezawodnych wektorów cech dla modelu rekomendacyjnego oraz zapewnienie skalowalności potoku bez kopiowania wielogigabajtowych zbiorów danych na instancje treningowe.
Zalecane podejście:
- Użyj Kinesis Data Streams do pozyskiwania danych, podłącz konsumenta Lambda do przeprowadzania uproszczonej walidacji i przekazywania rekordów do strumienia dostarczania Kinesis Data Firehose skonfigurowanego z Glue Schema Registry w celu konwersji formatu JSON/CSV na Parquet i zapisu partycjonowanych plików Parquet do S3 (wskazówki dotyczące buforowania dostrojone do ~64–128 MB).
- Skataloguj dane w formacie Parquet w AWS Glue; użyj zadań Glue ETL (bezserwerowy Spark) lub SageMaker Processing (kontener Spark) do budowy powtarzalnych potoków cech, stosując imputację (mediana dla danych numerycznych o skośnym rozkładzie), StandardScaler oraz osadzenia kategorialne (categorical embeddings) dla
item_ido wysokiej kardynalności. - Przechowuj wektory cech online w SageMaker Feature Store (magazyn online do odczytów o niskim opóźnieniu), a cechy offline w S3 (magazyn offline Feature Store oparty na Parquet). Trenuj model w SageMaker, używając trybu Pipe mode wskazującego na manifesty Parquet w S3, aby strumieniować dane i unikać pełnego kopiowania.
- Zabezpiecz S3 za pomocą SSE-KMS, ogranicz dostęp przy użyciu S3 VPC endpoint i restrykcyjnych polityk bucketów dla VPC oraz włącz CloudTrail i SageMaker Model Monitor do logowania aktywności i alertów o dryfie.
Uzasadnienie: To podejście wykorzystuje zarządzaną konwersję strumieniową do formatu Parquet oraz bezserwerowy ETL w celu zapewnienia skalowalności, używa Feature Store dla spójności między trenowaniem a wnioskowaniem, unika kosztownego przenoszenia danych dzięki trybowi Pipe mode oraz wymusza szyfrowanie i dostęp oparty na zasadzie najmniejszych uprawnień, co zapewnia gotowość produkcyjną.
Wszystkie domeny · Eksploracyjna analiza danych i wizualizacja →
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 →