Saltar al contenido principal

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.

📄
godml.yml
Declaración del pipeline
Define modelo, datos, proveedor y métricas en un solo archivo YAML declarativo.

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.

Compliance obligatorio en producción

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:

ModeloBinariaMulticlaseRegresión
xgboostobjective: binary:logistic, eval_metric: aucobjective: multi:softprob, num_class, eval_metric: mloglossobjective: reg:squarederror
random_forestcriterion: entropycriterion: ginicriterion: squared_error
logistic_regressionsolver: liblinearmulti_class: ovr, solver: lbfgs
lstm_forecastcompleta 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:

🧪
MLflow
Local · Rápido · Sin infra
Recomendado para dev
Setup30 segundos
CostoGratis
InfraestructuraNinguna
EscalabilidadLocal / equipo
CompliancePCI-DSS básico
MLflow UIIncluido
Provenance SLSANo
GPU/Spot trainingNo
Ver configuración →
☁️
SageMaker
AWS · Escala · SLSA L3
Producción
SetupConfig IAM + S3
CostoInstancias AWS
InfraestructuraAWS gestionada
EscalabilidadIlimitada
ComplianceHIPAA · SOC2 · GDPR
MLflow UIVía SageMaker Exp.
Provenance SLSAL3 via release.yml
GPU/Spot trainingSí (ml.p3, ml.g4)
Ver 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/
Siguiente paso

¿Listo para ejecutar tu primer pipeline? Ve a Quickstart →