Il ciclo MLOps su AWS
MLOps porta i principi DevOps nel ciclo di vita dei modelli: build, test, deploy e monitoring devono essere ripetibili, versionati e automatizzati. Su AWS il fulcro è Amazon SageMaker, che copre l’intera pipeline ML e si integra con servizi di orchestrazione (Step Functions, EventBridge) e di infrastructure as code (CloudFormation). L’obiettivo d’esame non è ricordare i click, ma sapere quale servizio scegliere per ogni esigenza e come si incastrano fra loro in un flusso CI/CD.
SageMaker Pipelines
Amazon SageMaker Pipelines è il servizio ML-native per definire un workflow come DAG di step, orchestrato dentro SageMaker. Gli step chiave da riconoscere:
- Processing step: preparazione dati, feature engineering e valutazione del modello (es. calcolo di RMSE per una regressione o F1/recall per una classificazione sbilanciata).
- Training step: addestramento, con output degli artifacts su S3.
- Condition step: ramificazione condizionale su una metrica di valutazione (es. registra solo se accuracy o F1 superano una soglia).
- Register model step: registra la versione nel Model Registry.
- Altri step reali: batch transform, tuning e create model.
Vantaggi: parametri di pipeline riutilizzabili, step caching per non rieseguire step invariati, e lineage tracking automatico degli artifacts. È la scelta di default quando il flusso resta interno a SageMaker.
Model Registry e l’approval gate
SageMaker Model Registry organizza i modelli in un model package group; ogni addestramento produce una nuova versione (model package). Ogni versione ha un approval status: PendingManualApproval, Approved o Rejected. Questo status è il vero gate CI/CD: il deploy in produzione parte solo sulle versioni portate ad Approved, dopo revisione umana o controlli automatici. Il Registry conserva anche metriche, container image e lineage, così da poter confrontare versioni e fare rollback a una precedente già approvata.
Orchestrazione: EventBridge, Step Functions, CloudFormation
Amazon EventBridge rende il flusso event-driven: cattura l’evento di cambio stato del model package e, con una rule, innesca l’automazione (tipicamente una Lambda o l’avvio di una pipeline di deploy) quando lo stato passa ad Approved. È il collante che trasforma l’approvazione manuale nel trigger del deploy, senza polling.
AWS Step Functions orchestra più servizi in una state machine: SageMaker, Lambda, Glue, EMR, ECS. Va preferito a SageMaker Pipelines quando il workflow esce dai confini di SageMaker e deve coordinare servizi eterogenei, con branching, retry e gestione errori a livello di stato.
AWS CloudFormation definisce le risorse come codice: Model, EndpointConfig ed Endpoint diventano template versionati, per deploy riproducibili e identici tra dev, staging e prod. Per l’MLOps end-to-end, SageMaker Projects fornisce template pronti che cablano CodePipeline, CodeBuild e un repository per build e deploy automatizzati.
Trappole tipiche d’esame
- Deploy solo dopo revisione umana → soluzione: usa il Model Registry con approval status
PendingManualApprovalcome gate; il deploy scatta solo su versioniApproved, non alla fine del training. - Automatizzare il deploy alla promozione del modello → soluzione: una rule di Amazon EventBridge sull’evento di cambio stato del model package che invoca Lambda o la pipeline di deploy; non serve un cron o un polling.
- Workflow tutto interno a SageMaker vs orchestrazione multi-servizio → soluzione: SageMaker Pipelines se resti in SageMaker (con lineage e Model Registry integrati); AWS Step Functions se devi coordinare anche Glue, EMR, Lambda o ECS.
- Registrare il modello solo se supera una soglia di qualità → soluzione: inserisci un Condition step nella pipeline che valuta la metrica corretta (RMSE per regressione, F1/recall per classi sbilanciate) prima del register model step, non un controllo manuale a valle.
- Endpoint riproducibili e identici tra ambienti → soluzione: definisci Model, EndpointConfig ed Endpoint in AWS CloudFormation (infrastructure as code); evita la creazione manuale, non ripetibile e non versionata.
- Pipeline CI/CD completa con build e repository → soluzione: SageMaker Projects genera i template con CodePipeline/CodeBuild; le SageMaker Pipelines da sole orchestrano gli step ML ma non sono il sistema CI/CD del codice.