Flan-T5-TFG-Angela
El modelo Flan-T5/Base ha sido entrenado utilizando un dataset especializado en comandos Docker, diseñado para mejorar la capacidad del modelo de generar comandos precisos a partir de descripciones en lenguaje natural.
En sprints anteriores, el modelo mostró resultados prometedores, pero carecía de la especificidad necesaria para capturar patrones más complejos. En esta iteración se mantuvo la metodología de evaluación sistemática de configuraciones, probando 6 combinaciones diferentes de hiperparámetros, con el objetivo de identificar la más óptima.
El conjunto de evaluación utilizado contiene 114 muestras, cubriendo comandos básicos y avanzados de Docker, incluyendo Docker Compose y Docker Swarm.
Metodología y configuraciones probadas
Se evaluaron seis configuraciones de entrenamiento. Los resultados mostraron diferencias más marcadas en la métrica estándar (exact match), mientras que la métrica personalizada (basada en similitud contextual) presentó menor variabilidad.
La Configuración 3 obtuvo los mejores resultados globales, destacando especialmente en la métrica estándar (valor: 67). A continuación se resumen los resultados de las seis configuraciones:
| Configuración | Standard Metric | Custom Metric |
|---|---|---|
| Config 1 | 54 | 61 |
| Config 2 | 49 | 52 |
| Config 3 | 67 | 62 |
| Config 4 | 60 | 62 |
| Config 5 | 54 | 61 |
| Config 6 | 54 | 61 |
La Configuración 3, con un número de épocas superior, logró la convergencia más estable y los mejores resultados finales.
Argumentos de entrenamiento
| Argumento | Valor |
|---|---|
output_dir |
output_dir |
lr_scheduler_type |
"linear" |
num_train_epochs |
15 |
per_device_train_batch_size |
8 |
per_device_eval_batch_size |
8 |
gradient_accumulation_steps |
2 |
learning_rate |
5e-5 |
weight_decay |
0.01 |
warmup_steps |
50 |
predict_with_generate |
True |
logging_dir |
f"{output_dir}/logs" |
logging_steps |
10 |
eval_steps |
10 |
save_total_limit |
2 |
dataloader_num_workers |
2 |
evaluation_strategy |
"steps" |
save_strategy |
"steps" |
load_best_model_at_end |
True |
fp16 |
True |
seed |
42 |
Dataset
Este dataset fue diseñado para resolver limitaciones detectadas en intentos previos, como el desbalanceo y la falta de diversidad, aplicando una metodología ágil que permitió mejorar iterativamente la calidad de los datos y la cobertura de comandos.
El conjunto de datos abarca desde comandos básicos hasta funcionalidades avanzadas de Docker Compose y Docker Swarm, con el fin de proporcionar al modelo un conocimiento amplio y consistente sobre el ecosistema Docker.
Cada muestra está compuesta por dos campos en formato JSON:
{"prompt": "Descripción en lenguaje natural del comando.", "command": "Comando Docker correspondiente."}
Splits disponibles:
train.json → 1.303 muestras
val.json → 283 muestras
eval.json → 114 muestras
Puedes cargar el dataset directamente desde Hugging Face:
from datasets import load_dataset
ds_train = load_dataset("AngelaGijon/TFG-DockerCommands-Dataset", split="train")
print(ds_train[0])
Disponible en el repositorio: "AngelaGijon/TFG-DockerCommands-Dataset"
Análisis de las curvas de pérdida
El entrenamiento mostró un comportamiento típico de convergencia controlada, con descensos rápidos en las primeras iteraciones y estabilización posterior.
Observaciones clave:
Cross-entropy: Las curvas de training y validation descienden de valores altos (~25) a niveles próximos a cero, estabilizándose en torno a los 10 pasos.
Estabilidad: Ambas curvas son prácticamente idénticas, indicando ausencia de sobreajuste o subajuste.
Estancamiento temprano: La reducción de la pérdida ocurre muy rápido, lo que sugiere que el modelo podría beneficiarse de un learning rate decay más suave o mayor regularización.
Figura 1. Curvas de pérdida (entrenamiento y validación) – Flan-T5 Base, Dataset especializado.
Resultados de evaluación
| Métrica | Antes del entrenamiento | Después del entrenamiento |
|---|---|---|
| Corpus BLEU Score | 0.0015 | 0.6005 |
| Average Sentence BLEU | 0.0089 | 0.5663 |
| Score Metric Equals | 0.0 | 0.5877 |
| Equals Counter | 0 | 67 |
| Score Custom Metric | 0.3926 | 0.458 |
Análisis:
El Corpus BLEU Score aumentó de 0.0015 a 0.6005, reflejando una mejora sustancial en la generación de comandos estructuralmente correctos.
La métrica Score Metric Equals pasó de 0.0 a 0.5877, lo que equivale a 67 respuestas exactas generadas correctamente tras el entrenamiento.
La métrica personalizada también mostró una mejora (de 0.3926 a 0.458), indicando mayor coherencia contextual en las respuestas generadas.
Conclusión
El modelo Flan-T5/Base demostró una mejora sustancial tras el entrenamiento con el dataset especializado en comandos Docker.
Alcanzó un 58.77 % de coincidencias exactas, frente al 7.51 % obtenido en el sprint anterior.
Mostró estabilidad en la curva de pérdida y ausencia de sobreajuste.
Mejoró notablemente su comprensión estructural y semántica de los comandos.
En resumen, el modelo aprende de manera efectiva los patrones de generación de comandos Docker, consolidándose como una base sólida para futuras iteraciones o ajustes más finos (fine-tuning adicional o optimización por capas).
Posibles usos
Asistentes de terminal o CLI inteligentes capaces de interpretar lenguaje natural.
Entrenamiento de modelos especializados en DevOps, Docker y sistemas IoT.
Generación de documentación técnica automatizada o ejemplos de uso de comandos Docker.
Framework versions
- Transformers 4.51.0
- Pytorch 2.2.1+cu121
- Datasets 3.2.0
- Tokenizers 0.21.4
- Downloads last month
- -
Model tree for AngelaGijon/flan-t5-DockerCommands-model
Base model
google-t5/t5-large