Troubleshooting
Errores de instalación
ModuleNotFoundError: No module named 'godml'
# Verifica que instalaste en el entorno correcto
which python
pip show godml
# Si usas venv, actívalo primero
source .venv/bin/activate
pip install godml
ERROR: Could not build wheels for sagemaker
Necesitas instalar con el extra [aws]:
pip install godml[aws]
Errores al ejecutar godml run
ValidationError: field required — dataset.target
El YAML no tiene la columna objetivo definida:
dataset:
uri: ./data/train.csv
target: churned # ← esto es obligatorio
FileNotFoundError: ./data/train.csv
La ruta del dataset es relativa al directorio donde ejecutas el comando, no al YAML:
# Ejecuta desde la carpeta del proyecto
cd mi-proyecto
godml run -f godml.yml
KeyError: 'churned' not in DataFrame
La columna target no existe en tu CSV. Verifica los nombres:
python -c "import pandas as pd; print(pd.read_csv('data/train.csv').columns.tolist())"
AUC threshold not met: 0.62 < 0.80
El modelo no alcanzó el umbral mínimo. Opciones:
# 1. Bajar el threshold
metrics:
- name: auc
threshold: 0.65 # más permisivo
# 2. Ajustar hiperparámetros
model:
type: xgboost
hyperparameters:
max_depth: 8 # más profundo
n_estimators: 300 # más árboles
eta: 0.1 # learning rate más bajo
Un AUC bajo casi siempre indica un problema con los datos, no con el modelo. Revisa que target tenga la distribución esperada y que no haya data leakage.
Pipeline failed: dataset has only 1 unique value in target
El dataset está mal filtrado — la columna objetivo tiene un solo valor. Verifica que tu CSV tenga ejemplos de ambas clases.
Errores de compliance
ComplianceError: No columns masked but compliance is pci-dss
godml no encontró columnas PII para enmascarar. Esto puede ser intencional (tu dataset ya está limpio) o un problema de nombres de columnas.
Para verificar qué columnas detecta como sensibles:
from godml.compliance_service.pii_detector import PIIDetector
import pandas as pd
df = pd.read_csv("./data/train.csv")
detector = PIIDetector()
print(detector.scan_dataframe(df))
Errores con MLflow
mlflow.exceptions.MlflowException: Run ... is already active
Hay un run de MLflow colgado de una ejecución anterior:
import mlflow
mlflow.end_run()
O elimina la carpeta mlruns/:
rm -rf mlruns/
Address already in use: port 5001
# Usa otro puerto
mlflow ui --port 5002
Errores con SageMaker
ClientError: An error occurred (ValidationException): No resource
El role_arn no existe o está mal formado:
# Verifica el ARN
aws iam get-role --role-name SageMakerRole
ClientError: AccessDenied
El IAM role no tiene los permisos necesarios. El role necesita al menos:
AmazonSageMakerFullAccessAmazonS3FullAccess
botocore.exceptions.NoCredentialsError
No hay credenciales AWS configuradas:
export AWS_ACCESS_KEY_ID=AKIA...
export AWS_SECRET_ACCESS_KEY=...
export AWS_DEFAULT_REGION=us-east-1
# O configura con AWS CLI
aws configure
dataset.uri must start with s3:// for sagemaker provider
Con el provider SageMaker el dataset debe estar en S3:
dataset:
uri: s3://mi-bucket/data/churn.csv # ✅ correcto
# uri: ./data/churn.csv # ❌ no funciona con sagemaker
# Sube tu dataset a S3
aws s3 cp data/churn.csv s3://mi-bucket/data/churn.csv
Modo debug
Para ver logs detallados de cada paso:
GODML_LOG_LEVEL=DEBUG godml run -f godml.yml
¿Sigues con problemas?
- Abre un issue en GitHub con el mensaje de error completo
- Incluye tu versión:
godml --version - Incluye tu godml.yml (sin credenciales)