Saltar al contenido principal

Quickstart — 5 minutos

Desde cero hasta tu primer modelo entrenado con tracking en MLflow.

Requisitos
  • Python 3.11, 3.12 o 3.13
  • pip 23+
  • ~200 MB de disco

Paso 1 — Instalar godml

pip install godml

Verifica:

godml --version
# godml 1.2.3

Paso 2 — Crear el proyecto

godml init mi-primer-modelo
cd mi-primer-modelo

Esto genera:

mi-primer-modelo/
├── godml.yml ← aquí defines el pipeline
├── data/
└── output/

Paso 3 — Agregar un dataset

Descarga el dataset de ejemplo (churn de telecomunicaciones):

curl -o data/churn.csv \
https://raw.githubusercontent.com/DAGMALIA/godml/main/examples/data/churn_sample.csv

O usa el tuyo propio — cualquier CSV con una columna objetivo numérica.


Paso 4 — Definir el pipeline

Edita godml.yml:

godml.yml
name: mi-primer-modelo
version: 1.0.0
provider: mlflow

dataset:
uri: ./data/churn.csv
target: churned # columna que quieres predecir

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

metrics:
- name: auc
threshold: 0.60 # umbral mínimo para registrar el modelo

deploy:
batch_output: ./output/predictions.csv
model_output: ./output/model.pkl
¿Tu dataset tiene datos sensibles?

Agrega compliance PCI-DSS (governance.owner es obligatorio si incluyes este bloque):

governance:
owner: tu-equipo
compliance: pci-dss
policy: mask_sensitive

godml enmascara automáticamente emails, tarjetas y PII antes de entrenar.


Paso 5 — Ejecutar

godml run -f godml.yml

Verás algo así:

╭──────────────────────────────────────────────╮
│ pipeline mi-primer-modelo │
│ dataset ./data/churn.csv │
│ output ./output/predictions.csv │
╰──────────────────────────────────────────────╯

· 12:00:01 dataset → ./data/churn.csv target=churned
· 12:00:01 ✅ Split completado: train=800, test=200
· 12:00:02 ✅ Modelo xgboost cargado desde core

metric value threshold
auc 0.6255 0.60 ✓
accuracy 0.6400 —
precision 0.4561 —
recall 0.3881 —
f1 0.4194 —

╭─────────────────────────────────────────────╮
│ ✓ Pipeline completado │
│ AUC 0.6255 │
│ Accuracy 0.6400 │
│ Output → ./output/predictions.csv │
╰─────────────────────────────────────────────╯
El dataset de ejemplo es sintético

churn_sample.csv tiene señal débil a propósito (para que el quickstart corra en segundos): con estos hiperparámetros el AUC real ronda 0.62–0.66, no un valor alto. Con tus propios datos y algo de dataprep/tuning verás métricas mejores — ve al Paso 6 y a "¿Qué sigue?" para eso.


Paso 6 — Ver en MLflow UI

mlflow ui --backend-store-uri sqlite:///mlflow.db --host 0.0.0.0 --port 5001

Abre http://localhost:5001 — verás el experimento con todas las métricas, hiperparámetros y artefactos registrados automáticamente.


¿Qué sigue?

Agrega transformaciones declarativas (la receta embebida necesita su propio inputs/outputs, igual que una receta de dataprep standalone):

dataset:
uri: ./data/raw.csv
target: churned
dataprep:
inputs:
- name: raw
connector: csv
uri: ./data/raw.csv
outputs:
- name: clean
connector: csv
uri: ./data/raw.csv
steps:
- op: fillna
params:
columns: [monthly_charges]
value: 0
- op: one_hot
params:
columns: [contract_type, payment_method]
drop_first: true

DataPrep Service


¿Algo no funcionó?

Revisa la guía de Troubleshooting o abre un issue en GitHub.