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.1.1

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.75 # 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 en dos líneas:

governance:
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í:

✅ Config loaded: mi-primer-modelo v1.0.0 [mlflow]
✅ Dataset: ./data/churn.csv (8000 rows × 21 cols)
✅ Split: train=6400, test=1600
✅ Training xgboost...

📊 Métricas
──────────────────────────────
• auc : 0.8734 ✅ (threshold: 0.75)
• accuracy : 0.8125
• f1 : 0.7891
• precision : 0.8012
• recall : 0.7774

✅ Modelo registrado: mi-primer-modelo-xgboost v1
📦 Predicciones → ./output/predictions.csv
📦 Modelo → ./output/model.pkl

Paso 6 — Ver en MLflow UI

mlflow ui --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:

dataset:
uri: ./data/raw.csv
target: churned
dataprep:
steps:
- op: fill_missing
params:
strategy: median
- op: encode_categorical
params:
columns: [contract_type, payment_method]
method: onehot

DataPrep Service


¿Algo no funcionó?

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