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β
| 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 calcula SHA-256 del dataset para trazabilidad. |
dataprep | object | β | Receta de limpieza. Ver DataPrep. |
modelβ
| Campo | Tipo | Requerido | DescripciΓ³n |
|---|---|---|---|
type | string | β | xgboost, random_forest, logistic_regression, lightgbm, lstm, linear_regression |
source | string | β | core (modelos incluidos) o local (modelo personalizado en el proyecto). |
hyperparameters | object | β | Depende del tipo de modelo. |
hyperparameters por tipo de modeloβ
| Campo | XGBoost | RandomForest | LogisticReg | LSTM |
|---|---|---|---|---|
max_depth | β | β | β | β |
eta / learning_rate | β | β | β | β |
n_estimators | β | β | β | β |
objective | β | β | β | β |
max_features | β | β | β | β |
random_state | β | β | β | β |
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