miguealguacil
Volver a proyectos

TFM: LLMs para detección automática de lenguaje sexista en redes sociales

PythonPyTorchTransformersBERTModernBERTFastAPIReactSQLite

El sexismo en redes sociales se manifiesta tanto de forma explícita como implícita, lo que dificulta su moderación automática: los sistemas actuales confunden a menudo el contenido sexista con publicaciones que simplemente lo denuncian o lo citan para criticarlo, y su rendimiento se degrada al pasar de un dominio (p. ej. Twitter) a otro (p. ej. foros o Reddit).

Este TFM parte de la hipótesis de que un modelo tipo BERT ajustado específicamente para esta tarea (fine-tuning) puede ser competitivo, e incluso superior, frente a LLMs de propósito general usados en zero-shot o few-shot, aun reduciendo de forma significativa el volumen de datos de entrenamiento.

Datasets

EDOS (SemEval-2023 Task 10): conjunto de datos de Reddit y Gab con entre 5.000 y 20.000 ejemplos etiquetados, usado en sus variantes binaria, de 3 clases y de 4 clases para evaluar distintos niveles de granularidad en la detección de sexismo.

RedditBIAS: alrededor de 3.000 frases centradas en sesgo de género, empleado para evaluar la generalización del modelo a un dominio distinto al de entrenamiento.

Conjunto de frases sintéticas: 15 frases diseñadas específicamente para el TFM, distribuidas en 3 clases, que permiten una validación cualitativa rápida del comportamiento del modelo ante casos límite.

Metodología

Preprocesado de los datasets (limpieza de texto, balanceo de clases al 50/50 para evitar sesgos por desbalance) y división en conjuntos de entrenamiento, validación y test con proporciones 70/10/20.

Búsqueda de hiperparámetros mediante grid search sobre 54 combinaciones (learning rate, batch size, número de épocas, etc.) para encontrar la configuración óptima de fine-tuning de los modelos BERT y ModernBERT.

Evaluación de LLMs en few-shot prompting (k=6 ejemplos para clasificación binaria, k=12 para 4 clases) aplicando logits masking para restringir la salida del modelo a las clases válidas.

Métricas de evaluación: F1 macro, precision, recall y accuracy, calculadas de forma consistente para todos los modelos y datasets.

Conclusiones

El fine-tuning de modelos tipo BERT supera de forma consistente a los LLMs sin ajustar: incluso el mejor resultado obtenido con Mistral-7B-Instruct en few-shot (F1 = 0.413) queda más de 40 puntos porcentuales por debajo de los modelos ajustados.

Reducir el conjunto de entrenamiento de EDOS de 20.000 a 10.000 ejemplos es viable: supone un ahorro de aproximadamente el 87% en horas de GPU con una pérdida de rendimiento de solo 4 puntos porcentuales de F1.

Limitaciones identificadas: confusión entre contenido crítico/denuncia y contenido sexista, dificultad para detectar ironía y sarcasmo, y falta de evaluación en escenarios multilingües, que queda abierta como trabajo futuro.

Aplicación web

El modelo binario ModernBERT-base (entrenado sobre reduced_10k) se integró en una aplicación full-stack que demuestra su uso en un escenario real: un microservicio FastAPI con frontend React, persistencia en SQLite y autenticación JWT con tres roles: admin (gestión total de usuarios y roles), sexism_detection (lanzar y consultar análisis) y analytics (solo lectura de analíticas).

El detector de sexismo ofrece tres modos de análisis: texto libre (segmentado en frases, con resultado global y por frase), URL (analiza el contenido textual de una página, con filtro opcional por etiqueta HTML) y dominio completo (respeta robots.txt, localiza el sitemap.xml, extrae las URLs indexables y ejecuta la inferencia en paralelo).

El módulo de analíticas consolida los resultados en tres vistas: un dashboard global (URLs y frases analizadas, % de sexismo estimado, top-5 frases más sexistas e histograma de severidad), un listado de dominios analizados y un listado paginado de URLs por dominio con acceso al detalle frase a frase de cada una.

Como prueba de concepto se analizó el portal principal de la Universidad de Granada (www.ugr.es): sobre 590 URLs y 12.643 frases, solo 22 frases (≈0,002%) se marcaron como sexistas, y la revisión manual confirmó que eran falsos positivos (frases que hablan sobre discriminación de género, no que la ejercen). Es el resultado esperado para una web institucional y una señal de que el modelo no sobre-etiqueta contenido de forma indiscriminada.

Resultados

F1 (ModernBERT-base, EDOS-10k)0.843
Recall (ModernBERT-base, EDOS-10k)0.853
Accuracy (ModernBERT-base, EDOS-10k)0.843
F1 (bert-base-uncased, EDOS-10k)0.836
F1 (bert-base-uncased, EDOS-20k)0.7876
F1 (Mistral-7B-Instruct, few-shot)0.413
F1 (frases sintéticas, BERT)0.95-0.96

Capturas

Gráfico de barras comparando el F1 (macro) de cada modelo en los datasets EDOS, RedditBIAS y frases sintéticas
Comparación de F1 (macro) por modelo y dataset en clasificación binaria
Pantalla de inicio de sesión de la aplicación, con campos de usuario y contraseña
Pantalla de inicio de sesión de la aplicación
Resultado del análisis de un texto libre, con el porcentaje global de frases sexistas y el desglose frase a frase
Análisis de un texto libre con resultado global y desglose frase a frase
Resultado del análisis del contenido textual de una URL, con resumen global y detalle por frase
Análisis del contenido textual de una URL
Resultado del análisis de un dominio completo, mostrando los sitemaps localizados y las URLs detectadas
Análisis de un dominio completo a partir de su sitemap.xml
Dashboard global de analíticas con URLs y frases analizadas, porcentaje de sexismo, top-5 frases más sexistas e histograma de severidad
Dashboard global de analíticas: URLs/frases analizadas, % de sexismo, top-5 frases, histograma de severidad
Listado de dominios web analizados, con búsqueda y acceso al detalle de cada uno
Listado de dominios analizados
Listado paginado de URLs de un dominio, con su porcentaje de sexismo y clasificación
Listado paginado de URLs de un dominio con su clasificación
Detalle frase a frase del análisis de una URL, con buscador y filtros por clasificación
Detalle frase a frase del análisis de una URL

Enlaces