Saltar al contenido principal

YAML Schema β€” godml.yml

Referencia completa de todos los campos del archivo de configuraciΓ³n de godml.

Estructura completa​

# ─── IdentificaciΓ³n ──────────────────────────────────
name: mi-pipeline # requerido β€” nombre del pipeline
version: 1.0.0 # requerido β€” versiΓ³n semΓ‘ntica
provider: mlflow # requerido β€” mlflow | sagemaker
description: "..." # opcional

# ─── Dataset ─────────────────────────────────────────
dataset:
uri: ./data/train.csv # requerido β€” ruta local o s3://
target: churned # requerido β€” columna objetivo
compliant_output: ./data/train_clean.csv # opcional
hash: auto # opcional β€” auto | sha256 | none
dataprep: # opcional β€” receta de limpieza
steps: [...]

# ─── Modelo ──────────────────────────────────────────
model:
type: xgboost # requerido β€” ver tipos soportados
source: core # opcional β€” core | local
hyperparameters:
max_depth: 6
eta: 0.3
n_estimators: 200
objective: binary:logistic
max_features: sqrt
random_state: 42

# ─── MΓ©tricas ────────────────────────────────────────
metrics:
- name: auc # nombre de la mΓ©trica
threshold: 0.80 # mΓ­nimo requerido para registrar el modelo
- name: f1
threshold: 0.70

# ─── Governance ──────────────────────────────────────
governance:
owner: "equipo-ml"
compliance: pci-dss # opcional β€” pci-dss | null
policy: mask_sensitive # mask_sensitive | drop_sensitive | hash_sensitive
tags:
- environment: production
- team: data-science

# ─── Deploy ──────────────────────────────────────────
deploy:
realtime: false # true = endpoint en tiempo real
batch_output: ./output/predictions.csv
model_output: ./output/model.pkl

# ─── AWS (solo provider: sagemaker) ──────────────────
aws:
role_arn: ${SAGEMAKER_ROLE_ARN}
region: us-east-1
s3_bucket: mi-bucket
s3_prefix: godml # default: "godml"
kms_key_id: ${KMS_KEY_ID} # opcional

# ─── Compute (solo provider: sagemaker) ──────────────
compute:
preprocessing: ml.m5.large
training: ml.m5.2xlarge
evaluation: ml.m5.large

# ─── Model Registry (solo provider: sagemaker) ───────
registry:
model_package_group: mi-grupo-de-modelos
approval: manual # manual | auto

Campos por secciΓ³n​

dataset​

CampoTipoRequeridoDescripciΓ³n
uristringβœ…Ruta al dataset. Local (./data/file.csv) o S3 (s3://bucket/path).
targetstringβœ…Nombre de la columna objetivo.
compliant_outputstring❌Dónde guardar el dataset después de aplicar compliance.
hashstring❌auto calcula SHA-256 del dataset para trazabilidad.
dataprepobject❌Receta de limpieza. Ver DataPrep.

model​

CampoTipoRequeridoDescripciΓ³n
typestringβœ…xgboost, random_forest, logistic_regression, lightgbm, lstm, linear_regression
sourcestring❌core (modelos incluidos) o local (modelo personalizado en el proyecto).
hyperparametersobjectβœ…Depende del tipo de modelo.

hyperparameters por tipo de modelo​

CampoXGBoostRandomForestLogisticRegLSTM
max_depthβœ…βœ…βŒβŒ
eta / learning_rateβœ…βŒβŒβœ…
n_estimatorsβœ…βœ…βŒβŒ
objectiveβœ…βŒβŒβŒ
max_featuresβŒβœ…βŒβŒ
random_stateβœ…βœ…βœ…βŒ

governance​

CampoValoresDescripciΓ³n
compliancepci-dssNorma a aplicar. Enmascarado de columnas sensibles antes del entrenamiento.
policymask_sensitive | drop_sensitive | hash_sensitiveQuΓ© hacer con datos sensibles.

aws (solo SageMaker)​

CampoRequeridoDescripciΓ³n
role_arnβœ…ARN del IAM role con permisos de SageMaker. Soporta ${VAR}.
regionβœ…RegiΓ³n AWS. Default: us-east-1.
s3_bucketβœ…Bucket S3 para intermedios y modelos.
s3_prefix❌Prefijo dentro del bucket. Default: godml.
kms_key_id❌Key de KMS para cifrado.

Variables de entorno en el YAML​

Usa ${VAR_NAME} o ${VAR_NAME:default} para inyectar valores desde el entorno:

aws:
role_arn: ${SAGEMAKER_ROLE_ARN}
kms_key_id: ${KMS_KEY_ID:} # vacΓ­o si no estΓ‘ definida

β†’ CLI Reference