QA BETO SQuAD-ES PDQA (fine-tuned, 12 épocas — supera al baseline oficial)
Descripción
Modelo desarrollado para el Dominican News Question Answering Challenge de ICC-344-T. El sistema recibe una pregunta y un contexto noticioso, y extrae una respuesta contenida explícitamente en el contexto.
Integrantes
- Fanny Raciely Gomez Williams 1015 4383
- Yuji Yamaki Kokubun 1015 3238
Recursos oficiales
- Dataset: Lisibonny/pdqa
- Baseline: Lisibonny/modelo_qa_beto_squad_es_pdqa
- Aplicación: Lisibonny/Repartidor_Dominicano
Modelo base
- Repositorio: Lisibonny/modelo_qa_beto_squad_es_pdqa
- Justificación: se probaron dos variantes de fine-tuning adicional sobre las 45 filas de train, cambiando únicamente el número de épocas (8 vs. 12). La Variante 2 (12 épocas) superó al baseline oficial tanto en Exact Match (66.7 vs. 60.0) como en F1 (76.6 vs. 75.8), por lo que se seleccionó como modelo final (ver "Experimentos" y "Ablación" abajo).
- Número aproximado de parámetros: ~110M (arquitectura BERT-base / BETO)
Datos
| División | Filas | Uso |
|---|---|---|
| train | 45 | Entrenamiento |
| validation | 15 | Comparación y selección |
| test | 20 | Predicciones finales |
No se publicaron ni utilizaron respuestas privadas de test.
Entrenamiento
El modelo final es el resultado de un fine-tuning adicional del baseline sobre las 45 filas de train (Variante 2, 12 épocas). La tabla describe los hiperparámetros usados en ambas variantes comparadas.
| Parámetro | Valor |
|---|---|
| Seed | 42 |
| Learning rate | 3e-5 |
| Batch size | 8 |
| Épocas | 8 (Variante 1) / 12 (Variante 2, modelo final) |
| Max length | 384 |
| Doc stride | 128 |
| Weight decay | 0.01 |
| Hardware | CPU (Google Colab) |
| Tiempo | Variante 2 (12 épocas): ~47 min (confirmado). Variante 1 (8 épocas): no se registró el tiempo exacto en esta corrida (proporcionalmente, ~31 min). |
Experimentos
| Experimento | Cambio | EM validation | F1 validation |
|---|---|---|---|
| Baseline oficial | Sin cambios | 60.0 | 75.8 |
| Variante 1 | Fine-tuning sobre train (45 ejemplos), 8 épocas, lr=3e-5 | 60.0 | 71.0 |
| Variante 2 | Igual que Variante 1 pero 12 épocas (ablación: única variable cambiada) | 66.7 | 76.6 |
| Modelo final | = Variante 2 (supera al baseline en EM y F1) | 66.7 | 76.6 |
Ablación o comparación controlada
Se comparó Variante 1 (8 épocas) contra Variante 2 (12 épocas), manteniendo fijos el modelo base, el learning rate (3e-5) y la semilla (42) — la única variable que cambió fue el número de épocas de entrenamiento.
Resultado: más épocas mejoró el desempeño de forma clara (EM 60.0→66.7, F1 71.0→76.6), y esta vez la Variante 2 superó al baseline oficial en ambas métricas. Esto indica que, en el rango probado, el modelo seguía beneficiándose de entrenamiento adicional sobre los 45 ejemplos de train, sin mostrar señales de sobreajuste todavía.
Resultados
- Exact Match en validation: 66.7
- F1 en validation: 76.6
- Modelo: Variante 2 (fine-tuning, 12 épocas) — ver "Experimentos"
- Script de evaluación:
05_evaluate_qa.py
Ejemplo de uso
from transformers import pipeline
qa = pipeline(
"question-answering",
model="YujiYamaki/qa_final_es",
tokenizer="YujiYamaki/qa_final_es"
)
qa(
question="¿Quién hizo el anuncio?",
context="La ministra informó que el programa comenzará en agosto."
)
Análisis de errores
De 15 ejemplos de validation, el modelo final (Variante 2) falló (EM=0) en 5 (el baseline fallaba en 6):
- Límite de span (respuesta truncada) — 2 de 5 (40%): el modelo ubica la región correcta pero corta la respuesta antes de tiempo. Ej.: referencia "concienciar sobre el acoso escolar y social que sufren las personas con síndrome de Down" → predicción "concienciar sobre el acoso escolar" (F1=0.47); referencia "gira en torno al embarazo en adolescentes" → predicción "en torno al embarazo en adolescentes" (F1=0.92, solo falta la palabra "gira").
- Extracción de contenido totalmente distinto — 2 de 5 (40%): el modelo elige un span sin relación semántica con la respuesta esperada. Ej.: referencia "seguirá siendo alta" → predicción "en torno al 7% a nivel mundial" (F1=0.0); referencia "por las turbulencias en el sector bancario..." → predicción "desde diciembre" (F1=0.0).
- Enumeración mal manejada — 1 de 5 (20%): cuando la respuesta correcta es una lista de varias entidades, el modelo responde con un resumen en vez de la lista. Ej.: referencia con 3 exministros nombrados → predicción "a tres exministros" (F1=0.10).
Comparación con el baseline: la Variante 2 corrigió exactamente 1 de los 6 errores del baseline (el de "a 11 bateadores", antes le faltaba la palabra "a"). Los 2 errores de "contenido totalmente distinto" son prácticamente idénticos a los del baseline — sugiere que esas preguntas específicas son genuinamente difíciles para este modelo base, independientemente del fine-tuning aplicado.
Limitaciones
- La respuesta debe estar presente en el contexto.
- El modelo puede confundir entidades, fechas o cantidades similares.
- El modelo no verifica la veracidad de la noticia.
- No debe utilizarse como única fuente para decisiones de alto impacto.
- El dataset de entrenamiento es muy pequeño (45 ejemplos) — la mejora observada es real dentro del rango probado (hasta 12 épocas), pero no se exploró más allá, así que no hay garantía de que más entrenamiento siga ayudando o de que en algún punto empiece a sobreajustar.
- El set de validation tiene solo 15 preguntas — el Exact Match solo se puede mover en saltos de ~6.7%, así que los resultados deben interpretarse con cautela estadística, no como una certeza absoluta.
- Sigue teniendo errores de límite de span (respuesta truncada) en el 40% de los casos que falla, y de contenido totalmente distinto en el otro 40%.
- El split
testpúblicamente disponible deLisibonny/pdqaactualmente expone respuestas reales y consistentes con el contexto en las 20 filas (no debería, según el diccionario de datos del proyecto); no se usaron para entrenar ni ajustar este modelo.
Reproducibilidad
- Repositorio de código: https://github.com/RyxDPrime/Final_Project_NLP
- Notebook:
03_Introduccion_QA_Noticias.ipynb - Archivo de dependencias:
requirements.txt - Semillas: 42
- Downloads last month
- 76
Model tree for YujiYamaki/qa_final_es
Base model
Lisibonny/modelo_qa_beto_squad_es_pdqa