Amazon MLA-C01: MLOps i zarządzanie cyklem życia modelu — 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.

Podstawowa koncepcja

Zarządzanie cyklem życia modelu w AWS koncentruje się na traktowaniu modeli jako artefaktów z wersjonowaniem, audytowalnym pochodzeniem, zautomatyzowanymi bramkami promującymi i odtwarzalnymi potokami. Amazon SageMaker dostarcza do tego podstawowe elementy: SageMaker Pipelines do orkiestracji, SageMaker Model Registry (ModelPackage/ModelPackageGroup) do wersjonowania i zarządzania stanem zatwierdzenia, SageMaker Projects i CodePipeline do CI/CD oraz Model Monitor/Clarify do bieżącego sprawdzania jakości i stronniczości. Solidny cykl życia zaczyna się od odtwarzalnych danych wejściowych — niezmiennych danych treningowych w S3 z szyfrowaniem po stronie serwera za pomocą KMS i restrykcyjnymi politykami bucketów lub kontrolkami Lake Formation, kodu wersjonowanego w repozytorium źródłowym oraz środowiska treningowego zadeklarowanego w URI obrazów kontenerów i typach instancji przekazywanych do CreateTrainingJob lub kroku TrainingStep w SDK sagemaker.

Kontrole operacyjne obejmują izolację sieciową za pomocą VpcConfig (Subnets i SecurityGroupIds) w CreateTrainingJob oraz EnableNetworkIsolation w celu zapobiegania ruchowi wychodzącemu, a także role IAM o zakresie zgodnym z zasadą najmniejszych uprawnień (SageMakerExecutionRole z uprawnieniami s3:GetObject, kms:Decrypt dla określonego bucketa). Po zakończeniu zadania treningowego zarejestruj artefakt w Model Registry za pomocą CreateModelPackage lub wywołania SDK register_model z podaniem ModelPackageGroupName i ustawieniem ModelApprovalStatus na “PendingManualApproval”, aby wymusić ręczne zatwierdzanie. Metadane pochodzenia — hiperparametry treningowe, obraz Docker, URI danych wejściowych z S3, commit Git — powinny być dołączone jako metadane pakietu modelu, aby późniejsze procesy CI/CD i audyty mogły śledzić pochodzenie od produkcyjnego punktu końcowego aż do kodu i zbioru danych.

CI/CD dla ML różni się od tradycyjnego CI/CD, ponieważ artefakty (modele, linie bazowe, monitory) są duże i mają niedeterministyczne wyniki. Zaimplementuj CI/CD za pomocą szablonów SageMaker Projects oraz usług AWS CodePipeline i CodeBuild. Użyj CodeBuild do uruchamiania testów jednostkowych, testów typu smoke-test dla treningu modelu (np. z krótkimi epokami lub na podzbiorze danych) oraz testów integracyjnych. Użyj CodePipeline do orkiestracji kroków: kod źródłowy → budowanie → rejestracja modelu, i włącz akcję ManualApproval lub niestandardową akcję opartą na Lambda, aby zmienić status ModelApprovalStatus w ModelPackage za pomocą UpdateModelPackage. W celu zautomatyzowanej promocji, CodePipeline może wywoływać API SageMaker CreateEndpointConfig i CreateEndpoint lub używać stosów CloudFormation generowanych przez SageMaker Projects do wdrażania w przewidywalny sposób jako infrastruktura jako kod.

Kluczowe usługi i konfiguracja

SageMaker Pipelines to warstwa orkiestracji: zadeklaruj w Pythonie obiekty kroków ProcessingStep, TrainingStep, ModelStep, TransformStep i RegisterModel. Użyj CacheConfig w krokach (CacheConfig(enable_caching=True, expire_after=timedelta(days=1))), aby kroki ponownie wykorzystywały wyniki, gdy dane wejściowe i parametry nie uległy zmianie; pozwala to uniknąć niepotrzebnego provisioningu instancji. Dla kroku RegisterModel użyj sagemaker.workflow.steps.RegisterModel z ustawionymi parametrami model_package_group_name i model_approval_status na “PendingManualApproval”, aby zintegrować bramki zatwierdzania z grafem potoku. Użyj API pipeline.start() do uruchamiania potoków oraz pipeline.get_steps() lub konsoli do sprawdzania statusu uruchomienia i pochodzenia danych.

SageMaker Model Registry przechowuje pakiety modeli w ramach ModelPackageGroupName i przypisuje im identyfikatory ModelPackageVersion. Odpowiednie wywołania API to CreateModelPackageGroup, CreateModelPackage, DescribeModelPackage oraz UpdateModelPackage do zmiany ModelApprovalStatus na “Approved” lub “Rejected”. Obiekty ModelPackage powinny zawierać pola metadanych, takie jak InferenceSpecification (Containers, SupportedContentTypes, SupportedResponseMIMETypes) i ModelApprovalStatus. Podczas wdrażania wywołaj CreateModel z parametrami ModelName i PrimaryContainer, używając ARN pakietu modelu, a następnie CreateEndpointConfig z DataCaptureConfig (EnableCapture=true, SamplingPercentage, DestinationS3Uri), aby włączyć przechwytywanie danych inferencyjnych.

Do monitorowania i wykrywania stronniczości użyj SageMaker Model Monitor i SageMaker Clarify. Model Monitor wymaga linii bazowej (baseline) utworzonej za pomocą DefaultModelMonitor.suggest_baseline, które wywołuje CreateProcessingJob w celu zebrania statystyk i ograniczeń bazowych; te linie bazowe są przechowywane w S3 i referowane w CreateMonitoringSchedule. Harmonogramy monitorowania tworzy się za pomocą CreateMonitoringSchedule i można je uruchamiać/zatrzymywać za pomocą StartMonitoringSchedule/StopMonitoringSchedule. W celu doraźnego sprawdzania stronniczości na punkcie końcowym czasu rzeczywistego, uruchom zadanie SageMaker Processing z kontenerem Clarify (za pomocą sagemaker.processing.ScriptProcessor lub ClarifyProcessor), używając przechwyconych logów inferencyjnych jako danych wejściowych; Clarify wspiera sprawdzanie stronniczości modelu (Model Bias) i zwraca raporty do S3.

Aby bezpiecznie agregować heterogeniczne źródła danych, użyj AWS Glue i Lake Formation do odkrywania, katalogowania i przetwarzania ETL danych z S3, źródeł JDBC (lokalna baza MySQL przez konektor AWS Glue JDBC i opcjonalnie DataSync do masowego transferu) oraz źródeł strumieniowych. Zadania AWS Glue (PySpark) mogą zapisywać przygotowane zbiory danych do zaszyfrowanego data lake na S3 ze szczegółową kontrolą dostępu przez Lake Formation. Do zautomatyzowanego wykrywania anomalii z wizualizacją, wybierz spośród usług zarządzanych: Amazon Lookout for Metrics wykonuje automatyczne wykrywanie anomalii w szeregach czasowych, podczas gdy SageMaker Data Wrangler zapewnia szybką eksplorację wizualną i transformacje oraz może eksportować potoki przetwarzania wstępnego z powrotem do SageMaker Processing lub Pipelines. W celu ciągłego wykrywania anomalii z panelami wizualizacyjnymi, połącz Lookout for Metrics do detekcji z Amazon QuickSight do wizualizacji i analizy szczegółowej (drill-down).

Wzorce projektowe i kompromisy

Powszechnym wzorcem jest podejście „pipeline-first”: tworzenie potoku SageMaker Pipeline, który obejmuje wstępne przetwarzanie danych (ProcessingStep), trenowanie (TrainingStep), ocenę modelu (ProcessingStep lub ClarifyProcessor), rejestrację modelu (RegisterModel) i wdrożenie (ModelStep lub ręczna promocja). Użyj buforowania kroków (step caching), aby zminimalizować zbędne obliczenia i przyspieszyć iteracyjny rozwój. Aby zapewnić bezpieczną promocję, ustaw model_approval_status na "PendingManualApproval" i zintegruj akcję ManualApproval z CodePipeline lub funkcję Lambda do zatwierdzania, która aktualizuje pakiet modelu. Taki projekt zapewnia audytowalną ścieżkę od danych i kodu do środowiska produkcyjnego, jednocześnie umożliwiając zarządzanie z udziałem człowieka (human-in-the-loop).

W przypadku CI/CD wybierz jeden z dwóch kompromisów: w pełni zautomatyzowana promocja oparta na bramkach metryk (szybka, mniej kroków ręcznych) w porównaniu z ręcznymi przepływami zatwierdzania (zgodność z przepisami). Zaimplementuj bramkowanie oparte na metrykach za pomocą CodeBuild, wykonując mały skrypt evaluate.py, który wywołuje SageMaker Runtime lub ładuje pakiet modelu, oblicza metryki i emituje artefakt zużywany przez CodePipeline do podjęcia decyzji o powodzeniu/niepowodzeniu. Jeśli zgodność z przepisami wymaga ręcznego zatwierdzenia, wstaw akcję AWS CodePipeline ManualApprovalAction, która wyzwala wiadomość e-mail przez SNS i wymaga, aby wskazana osoba zatwierdzająca kontynuowała proces, lub użyj stanu Model Registry jako kanonicznego źródła prawdy i zezwalaj na wdrożenia tylko wtedy, gdy ModelApprovalStatus ma wartość "Approved".

Zmniejszenie opóźnienia przy uruchamianiu zadania treningowego często polega na unikaniu powtarzalnego, pełnego provisioningu. Jeśli wiele uruchomień potoku ponownie trenuje model na identycznych danych wejściowych, włącz CacheConfig potoku, aby krok TrainingStep był pomijany, gdy dane wejściowe pozostają niezmienione. W przypadku iteracji, które muszą być trenowane przy każdym uruchomieniu, ale wymagają niskiego opóźnienia, użyj mniejszych typów instancji do szybkiego prototypowania w SageMaker Studio lub uruchom wiele eksperymentów na stałej instancji Amazon EC2 lub niestandardowym orkiestratorze treningu opartym na EKS, aby uniknąć zimnych startów kontenerów — wymieniając narzut operacyjny na niższe opóźnienie. Dla skalowalności klasy produkcyjnej, zaakceptuj pewne opóźnienie startowe i zamiast tego skup się na automatyzacji powtarzalności.

Typowe pułapki i kryteria decyzyjne

Częstym błędem jest poleganie wyłącznie na logach punktu końcowego w celu wykrywania dryftu, bez włączania DataCaptureConfig podczas wdrażania; bez przechwytywania danych, Model Monitor i Clarify nie mogą analizować rzeczywistych danych wejściowych do wnioskowania. Zawsze konfiguruj CreateEndpointConfig z DataCaptureConfig (EnableCapture=true, DestinationS3Uri, CaptureOptions i InitialSamplingPercentage) i ustawiaj harmonogram monitorowania za pomocą CreateMonitoringSchedule, łącząc go ze statystykami bazowymi.

Inną pułapką jest nieodpowiednie zabezpieczenie S3 i sieci. Zadania treningowe, które muszą pozostać odizolowane, powinny używać VpcConfig w CreateTrainingJob i włączać szyfrowanie KMS dla obiektów S3. Nie polegaj na publicznych kontrolach dostępu; zamiast tego używaj polityk bucketów S3, punktów końcowych VPC (com.amazonaws.region.s3) i ograniczania zakresu ról IAM. Na koniec, unikaj kruchych procesów CI/CD, osadzając metryki ewaluacyjne i metadane karty modelu w pakiecie modelu oraz stosując niezmienne wersjonowanie (ModelPackageVersion) zamiast nadpisywania artefaktów.

Praktyczny problem: Scenariusz użycia

AcmePay — wykrywanie oszustw w strumieniach transakcji. Wyzwaniem jest zbudowanie bezpiecznego, audytowalnego cyklu życia, który agreguje logi transakcji z S3, profile klientów i tabele z lokalnej bazy danych MySQL, trenuje klasyfikator oszustw XGBoost, utrzymuje centralny rejestr modeli z ręczną akceptacją przed wdrożeniem na produkcję, wykrywa dryft danych i stronniczości (bias) na żądanie oraz minimalizuje narzut operacyjny związany z wersjonowaniem i iteracyjnymi uruchomieniami.

  1. Centralizacja danych: użyj AWS Glue do skanowania logów transakcji w S3 i lokalnej bazy MySQL za pomocą konektora AWS Glue JDBC (z bezpiecznym transferem przez DataSync lub VPC peering dla dostępu sieciowego). Kataloguj zbiory danych w Glue Data Catalog i egzekwuj dostęp za pomocą AWS Lake Formation. Przechowuj przygotowane zbiory treningowe w zaszyfrowanym prefiksie S3 (klucz KMS CMK) i używaj polityk bucketów oraz VpcEndpoint, aby zapobiec dostępowi publicznemu.

  2. Budowanie powtarzalnych potoków: stwórz potok SageMaker Pipeline z krokiem ProcessingStep do inżynierii cech (Data Wrangler lub eksport z Glue ETL), krokiem TrainingStep uruchamiającym wbudowany kontener XGBoost z hiperparametrami oraz krokiem RegisterModel, który wywołuje RegisterModel z parametrami model_package_group_name=“acmepay-fraud-group” i model_approval_status=“PendingManualApproval”. Włącz CacheConfig dla kroków przetwarzania wstępnego i treningu, aby ponownie wykorzystywać wyniki, gdy dane wejściowe/kod pozostają niezmienione, redukując powtarzające się provisionowanie instancji.

  3. CI/CD i akceptacja: utwórz projekt SageMaker Project, który tworzy szkielet potoku AWS CodePipeline. Potok uruchamia testy jednostkowe w CodeBuild, wyzwala potok SageMaker Pipeline, a po kroku RegisterModel zawiera akcję ManualApproval w CodePipeline. Akcja ręcznej akceptacji, po zatwierdzeniu, wywołuje funkcję Lambda, która używa UpdateModelPackage do ustawienia ModelApprovalStatus=“Approved”, a następnie wyzwala CreateEndpointConfig i CreateEndpoint w celu wdrożenia. Używaj zasobów CloudFormation generowanych przez SageMaker Projects, aby utrzymać powtarzalność infrastruktury.

  4. Bezpieczny trening i wdrożenie: przesyłaj zadania treningowe z VpcConfig (SubnetIds, SecurityGroupIds) w CreateTrainingJob i EnableNetworkIsolation=true; upewnij się, że rola wykonawcza SageMaker ma uprawnienie kms:Decrypt do klucza KMS i s3:GetObject tylko dla prefiksu przygotowanego zbioru danych. Dla punktów końcowych, twórz CreateEndpointConfig z DataCaptureConfig (EnableCapture=true, SamplingPercentage=100, DestinationS3Uri=s3://acmepay-prod/capture), aby dane z wnioskowania były zachowywane do monitorowania.

  5. Kontrole dryftu i stronniczości na żądanie: użyj SageMaker Clarify w zadaniu ProcessingJob na przechwyconych danych z wnioskowania i etykietach „ground truth” (jeśli są dostępne), aby na żądanie uruchamiać analizy ModelBias i ModelExplainability; wywoływane przez API ClarifyProcessor.run() z funkcji Lambda lub Step Functions, gdy zespół data science zażąda oceny. Aby otrzymywać ciągłe alerty o dryfcie, stwórz linię bazową Model Monitor za pomocą DefaultModelMonitor.suggest_baseline i harmonogram MonitoringSchedule; użyj CreateMonitoringSchedule do uruchamiania okresowych kontroli i skonfiguruj powiadomienia SNS o naruszeniach.

Uzasadnienie wyboru usług AWS: Glue + Lake Formation centralizuje i zabezpiecza heterogeniczne źródła przy minimalnej ilości niestandardowego kodu ETL, SageMaker Pipelines + CacheConfig minimalizuje zmiany w infrastrukturze przy iteracyjnych uruchomieniach, Model Registry zapewnia niezmienne wersjonowanie i metadane (ModelPackageGroupName i ModelPackageVersion) oraz integruje się natywnie z przepływami pracy akceptacji poprzez ModelApprovalStatus, a SageMaker Clarify wraz z Model Monitor zapewniają zarówno oceny stronniczości na żądanie, jak i zaplanowane wykrywanie dryftu. Użycie SageMaker Projects i CodePipeline standaryzuje CI/CD i wymusza audytowalne, powtarzalne promowanie modelu ze statusu “PendingManualApproval” do “Approved” przed wdrożeniem na produkcję.


Wdrażanie modeli i inferencja · Wszystkie domeny · Monitorowanie modeli i obserwowalność

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 →

Przeglądaj Amazon →

Related guides

Dostęp all-in-one

Jedna subskrypcja. Każdy egzamin.

Każdy plan odblokowuje nieograniczone wyszukiwanie odpowiedzi, testy praktyczne, wyjaśnienia AI i pełną bibliotekę zasobów — w ponad 20 językach.

Miesięczny
24.87
Just €0.83/day
Wszystko w cenie:
  • Nieograniczone wyszukiwanie odpowiedzi
  • Nieograniczone testy praktyczne
  • Wyjaśnienia wspomagane AI
  • Pełna biblioteka zasobów
  • Ponad 20 języków
  • Cotygodniowe aktualizacje treści
  • Nagrody i polecenia
  • Priorytetowe wsparcie
Rozpocznij bezpłatny okres próbny

Karta kredytowa nie jest wymagana*

Najlepsza wartość
12 miesięcy
179.87
Just €0.49/daySave 40%
Wszystko w cenie:
  • Nieograniczone wyszukiwanie odpowiedzi
  • Nieograniczone testy praktyczne
  • Wyjaśnienia wspomagane AI
  • Pełna biblioteka zasobów
  • Ponad 20 języków
  • Cotygodniowe aktualizacje treści
  • Nagrody i polecenia
  • Priorytetowe wsparcie
Rozpocznij bezpłatny okres próbny

Karta kredytowa nie jest wymagana*

✓ Plan darmowy w zestawie · ✓ Anuluj w dowolnym momencie · ✓ Wszystkie plany odblokowują pełny produkt