Testing de sistemas de IA: estrategias que funcionan
Cómo testear sistemas de IA de forma práctica: evaluación de calidad, pruebas de regresión, datasets, métricas.
Testing software tradicional es binario: funciona o no funciona. Testing sistemas de IA es diferente. El modelo "funciona" pero comete errores. Los errores son costosos (financiero, reputacional, legal). ¿Cómo testeas algo probabilístico?
En este artículo, estrategias prácticas para testing sistemas de IA: qué medir, cómo medir, cuándo confiar en el modelo y cuándo no.
Categorías de testing en IA
Unit testing
Testing partes individuales del sistema (preprocesamiento, post-procesamiento, feature engineering).
Esto SÍ es binario. O tu función normaliza datos correctamente o no. Test como software normal.
Integration testing
Testing el pipeline completo: datos → modelo → output. ¿El sistema end-to-end funciona?
Model evaluation
Testing el modelo mismo: ¿qué tan preciso es? ¿En qué tipo de casos falla?
Regression testing
Cuando cambias el modelo o datos, ¿degrada la performance? ¿Rompiste algo que funcionaba?
Production monitoring
En producción, ¿el modelo sigue comportándose como en desarrollo? ¿Cambió la distribución de datos?
Métricas de evaluación de modelos
Para clasificación
- Accuracy: ¿qué % de predicciones son correctas? Métrica simple pero engañosa si clases están desbalanceadas.
- Precision: de los positivos que predijo, ¿cuántos son reales? Importante cuando falsos positivos son costosos.
- Recall: de los positivos reales, ¿cuántos detecta? Importante cuando falsos negativos son costosos.
- F1: balance entre precision y recall. Métrica útil para comparar modelos.
- Confusion matrix: visualiza todos los tipos de errores (TP, TN, FP, FN).
Para regresión
- MAE (Mean Absolute Error): error promedio en unidades originales.
- RMSE (Root Mean Square Error): penaliza errores grandes. Más sensible a outliers que MAE.
- R²: porcentaje de varianza explicada por el modelo. Entre 0-1, higher is better.
Para IA generativa
- BLEU, ROUGE: comparación textual contra referencia. Útil pero imperfecto.
- Human evaluation: pedir a humanos que evalúen outputs. Costoso pero más confiable.
- Task-specific metrics: si es resumen, mide si contiene la información clave. Si es código, mide si ejecuta.
Estrategia práctica de testing
Paso 1: Prepara datasets de test
- Train set: datos para entrenar el modelo (60-70%).
- Validation set: datos para tuning hiperparámetros (15-20%).
- Test set: datos NO vistos durante entrenamiento, para evaluar performance real (10-15%).
- ¡Nunca uses test set durante entrenamiento! Es data leakage.
Paso 2: Define métricas ANTES de entrenar
Decide qué mides y qué threshold es aceptable. Si model accuracy < 85%, no entra a producción.
Paso 3: Baseline simple
Entrena un modelo simple (regresión linear, árbol de decisión) primero. Si tu fancy model no supera el baseline, hay problema.
Paso 4: Error analysis
De los casos donde el modelo falla, ¿cuál es el patrón? ¿Falla con textos largos? ¿Con un idioma específico? Esto te dice dónde mejorar.
Paso 5: Adversarial testing
Crea inputs adversariales: textos garbled, números extremos, valores missing. ¿El modelo maneja gracefully o falla?
Paso 6: Fairness evaluation
¿El modelo trata equitativamente a grupos diferentes? ¿Es más preciso para hombres que mujeres? Para ricos que pobres? Mide bias.
Testing en producción
A/B testing
Expón el modelo nuevo a 10% de usuarios. Compara performance vs modelo viejo. Si es mejor, scale a 100%.
Shadow deployment
Corre el modelo nuevo en paralelo con el viejo, pero no uses sus predicciones. Monitorea cómo se comportaría si lo usaras.
Monitoring y alertas
- Data drift: ¿los inputs cambiaron significativamente?
- Model drift: ¿la accuracy está degradando?
- Prediction drift: ¿las predicciones cambiaron (sin cambio en inputs)?
- Alertas: si accuracy cae 5%, alerta automática para investigar.