Saltar al contenido principal

Provider: MLflow

El provider mlflow ejecuta el pipeline completo en tu máquina local con tracking automático en MLflow. Es el provider por defecto y el recomendado para desarrollo y experimentación.

Configuración

provider: mlflow

dataset:
uri: ./data/train.csv # ruta local (CSV o Parquet)
target: mi_columna_target

model:
type: xgboost
hyperparameters:
max_depth: 6
eta: 0.3

metrics:
- name: auc
threshold: 0.80

deploy:
batch_output: ./output/predictions.csv
godml run -f godml.yml

Flujo de ejecución

Carga CSV local

DataPrep (si dataset.dataprep está definido)

Compliance (si governance.compliance está definido)

Train/Test split (80/20; estratificado solo si el target es clasificación)

AutoTuner (completa objective/eval_metric/criterion/solver según el tipo de tarea)

Entrenamiento del modelo

Evaluación (auc/accuracy/precision/recall/f1 en clasificación, mse/mae/r2 en regresión)

Validación de thresholds

Registro en MLflow Model Registry

Guardado de predicciones (batch_output)

Tracking en MLflow UI

godml registra automáticamente en MLflow:

  • Hiperparámetros del modelo
  • Métricas (auc/accuracy/precision/recall/f1 para clasificación; mse/mae/r2 para regresión — p.ej. lstm_forecast)
  • El dataset como artefacto
  • Tags: versión, owner, dataset.target

Para ver la UI:

mlflow ui --backend-store-uri sqlite:///mlflow.db --host 0.0.0.0 --port 5001
# Abre: http://localhost:5001
MLflow 3.x

El backend file:./mlruns fue descontinuado en MLflow 3.x. godml usa SQLite por defecto (mlflow.db). Al abrir la UI debes especificar el mismo backend.

AutoTuner

El AutoTuner detecta automáticamente si el problema es clasificación binaria, multiclase o regresión (según el número de valores distintos en y_train) y completa los hiperparámetros de objective/eval_metric/criterion/solver que falten — nunca pisa un valor que ya hayas puesto explícito en model.hyperparameters (usa setdefault).

model:
type: xgboost
hyperparameters:
max_depth: 6
eta: 0.3
n_estimators: 200
# objective/eval_metric quedan libres para que el AutoTuner los complete

Reglas del AutoTuner por modelo:

  • xgboost: multiclase → objective: multi:softprob + num_class + eval_metric: mlogloss; binaria → objective: binary:logistic + eval_metric: auc; regresión → objective: reg:squarederror.
  • random_forest: multiclase → criterion: gini; binaria → criterion: entropy; regresión → criterion: squared_error.
  • logistic_regression: multiclase → multi_class: ovr + solver: lbfgs; binaria → solver: liblinear.
  • lstm_forecast: completa epochs/batch_size si faltan.

No ajusta hiperparámetros según el tamaño del dataset ni detecta desbalance de clases (scale_pos_weight) todavía.

Dataset con DataPrep embebido

La receta necesita su propio inputs/outputs (mismo schema que una receta standalone); godml sobreescribe dataset.uri con el resultado.

dataset:
uri: ./data/raw.csv
target: churn
dataprep:
inputs:
- name: raw
connector: csv
uri: ./data/raw.csv
outputs:
- name: clean
connector: csv
uri: ./data/raw.csv
steps:
- op: drop_columns
params:
columns: [id, created_at]
- op: fillna
params:
columns: [monthly_charges]
value: 0
- op: one_hot
params:
columns: [region, plan_type]
drop_first: true

→ Lista completa de operaciones: DataPrep Service

Guardar modelo local

deploy:
batch_output: ./output/predictions.csv
model_output: ./output/model.pkl # guarda joblib .pkl

Variables de entorno

VariableDescripción
MLFLOW_TRACKING_URIURI del servidor MLflow. Default: sqlite:///mlflow.db
MLFLOW_EXPERIMENT_NAMENombre del experimento. Default: godml-experiment

Requisitos

pip install godml # MLflow ya incluido

SageMaker Provider — ejecuta en AWS