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