> ## Documentation Index
> Fetch the complete documentation index at: https://docs.monostate.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Métricas de Evaluación

> Cómo medir si tu modelo es bueno

# Métricas de Evaluación

No puedes mejorar lo que no mides. Aquí está cómo decir si tu modelo está realmente funcionando.

## Métricas de Clasificación

### Accuracy

La métrica más simple - ¿qué porcentaje acertaste?

```
Accuracy = Predicciones Correctas / Total de Predicciones
```

Ejemplo: 90/100 correctas = 90% de accuracy

**Problema**: Engañoso con datos desbalanceados. Si el 95% de los emails no son spam, un modelo que siempre dice "no spam" obtiene 95% de accuracy.

### Precision & Recall

**Precision**: De las que predijiste como positivas, ¿cuántas eran realmente positivas?

**Recall**: De todas las positivas reales, ¿cuántas encontraste?

Ejemplo para detección de spam:

* Precision: De los emails marcados como spam, ¿cuántos eran realmente spam?
* Recall: De todos los emails spam, ¿cuántos atrapaste?

### F1 Score

Combina precision y recall en un número.

```
F1 = 2 × (Precision × Recall) / (Precision + Recall)
```

Usa cuando te importan igualmente los falsos positivos y falsos negativos.

## Métricas de Generación

### Perplexity

Qué tan sorprendido está el modelo por los datos de prueba. Menor es mejor.

* Modelo bueno: Perplexity = 10-50
* Modelo malo: Perplexity = 100+

### BLEU Score

Compara texto generado con texto de referencia. Usado para traducción, resumen.

* BLEU = 0: Sin superposición
* BLEU = 1: Coincidencia perfecta
* BLEU > 0.3: Generalmente decente

### Evaluación Humana

A veces la mejor métrica es preguntar a humanos:

* ¿Esta respuesta es útil?
* ¿Este resumen captura los puntos principales?
* ¿Esta traducción es natural?

## Curvas de Loss

### Training Loss vs Validation Loss

Observa ambos durante el entrenamiento:

**Patrón bueno**:

* Ambos disminuyen
* Permanecen cerca
* Se estabilizan eventualmente

**Overfitting**:

* Training loss sigue cayendo
* Validation loss aumenta
* Brecha se amplía

**Underfitting**:

* Ambos permanecen altos
* Poca mejora
* Necesita más capacidad o datos

## Métricas Específicas por Tarea

### Image Classification

* Top-1 Accuracy: La clase correcta es la predicción principal
* Top-5 Accuracy: La clase correcta en las top 5 predicciones
* Confusion Matrix: Ve qué clases se confunden

### Object Detection

* mAP (mean Average Precision): Calidad general de detección
* IoU (Intersection over Union): Qué tan bien se superponen las cajas

### NER/Token Classification

* F1 a nivel de entidad: Entidades completas correctas
* Accuracy a nivel de token: Tokens individuales correctos

## Referencia Rápida

| Tarea                     | Métrica Principal | Buena Puntuación |
| ------------------------- | ----------------- | ---------------- |
| Clasificación Binaria     | F1 Score          | > 0.8            |
| Clasificación Multi-clase | Accuracy          | > 0.9            |
| Generación                | Perplexity        | \< 50            |
| Traducción                | BLEU              | > 0.3            |
| Resumen                   | ROUGE             | > 0.4            |
| Q\&A                      | Exact Match       | > 0.7            |

## Evaluación Mejorada en AITraining

AITraining soporta evaluación mejorada con múltiples métricas integradas y personalizadas.

### Habilitar Evaluación Mejorada

```bash theme={null}
aitraining llm --train \
  --model google/gemma-3-270m \
  --data-path ./data.jsonl \
  --project-name my-model \
  --use-enhanced-eval \
  --eval-metrics "perplexity,bleu"
```

### Métricas Disponibles

| Métrica      | Descripción                                |
| ------------ | ------------------------------------------ |
| `perplexity` | Incertidumbre del modelo (menor es mejor)  |
| `bleu`       | Superposición N-gram con referencia        |
| `rouge`      | Evaluación orientada a recall para resumen |
| `accuracy`   | Accuracy de clasificación                  |
| `f1`         | F1 score para clasificación                |

### API Python

```python theme={null}
from autotrain.trainers.clm.params import LLMTrainingParams

params = LLMTrainingParams(
    model="google/gemma-3-270m",
    data_path="./data.jsonl",
    project_name="my-model",

    use_enhanced_eval=True,
    eval_metrics=["perplexity", "bleu"],
)
```

### Métricas Personalizadas

Registra métricas personalizadas para evaluación especializada:

```python theme={null}
from autotrain.metrics import register_metric

@register_metric("my_custom_metric")
def compute_custom_metric(predictions, references):
    # Tu lógica de puntuación personalizada
    score = ...
    return {"my_custom_metric": score}

# Luego úsalo en el entrenamiento
params = LLMTrainingParams(
    ...
    use_enhanced_eval=True,
    eval_metrics=["perplexity", "my_custom_metric"],
)
```

## Consejos Prácticos

1. **Siempre usa conjunto de validación** - Nunca evalúes en datos de entrenamiento
2. **Considera la tarea** - Accuracy no siempre es mejor
3. **Observa tendencias** - Mejorar es más importante que números absolutos
4. **Múltiples métricas** - Ninguna métrica única cuenta toda la historia

## Señales de Alerta

* Accuracy de entrenamiento 100%, validación 60% → Overfitting
* Todas las métricas atascadas → Learning rate podría estar mal
* Métricas saltando alrededor → Batch size demasiado pequeño
* Puntuaciones perfectas inmediatamente → Fuga de datos o bug

## Próximos Pasos

<CardGroup cols={2}>
  <Card title="Fine-tuning vs Entrenamiento Completo" href="/foundations/fine-tuning-vs-full-training">
    Elige tu enfoque
  </Card>

  <Card title="Hyperparámetros" href="/foundations/hyperparameters">
    Optimiza tus configuraciones
  </Card>
</CardGroup>
