Proyecto: intent-classifier-multilingual · Fine-tuning distilBERT · 3 runs activos
| Run | LR | Batch | Epochs | Val Loss ↓ | Val Acc ↑ | Val F1 ↑ | Alertas | Estado |
|---|---|---|---|---|---|---|---|---|
|
run-001
|
2e-5 |
32 | 5/5 | 0.340 | 88.5% | 0.871 | 1 INFO | Completado |
|
run-002
|
5e-5 |
16 | 5/5 | 0.750 | 76.1% | 0.743 | 2 ERROR, 1 WARN | Overfitting |
|
run-003
|
1e-5 |
32 | 8/8 | 0.128 | 94.7% | 0.943 | 1 INFO | Mejor run |
val/loss 0.750 no convergió tras 5 epochs. LR 5e-5 demasiado alto para este dataset.
(train/loss − val/loss) = 0.61. El modelo memoriza el training set con batch 16.
val/loss aumentó de 0.68 a 0.70 entre epoch 3 y epoch 4. Señal temprana de overfitting.
val/loss = 0.128. Por debajo del umbral 0.15. run-003 con warmup+lr bajo converge limpio.
import trackio from transformers import AutoModelForSequenceClassification, TrainingArguments from trl import SFTTrainer # Inicializar tracking — sincroniza con HF Space trackio.init( project="intent-classifier-multilingual", name="run-003", space_id="cultivalabs/trackio", config={"lr": 1e-5, "batch_size": 32, "epochs": 8, "warmup": True} ) for epoch in range(8): train_loss, val_loss, val_acc = train_epoch() trackio.log({ "train/loss": train_loss, "val/loss": val_loss, "val/accuracy": val_acc, "epoch": epoch }) # Alerta de overfitting if (train_loss - val_loss) > 0.5: trackio.alert( title="Overfitting detectado", text=f"Gap train-val = {train_loss - val_loss:.3f}", level=trackio.AlertLevel.ERROR ) # Convergencia temprana (buena señal) if val_loss < 0.15: trackio.alert( title="Convergencia temprana", text=f"val/loss={val_loss:.3f} bajo umbral 0.15", level=trackio.AlertLevel.INFO ) trackio.finish() # Recuperar alertas via CLI para el agente IA: # $ trackio list alerts --project intent-classifier-multilingual --json