Amazon MLA-C01: MLOps en Beheer van de Modellevenscyclus — Studiegids
Onderdeel van de AWS Machine Learning Engineer Associate MLA-C01 — Studiegids. Oefen met geverifieerde antwoorden in het Amazon-examencentrum, of doe getimede oefentests op ExamRoll.io.
Kernconcept
Het beheer van de modellevenscyclus (model lifecycle management) in AWS draait om het behandelen van modellen als versiebeheerde artefacten met geauditeerde herkomst (lineage), geautomatiseerde promotiepoorten (promotion gates) en reproduceerbare pipelines. Amazon SageMaker levert de bouwstenen: SageMaker Pipelines voor orkestratie, de SageMaker Model Registry (ModelPackage/ModelPackageGroup) voor versiebeheer en goedkeuringsstatus, SageMaker Projects en CodePipeline voor CI/CD, en Model Monitor/Clarify voor doorlopende kwaliteits- en bias-controles. Een robuuste levenscyclus begint met reproduceerbare inputs: onveranderlijke (immutable) trainingsdata in S3 met server-side KMS-encryptie en strikte bucket policies of Lake Formation-controles, code met versiebeheer in een source repo, en de trainingsomgeving die is gedeclareerd in container image URI’s en instance types die worden doorgegeven aan CreateTrainingJob of de sagemaker SDK TrainingStep.
Operationele controles omvatten netwerkisolatie via CreateTrainingJob VpcConfig (Subnets en SecurityGroupIds) en EnableNetworkIsolation om uitgaand verkeer (egress) te voorkomen, en IAM-rollen met de minst benodigde rechten (least privilege) (SageMakerExecutionRole met s3:GetObject, kms:Decrypt voor de specifieke bucket). Wanneer een training job is voltooid, registreer je het artefact in de Model Registry met behulp van CreateModelPackage of de SDK-aanroep register_model met een ModelPackageGroupName en stel je ModelApprovalStatus in op “PendingManualApproval” om menselijke goedkeuringsstappen aan te sturen. Lineage-metadata — training hyperparameters, Docker-image, input data S3 URI’s, Git-commit — moet worden toegevoegd als metadata van het modelpakket, zodat downstream CI/CD en audits kunnen traceren van het productie-endpoint terug naar de code en de dataset.
CI/CD voor ML verschilt van traditionele CI/CD omdat artefacten (modellen, baselines, monitors) groot zijn en niet-deterministische outputs hebben. Implementeer CI/CD met SageMaker Projects-templates in combinatie met AWS CodePipeline en CodeBuild. Gebruik CodeBuild om unit tests, smoke-tests voor modeltraining (bijv. korte epochs of een subset van de data) en integratietests uit te voeren. Gebruik CodePipeline om de stappen source → build → register-model te orkestreren, en neem een ManualApproval-actie of een op Lambda gebaseerde custom actie op om de ModelPackage ModelApprovalStatus om te zetten via UpdateModelPackage. Voor geautomatiseerde promotie kan CodePipeline de SageMaker CreateEndpointConfig en CreateEndpoint API’s aanroepen, of CloudFormation-stacks gebruiken die door SageMaker Projects zijn gegenereerd om te implementeren met voorspelbare infrastructure-as-code.
Belangrijkste services en configuratie
SageMaker Pipelines is de orkestratielaag: declareer ProcessingStep, TrainingStep, ModelStep, TransformStep en RegisterModel step-objecten in Python. Gebruik CacheConfig op stappen (CacheConfig(enable_caching=True, expire_after=timedelta(days=1))) zodat stappen outputs hergebruiken wanneer inputs en parameters niet zijn gewijzigd; dit voorkomt het onnodig provisionen van instances. Gebruik voor RegisterModel sagemaker.workflow.steps.RegisterModel met model_package_group_name en model_approval_status ingesteld op “PendingManualApproval” om goedkeuringspoorten (gates) in de pipeline-graaf te integreren. Gebruik de pipeline.start() API om runs te starten en pipeline.get_steps() of de console om de run-status en lineage te inspecteren.
De SageMaker Model Registry slaat modelpakketten op onder een ModelPackageGroupName en wijst ModelPackageVersion-identifiers toe. De relevante API’s zijn CreateModelPackageGroup, CreateModelPackage, DescribeModelPackage en UpdateModelPackage om ModelApprovalStatus te wijzigen in “Approved” of “Rejected”. ModelPackage-objecten moeten metadatavelden bevatten zoals InferenceSpecification (Containers, SupportedContentTypes, SupportedResponseMIMETypes) en ModelApprovalStatus. Roep bij het deployen CreateModel aan met ModelName en PrimaryContainer met behulp van de model package ARN en vervolgens CreateEndpointConfig met DataCaptureConfig (EnableCapture=true, SamplingPercentage, DestinationS3Uri) om inference capture in te schakelen.
Gebruik voor monitoring en bias-detectie SageMaker Model Monitor en SageMaker Clarify. Model Monitor vereist een baseline die is aangemaakt via DefaultModelMonitor.suggest_baseline, die CreateProcessingJob aanroept voor baseline-statistieken en -constraints; deze baselines worden opgeslagen in S3 en er wordt naar verwezen in CreateMonitoringSchedule. Monitoringschema’s worden aangemaakt met CreateMonitoringSchedule en kunnen worden gestart/gestopt via StartMonitoringSchedule/StopMonitoringSchedule. Voer voor ad-hoc bias-controles op een real-time endpoint een SageMaker Processing-job uit met de Clarify-container (via sagemaker.processing.ScriptProcessor of ClarifyProcessor) met vastgelegde inference-logs als input; Clarify ondersteunt Model Bias-controles en retourneert rapporten naar S3.
Om heterogene databronnen veilig te aggregeren, gebruik je AWS Glue en Lake Formation om data te ontdekken, te catalogiseren en te ETL’en vanuit S3, JDBC-bronnen (on-premises MySQL via de AWS Glue JDBC-connector en optioneel DataSync voor bulkverplaatsing) en streamingbronnen. AWS Glue-jobs (PySpark) kunnen gecureerde datasets wegschrijven naar een versleuteld S3-datalake met fijnmazige toegangscontrole via Lake Formation. Kies voor geautomatiseerde anomaliedetectie plus visualisatie tussen beheerde services: Amazon Lookout for Metrics voert geautomatiseerde anomaliedetectie op tijdreeksen uit, terwijl SageMaker Data Wrangler snelle visuele exploratie en transformaties biedt en preprocessing-pipelines terug kan exporteren naar SageMaker Processing of Pipelines. Voor continue anomaliedetectie met visualisatiedashboards combineer je Lookout for Metrics voor detectie met Amazon QuickSight voor visualisatie en drill-down.
Ontwerppatronen en afwegingen
Een veelvoorkomend patroon is ‘pipeline-first’: creëer een SageMaker Pipeline die datavoorbewerking (ProcessingStep), training (TrainingStep), modelevaluatie (ProcessingStep of ClarifyProcessor), modelregistratie (RegisterModel) en implementatie (ModelStep of een handmatige promotie) omvat. Gebruik step caching om redundante rekenkracht te minimaliseren en iteratieve ontwikkeling te versnellen. Voor een veilige promotie, stel model_approval_status in op “PendingManualApproval” en integreer een CodePipeline ManualApproval-actie of een approval-Lambda die het modelpakket bijwerkt. Dit ontwerp biedt een auditeerbaar pad van data en code naar productie, terwijl het ‘human-in-the-loop’-governance mogelijk maakt.
Voor CI/CD, kies tussen twee afwegingen: volledig geautomatiseerde promotie op basis van ‘metric gates’ (snel, minder handmatige stappen) versus handmatige goedkeuringsworkflows (compliance). Implementeer op metrics gebaseerde ‘gating’ met CodeBuild die een klein evaluate.py-script uitvoert. Dit script roept SageMaker Runtime aan of laadt het modelpakket, berekent metrics en produceert een artefact dat door CodePipeline wordt gebruikt om te beslissen over ‘pass/fail’. Als compliance menselijke goedkeuring vereist, voeg dan een AWS CodePipeline ManualApprovalAction in die via SNS een e-mail activeert en een benoemde fiatteur vereist om door te gaan. Een andere optie is om de status in de Model Registry te gebruiken als de canonieke ‘source of truth’ en implementaties alleen toe te staan wanneer ModelApprovalStatus gelijk is aan “Approved”.
Het verminderen van de opstartlatentie van trainingstaken gaat vaak over het vermijden van herhaalde, volledige provisioning. Als veel pipeline-runs opnieuw trainen op identieke inputs, schakel dan Pipeline CacheConfig in zodat de TrainingStep wordt overgeslagen wanneer de inputs ongewijzigd zijn. Voor iteraties die elke run moeten trainen maar een lage latentie vereisen, gebruik kleinere instance types voor snelle prototyping in SageMaker Studio. Of voer meerdere experimenten uit op een persistente Amazon EC2-instance of een op EKS gebaseerde, custom training orchestrator om ‘cold starts’ van containers te vermijden — dit ruilt operationele overhead in voor een lagere latentie. Voor schaalbaarheid op productieniveau (‘production-grade’), accepteer enige opstartvertraging en automatiseer in plaats daarvan de reproduceerbaarheid.
Veelvoorkomende valkuilen en beslissingscriteria
Een veelgemaakte fout is om uitsluitend te vertrouwen op endpoint-logs voor drift-detectie zonder DataCaptureConfig in te schakelen tijdens de implementatie; zonder data-capture kunnen Model Monitor en Clarify de daadwerkelijke inference-invoer niet analyseren. Configureer altijd CreateEndpointConfig met DataCaptureConfig (EnableCapture=true, DestinationS3Uri, CaptureOptions en InitialSamplingPercentage) en zet een monitoringschema op via CreateMonitoringSchedule dat linkt naar de baseline-statistieken.
Een andere valkuil is ontoereikende S3- en netwerkbeveiliging. Training-jobs die geïsoleerd moeten blijven, moeten VpcConfig gebruiken in CreateTrainingJob en KMS-encryptie inschakelen voor S3-objecten. Vertrouw niet op openbare toegangscontroles; gebruik in plaats daarvan S3 bucket policies, VPC-eindpunten (com.amazonaws.region.s3) en IAM role scoping. Vermijd ten slotte fragiele CI/CD door evaluatiemetrieken en model-card metadata in het modelpakket op te nemen en onveranderlijke versionering (ModelPackageVersion) te gebruiken in plaats van artefacten te overschrijven.
Praktijkprobleem: Use-Case Scenario
AcmePay — fraudedetectie voor transactiestromen. De uitdaging is om een veilige, auditeerbare levenscyclus te bouwen die S3-transactielogs, klantprofielen en on-premise MySQL-tabellen aggregeert, een XGBoost-fraudeclassificator traint, een centrale model registry onderhoudt met handmatige goedkeuring vóór productie, data- en bias-drift on-demand detecteert, en de operationele overhead voor versionering en iteratieve runs minimaliseert.
Centraliseer data: gebruik AWS Glue om S3-transactielogs en de on-premise MySQL te crawlen via de AWS Glue JDBC-connector (met een beveiligde DataSync-overdracht of VPC-peering voor netwerktoegang). Catalogiseer datasets in de Glue Data Catalog en dwing toegang af via AWS Lake Formation. Sla gecureerde trainingssets op in een versleutelde S3-prefix (KMS CMK) en gebruik bucket policies plus VpcEndpoint om openbare toegang te voorkomen.
Bouw reproduceerbare pipelines: ontwikkel een SageMaker Pipeline met een ProcessingStep voor feature engineering (Data Wrangler of Glue ETL-export), een TrainingStep die de ingebouwde XGBoost-container met hyperparameters uitvoert, en een RegisterModel-stap die RegisterModel aanroept met model_package_group_name=“acmepay-fraud-group” en model_approval_status=“PendingManualApproval”. Schakel CacheConfig in voor de preprocessing- en training-stappen om outputs te hergebruiken wanneer de input/code ongewijzigd is, waardoor het herhaaldelijk provisionen van instances wordt verminderd.
CI/CD en goedkeuring: maak een SageMaker Project dat een AWS CodePipeline opzet. De pipeline voert unit tests uit in CodeBuild, triggert de SageMaker Pipeline en bevat na RegisterModel een CodePipeline ManualApproval-actie. De handmatige goedkeuringsactie roept, na goedkeuring, een Lambda aan die UpdateModelPackage aanroept om ModelApprovalStatus=“Approved” in te stellen en triggert vervolgens CreateEndpointConfig en CreateEndpoint om te deployen. Gebruik CloudFormation-resources die door SageMaker Projects zijn gegenereerd om de infra reproduceerbaar te houden.
Beveiligde training en deployment: dien training-jobs in met CreateTrainingJob VpcConfig (SubnetIds, SecurityGroupIds) en EnableNetworkIsolation=true; zorg ervoor dat de SageMaker execution role kms:Decrypt-rechten heeft op de KMS-sleutel en s3:GetObject alleen voor de prefix van de gecureerde dataset. Voor endpoints, maak een CreateEndpointConfig met DataCaptureConfig (EnableCapture=true, SamplingPercentage=100, DestinationS3Uri=s3://acmepay-prod/capture) zodat inference-data wordt bewaard voor monitoring.
On-demand drift- en bias-controles: gebruik SageMaker Clarify in een ProcessingJob op de vastgelegde inference- en ground truth-labels (indien beschikbaar) om on-demand ModelBias- en ModelExplainability-analyses uit te voeren; roep dit aan via de ClarifyProcessor.run() API vanuit een Lambda of Step Functions wanneer het data science-team om een beoordeling vraagt. Voor continue drift-waarschuwingen, maak een Model Monitor-baseline via DefaultModelMonitor.suggest_baseline en een MonitoringSchedule; gebruik CreateMonitoringSchedule om periodieke controles uit te voeren en configureer SNS-notificaties voor overtredingen.
AWS-redenering: Glue + Lake Formation centraliseren en beveiligen heterogene bronnen met minimale aangepaste ETL-code, SageMaker Pipelines + CacheConfig minimaliseert het infrastructuurverloop voor iteratieve runs, de Model Registry biedt onveranderlijke versionering en metadata (ModelPackageGroupName en ModelPackageVersion) en integreert native met goedkeuringsworkflows via ModelApprovalStatus, en SageMaker Clarify plus Model Monitor bieden zowel on-demand bias-beoordelingen als geplande drift-detectie. Het gebruik van SageMaker Projects en CodePipeline standaardiseert CI/CD en dwingt een auditeerbare, herhaalbare promotie af van “PendingManualApproval” naar “Approved” vóór de productie-deployment.
← Modelimplementatie en Inferentie · Alle domeinen · Modelmonitoring en Observeerbaarheid →
Oefen deze vragen → · Getimede oefening op 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.
Slaag voor je examen →