Arquitectura de godml
godml convierte un YAML declarativo en un pipeline de ML ejecutable, con compliance, tracking y provenance integrados.
Pipeline interactivo
Haz clic en cada servicio para explorar qué hace. El flujo se anima automáticamente.
Servicios internos
Cada servicio es modular, intercambiable y trazado. El pipeline falla rápido con mensajes claros.
⚙️ config_service
Parsea el YAML, sustituye variables de entorno (${VAR}) y valida el schema completo con Pydantic. Si hay errores, el pipeline se detiene antes de tocar ningún dato.
# El YAML que parsea config_service
name: customer-churn
provider: mlflow
dataset:
uri: data/customers.csv
target: churn
🔧 dataprep_service
Ejecuta la receta de transformaciones definida en dataset.dataprep.steps. Opera sobre pandas DataFrame. Cada transform es atómico, reversible y trazado con OpenLineage.
dataprep:
steps:
- op: drop_columns
params: { columns: [id, timestamp] }
- op: fillna
params: { columns: [monthly_charges], value: 0 }
- op: one_hot
params: { columns: [region, plan_type], drop_first: true }
- op: standard_scale
params: { columns: [monthly_charges, tenure] }
→ Lista completa de operaciones: DataPrep Service
🛡️ compliance_service
Detecta PII por nombre de columna y contenido. Aplica la política (mask_sensitive, drop_sensitive, hash_sensitive) antes de que los datos lleguen al entrenamiento. Nunca entrena con datos sensibles sin tratar.
Si el dataset contiene columnas como email, ssn, credit_card o phone, godml activa compliance automáticamente — no necesitas configurarlo.
🧠 model_service
Carga el modelo según model.type, aplica el AutoTuner y ejecuta el entrenamiento. Soporta XGBoost, Random Forest, Logistic Regression, Linear Regression y LSTM Forecasting (godml[deep]).
📊 monitoring_service
Calcula todas las métricas, compara contra los thresholds definidos y registra todo en MLflow. Si algún threshold no se cumple, el modelo no se registra. Siempre puedes ver por qué falló.
AutoTuner
El AutoTuner detecta si el problema es clasificación binaria, multiclase o regresión (según el número de valores distintos en el target) y completa los hiperparámetros que falten — sin pisar los que ya definiste:
| Modelo | Binaria | Multiclase | Regresión |
|---|---|---|---|
xgboost | objective: binary:logistic, eval_metric: auc | objective: multi:softprob, num_class, eval_metric: mlogloss | objective: reg:squarederror |
random_forest | criterion: entropy | criterion: gini | criterion: squared_error |
logistic_regression | solver: liblinear | multi_class: ovr, solver: lbfgs | — |
lstm_forecast | — | — | completa epochs/batch_size |
No ajusta hiperparámetros según tamaño de dataset, número de columnas ni desbalance de clases todavía.
Providers
Mismo pipeline YAML — diferente entorno de ejecución. Haz clic para ver la configuración:
Flujo de datos completo
Estructura de archivos generada
mi-proyecto/
├── godml.yml ← pipeline definition
├── data/
│ ├── raw.csv
│ └── clean_pci.csv ← si compliance activo
├── output/
│ ├── predictions.csv ← batch_output
│ └── model.pkl ← model_output
└── mlflow.db ← MLflow tracking (SQLite)
└── [experiment_id]/
└── [run_id]/
├── metrics/
├── params/
└── artifacts/
¿Listo para ejecutar tu primer pipeline? Ve a Quickstart →