/ Модель

Характеристики

Контекст
512 токенов
Параметры
137 млн
Архитектура
bert · dense
Базовая модель
roberta-base-bne-finetuned-sqac
Опубликована
30 июл 2026

pdqa-roberta-bne-sqac-finetuned-augmented

Ответы на вопросыТекст → текст3 профессии

Испаноязычная RoBERTa-модель извлекает ответы на вопросы из контекста доминиканских новостных статей.

10скачиваний за 30 дней1лайквеса обновлены30 июл 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Модель разработана Isaac Pena и Javier Gondres для Dominican News Question Answering Challenge курса ICC-344-T. Это модель RoBERTa-base для извлекающего ответа на вопрос: она принимает вопрос и контекст новостной статьи и выделяет ответ, прямо содержащийся в контексте. Веса дообучены на испаноязычном наборе PDQA с аугментацией формулировок вопросов; базовая модель уже была настроена для извлекающего QA на испанском языке. В метаданных указано 137,1 млн параметров, архитектура BertForQuestionAnswering и контекст до 512 токенов.

Модель предназначена для ответов на вопросы по доминиканским новостям. На валидационной выборке авторы сообщают 73,33 EM и 86,73 F1 для опубликованных весов при прямом использовании; полный проектный конвейер с постобработкой spaCy и гибридным ранжированием показывает 73,33 EM и 90,98 F1. Постобработка и ранжирование входят в отдельный код проекта, а не в веса этой модели. Обучение проводилось на небольшом наборе: 45 исходных примеров в обучении и 15 валидационных, поэтому результаты могут не переноситься на другие новостные источники и типы вопросов. Лицензия в предоставленных данных не указана.

Сценарии применения

  • Извлечение ответа на вопрос из доминиканской новости
  • Поиск в статье упомянутого политика или государственного органа
  • Ответы на вопросы о событиях по заданному новостному контексту

Ограничения

Модель обучалась на небольшой выборке доминиканских новостей, поэтому качество за пределами этой области не подтверждено. Контекст ограничен 512 токенами; показатели опубликованы для небольшой валидационной выборки.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Dominican News QA - pdqa-roberta-bne-sqac-finetuned-augmented

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 explicitamente en el contexto.

Este repositorio publica los pesos de un modelo RoBERTa afinado con fine-tuning sobre train aumentado (Variante B, ver seccion de Experimentos). Usados solos, con pipeline(...), logran 66.67 EM y 87.20 F1 en validation. El repositorio de codigo del proyecto incluye ademas un pipeline de inferencia (post-procesamiento con spaCy es_core_news_sm y re-ranking hibrido) que envuelve este modelo y sube el resultado a 73.33 EM y 90.78 F1, ver la seccion de Resultados para el detalle.

Integrantes

  • Isaac Pena, 10154671
  • Javier Gondres, 10153671

Recursos oficiales

Modelo base

  • Repositorio: mrm8488/roberta-base-bne-finetuned-sqac
  • Justificacion: modelo en espanol ya afinado para QA extractivo sobre SQAC, lo que da un punto de partida zero-shot mas fuerte que un modelo base sin afinar para esta tarea y este idioma.
  • Numero aproximado de parametros: 124,054,274 (todos entrenables, arquitectura RoBERTa-base)

Datos

DivisionFilasUso
train45Entrenamiento
validation15Comparacion y seleccion
test20Predicciones finales

No se publicaron ni utilizaron respuestas privadas de test.

Entrenamiento

ParametroValor
Seed42
Learning rate3e-5
Batch size4
Warmup ratio0.1
Weight decay0.01
LR schedulercosine
Epocas maximas20 (con early stopping)
Paciencia (early stopping)6 epocas sin mejora en el combinado EM+F1
Epocas efectivas, Variante A7 (colapso temprano, ver seccion de ablacion)
Epocas efectivas, Variante B16 (mejor variante, sin senales de colapso)
Max length384
Doc stride128
HardwareTesla T4, 15360 MiB (Google Colab, CUDA 12.8)
Tiempo~1.2 minutos (Variante B, train aumentado, 16 epocas hasta early stopping)

Función utilizada para data augmentation (presente en el notebook)

´SYNONYM_MAP = { "gobierno": ["administracion central", "el Ejecutivo", "las autoridades"], "presidente": ["mandatario", "jefe de Estado"], "ministro": ["funcionario", "titular de la cartera"], "ministra": ["funcionaria", "titular de la cartera"], "dijo": ["afirmo", "senalo", "expreso"], "aumento": ["subio", "se incremento"], "disminuyo": ["bajo", "se redujo"], "policia": ["cuerpo policial", "las autoridades policiales"], }

def paraphrase_question(question): variants = [question] q_lower = question.lower() for word, synonyms in SYNONYM_MAP.items(): if word in q_lower: pattern = re.compile(re.escape(word), re.IGNORECASE) for syn in synonyms: variants.append(pattern.sub(syn, question, count=1)) seen, unique_variants = set(), [] for v in variants: if v not in seen: seen.add(v) unique_variants.append(v) return unique_variants´

Experimentos

ExperimentoCambioEM validationF1 validation
1. Baseline oficial (zero-shot)Sin cambios53.3381.68
2. Baseline + post-procesamiento (spaCy es_core_news_sm)Reglas de concordancia de plural y preservacion de verbo60.0088.15
3. Baseline + post-procesamiento + re-rankingRe-ranking hibrido sobre candidatos top k, mas post-procesamiento60.0088.15
4. Variante A (fine-tuning, train original)Fine-tuning con train original (45 ejemplos)66.6783.46
5. Variante B (fine-tuning, train aumentado)Fine-tuning con train aumentado (49 ejemplos)73.3386.73
6. Variante B + post-procesamientoPost-procesamiento spaCy es_core_news_sm sobre la Variante B73.3390.98
7. Modelo final: Variante B + post-procesamiento + re-ranking hibridoRe-ranking hibrido sobre candidatos top k de la Variante B, mas post-procesamiento73.3390.98

Nota honesta sobre el re-ranking: El re-ranking hibrido (score nativo + similitud Jaccard + bono NER) no cambio ninguna prediccion en este validation de 15 ejemplos, ni sobre el baseline ni sobre la Variante B. Esto sugiere que en la mayoria de los casos el candidato top 1 del modelo ya coincidia con lo que el re-ranking habria elegido, o que el validation es demasiado pequeno para que la tecnica muestre diferencia. Se reporta la tecnica y se mantiene en el pipeline final por completitud metodologica (cumple el requisito de comparar variantes), pero no se le atribuye la mejora observada, que viene del post-procesamiento y del fine-tuning.

Ablacion o comparacion controlada

Variable que cambio: el conjunto de entrenamiento (train original de 45 ejemplos contra train aumentado con parafrasis sinonimicas de las preguntas, manteniendo contexto y respuesta identicos). Variables que permanecieron constantes: modelo base, hiperparametros, semilla y metricas de evaluacion. La comparacion se hizo epoca por epoca sobre el mismo split de validation, ver seccion 12 del notebook.

Hallazgo principal: la Variante A (train original) colapsa rapido, el combinado EM+F1 cae de ~71 en la epoca 1 a ~60 hacia la epoca 5, y el early stopping la corta en la epoca 7. La Variante B (train aumentado) nunca muestra ese colapso, oscila entre 66 y 77 durante 16 epocas completas sin tendencia de caida sostenida. Esto es evidencia directa de que el data augmentation actua como regularizacion: con solo 45 ejemplos el modelo memoriza la forma exacta de las preguntas en pocas epocas, mientras que con mas variedad de formulaciones (mismo contexto y respuesta) tarda mucho mas en sobreajustarse.

Resultados

Modelo publicado (solo pesos, lo que se obtiene con pipeline(...) directo): Variante B, fine-tuning con train aumentado.

  • Exact Match en validation: 73.33
  • F1 en validation: 86.73

Con el pipeline completo (post-procesamiento con spaCy es_core_news_sm + re-ranking hibrido, incluidos en el repositorio de codigo, no en los pesos):

  • Exact Match en validation: 73.33 (+6.66 puntos sobre el modelo solo)
  • F1 en validation: 90.98 (+3.78 puntos sobre el modelo solo)

El repositorio de codigo incluye ademas una demo interactiva (widget de ipywidgets) en la seccion 20 del notebook, que envuelve el modelo publicado con el pipeline completo (predict_answer

  • postprocess_prediction + re-ranking hibrido), para reproducir directamente el resultado de 73.33/90.78 sin tener que reimplementar el post-procesamiento a mano. No se publico un Hugging Face Space externo porque, al momento de esta entrega, la plataforma requiere plan PRO para Spaces con SDK Gradio en cuentas personales nuevas.

Diagnostico de overfitting (pipeline completo):

  • Exact Match en train: 84.44
  • F1 en train: 88.44
  • Brecha EM (train menos validation): 11.11 puntos
  • Brecha F1 (train menos validation): -2.54 puntos (F1 es mejor en validation que en train)
  • Lectura: no hay evidencia de overfitting significativo. La brecha de F1 negativa descarta memorizacion clasica, y la brecha de EM remanente es consistente con el tamano reducido de ambos splits (45 y 15 ejemplos) mas que con un problema de generalizacion. Antes de aplicar post-procesamiento y re-ranking sobre el modelo afinado solo, la brecha de EM era de 22.22 puntos, el post-procesamiento y el re-ranking la redujeron sin afectar F1, lo que confirma que el problema era de calibracion del limite exacto del span, no de contenido.
  • Script de evaluacion: 05_evaluate_qa.py

Diagnostico de overfitting (modelo suelto):

  • Exact Match en train: 86.67
  • F1 en train: 88.89
  • Brecha EM (train menos validation): 13.33 puntos
  • Brecha F1 (train menos validation): 2.16 puntos
  • Lectura: Lo que llama la atención es la disociación entre EM y F1. Si el modelo estuviera memorizando train de forma clásica, esperarías que ambas métricas caigan de forma pareja en validation (F1 y EM se mueven juntas cuando el modelo simplemente "no reconoce" el patrón). Aquí F1 casi no se mueve, lo que significa que en validation el modelo casi siempre está encontrando el fragmento correcto en términos de contenido (tokens correctos), pero falla en el límite exacto del span (dónde empieza o termina el string). Eso es justo el tipo visto en la sección 15 del notebook y que motivó el post-procesamiento con spaCy: preguntas plurales donde falta extender el span, o de tiempo verbal donde falta el verbo auxiliar.
  • Script de evaluacion: 05_evaluate_qa.py

Ejemplo de uso

from transformers import pipeline

qa = pipeline(
    "question-answering",
    model="Underscore-IDPD/pdqa-roberta-bne-sqac-finetuned-augmented",
    tokenizer="Underscore-IDPD/pdqa-roberta-bne-sqac-finetuned-augmented"
)

qa(
    question="Quien hizo el anuncio?",
    context="La ministra informo que el programa comenzara en agosto."
)

Importante: los resultados reportados arriba corresponden al pipeline completo, que incluye post-procesamiento con spaCy es_core_news_sm y re-ranking hibrido sobre los candidatos del modelo, ademas del fine-tuning. Los pesos publicados en este repositorio son solo el modelo afinado; usarlo directamente con pipeline(...) sin el post-procesamiento y el re-ranking se predice que den resultados inferiores a estos y más cercanos a los del modelo suelto. El codigo de esas dos etapas del pipeline esta en el notebook del repositorio de codigo (ver seccion de Reproducibilidad).

Analisis de errores

  1. Concordancia de plural: preguntas con "quienes" o "cuales" donde el modelo devuelve un fragmento que no incluye la lista completa de la referencia. Ejemplo: pregunta "Cuantos bateadores...", esta pregunta ni siquiera con el pipeline se soluciono.
  2. Tiempo verbal: preguntas en futuro o condicional donde el span predicho omite el verbo auxiliar necesario para que la respuesta tenga sentido completo. Ejemplo: pregunta "Como sera la inflacion en 2023?", referencia "seguira siendo alta", prediccion "siendo alta" (F1 = 0.80, falta el verbo "seguira").
  3. Truncamiento de la frase introductoria en preguntas descriptivas ("de que trata"): el modelo acierta el contenido pero corta el verbo o la frase que enmarca la respuesta. Ejemplo: pregunta "De que trata la pelicula Ramona?", referencia "gira en torno al embarazo en adolescentes", prediccion "al embarazo en adolescentes" (F1 = 0.73, falta "gira en torno").

Nota honesta: el caso peor calificado (F1 = 0.14, ejemplo 1) es justo el tipo de patron que la regla de extension de plurales deberia cubrir, y sin embargo sigue fallando en el pipeline final. Es probable que el patron de puntuacion despues del span predicho (dos puntos seguido de una lista larga con comas internas) no calce con la expresion regular de extend_plural_answer, que espera un formato mas simple. Queda como limitacion conocida en vez de ocultarse.

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.
  • El train original tiene solo 45 ejemplos, lo que limita la capacidad de generalizacion incluso con data augmentation.
  • No debe utilizarse como unica fuente para decisiones de alto impacto.

Reproducibilidad

  • Repositorio de codigo: pdqa-roberta-bne-sqac-finetuned-augmented-pipeline
  • Commit: f8d9f425e328214db3c71b822ded354e1d57d871
  • Notebook: 03_Introduccion_QA_Noticias.ipynb
  • Archivo de dependencias: requirements.txt (generado en la seccion 17 del notebook), versiones verificadas en el entorno real de Colab: transformers==4.57.6, datasets==4.0.0, accelerate==1.14.0, pandas==2.2.2, pyarrow==18.1.0, numpy==2.0.2, spacy==3.8.14, torch==2.11.0 (build +cu128)
  • Semillas: 42

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · question-answering

Можно запустить

Подбираем GPU…

Класс архитектуры
BertForQuestionAnswering
Ревизия весов
0a64750

0 моделей