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" = pendiente; usa `godml calc-hash` para calcular y fijar el valor real
dataprep: # opcional β receta de limpieza (requiere su propio inputs/outputs)
inputs: [...]
outputs: [...]
steps: [...]
# βββ Modelo ββββββββββββββββββββββββββββββββββββββββββ
model:
type: xgboost # requerido β ver tipos soportados
source: core # opcional β core | adhoc | 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 # flag informativo (gobernanza); no levanta un servidor por sΓ solo
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β
| Campo | Tipo | Requerido | DescripciΓ³n |
|---|---|---|---|
uri | string | β | Ruta al dataset. Local (./data/file.csv) o S3 (s3://bucket/path). |
target | string | β | Nombre de la columna objetivo. |
compliant_output | string | β | DΓ³nde guardar el dataset despuΓ©s de aplicar compliance. |
hash | string | β | "auto" (default) es un placeholder β no se calcula automΓ‘ticamente al correr el pipeline. Corre godml calc-hash para fijar el hash real en el YAML. |
dataprep | object | β | Receta de limpieza. Ver DataPrep. |
modelβ
| Campo | Tipo | Requerido | DescripciΓ³n |
|---|---|---|---|
type | string | β | xgboost, random_forest, logistic_regression, linear_regression, lstm_forecast (godml[deep]). lightgbm solo estΓ‘ soportado en el provider sagemaker, no en mlflow. |
source | string | β | core (modelos incluidos) o local (modelo personalizado en el proyecto). |
hyperparameters | object | β | Depende del tipo de modelo. |
hyperparameters por tipo de modeloβ
logistic_regression y linear_regression pasan hyperparameters directo a sklearn.linear_model.LogisticRegression/LinearRegression β cualquier campo que esas clases no acepten (p.ej. max_depth) rompe el entrenamiento. lstm_forecast usa un set de campos completamente distinto al de los modelos de Γ‘rboles.
| Campo | XGBoost | RandomForest | LogisticReg | LinearReg | lstm_forecast |
|---|---|---|---|---|---|
max_depth | β | β | β | β | β |
eta | β | β | β | β | β |
n_estimators | β | β | β | β | β |
objective | β | β | β | β | β |
max_features | β | β | β | β | β |
random_state | β | β | β | β (no lo acepta sklearn LinearRegression) | β |
look_back | β | β | β | β | β (tamaΓ±o de ventana de secuencia) |
units | β | β | β | β | β (neuronas LSTM) |
learning_rate | β | β | β | β | β |
epochs | β | β | β | β | β |
batch_size | β | β | β | β | β |
governanceβ
| Campo | Valores | DescripciΓ³n |
|---|---|---|
compliance | pci-dss | Norma a aplicar. Enmascarado de columnas sensibles antes del entrenamiento. |
policy | mask_sensitive | drop_sensitive | hash_sensitive | QuΓ© hacer con datos sensibles. |
aws (solo SageMaker)β
| Campo | Requerido | DescripciΓ³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