Ejemplo: SageMaker Pipeline
Pipeline completo en AWS SageMaker con model registry y aprobación manual.
Prerrequisitos
pip install godml[aws]
export AWS_DEFAULT_REGION=us-east-1
export SAGEMAKER_ROLE_ARN=arn:aws:iam::123456789012:role/SageMakerRole
# Subir dataset a S3
aws s3 cp data/churn.csv s3://mi-bucket/data/churn.csv
godml.yml
name: churn-sagemaker
version: 1.0.0
provider: sagemaker
dataset:
uri: s3://mi-bucket/data/churn.csv
target: churned
governance:
compliance: pci-dss
policy: mask_sensitive
aws:
role_arn: ${SAGEMAKER_ROLE_ARN}
region: us-east-1
s3_bucket: mi-bucket
s3_prefix: godml
compute:
preprocessing: ml.m5.large
training: ml.m5.2xlarge
evaluation: ml.m5.large
model:
type: xgboost
hyperparameters:
max_depth: 6
eta: 0.1
n_estimators: 300
metrics:
- name: auc
threshold: 0.82
registry:
model_package_group: godml-churn-models
approval: manual
Ejecutar
godml run -f godml.yml
Building SageMaker Pipeline: churn-sagemaker
Upserting pipeline definition to SageMaker...
Starting pipeline execution...
Pipeline running. ARN: arn:aws:sagemaker:us-east-1:123456789012:pipeline/churn-sagemaker/execution/abc123
Waiting for pipeline to finish...
Preprocessing: Succeeded (3m 21s)
Training: Succeeded (8m 47s)
Evaluation: Succeeded (2m 12s)
CheckMetricAndRegister: Succeeded
Pipeline completed. AUC: 0.8431 ✅
Model registered: godml-churn-models v1 (PendingManualApproval)
Aprobar el modelo en AWS Console
Una vez que el pipeline termina:
- Ve a SageMaker → Model Registry → godml-churn-models
- Busca la versión con status
PendingManualApproval - Click Update Status → Approved
- El modelo está listo para desplegarse
O con el SDK:
import boto3
sm = boto3.client("sagemaker", region_name="us-east-1")
sm.update_model_package(
ModelPackageArn="arn:aws:sagemaker:...",
ModelApprovalStatus="Approved",
)
Costos estimados
Para un dataset de ~100K filas con XGBoost:
| Step | Instancia | Duración | Costo |
|---|---|---|---|
| Preprocessing | ml.m5.large | ~3 min | ~$0.006 |
| Training | ml.m5.2xlarge | ~8 min | ~$0.06 |
| Evaluation | ml.m5.large | ~2 min | ~$0.004 |
| Total | ~13 min | ~$0.07 |
Los steps se levantan y apagan solos — solo pagas el tiempo de ejecución.