Loading…
Loading…
Clasificador binario de texto que estima si un comentario en español contiene discurso de odio (clase 1) o
no (clase 0). Es un roberta-base-bne afinado (fine-tuning completo) sobre comentarios de Twitter.
PlanTL-GOB-ES/roberta-base-bne
(Barcelona Supercomputing Center). Como sus pesos originales fueron retirados del Hub, se cargó desde una copia
espejo: PeterPanecillo/PlanTL-GOB-ES-roberta-base-bne-copy.piuba-bigdata/contextualized_hate_speech.from transformers import pipeline
clf = pipeline("text-classification", model="fr4nZzz/roberta-hate-speech", top_k=None)
print(clf("Escribe aquí un comentario en español"))
Según el artículo que presenta el dataset (arXiv:2210.00465): son respuestas de primer nivel en Twitter a noticias de diarios argentinos (La Nación, Clarín, Infobae, Perfil y Crónica), en español rioplatense, durante un año a partir de marzo de 2020 y con noticias relacionadas con la COVID-19. Las etiquetas las pusieron seis anotadores nativos. Se considera odio el rechazo intenso hacia una persona o grupo por una característica protegida; según los autores, un insulto por sí solo no basta. Alrededor del 15 % de los comentarios son odio.
Particiones usadas: se respetaron las originales (train, dev como validación y test). Antes de entrenar se eliminaron de validación y prueba los textos idénticos a alguno de train, porque inflaban la métrica.
| Partición | Textos tras la limpieza | % de odio |
|---|---|---|
| train | 36 420 | 15,2 % |
| validación | 8 578 | 15,3 % |
| prueba | 11 112 | 15,8 % |
| Elemento | Valor |
|---|---|
| Tokenizer | El del modelo base (BPE a nivel de bytes), truncado a 128 tokens, con padding dinámico por lote |
| Régimen | Fine-tuning completo (todos los parámetros entrenables, unos 124,6 millones) |
| Tasa de aprendizaje | 2e-5 |
| Épocas | 2 |
| Tamaño de lote | 16 |
| Semilla | 32111550 |
| Optimizador y planificador | Valores por defecto de Trainer (AdamW, decaimiento lineal, sin warmup, sin weight decay) |
| Precisión | fp16 (mixta) |
| Criterio de parada | La época con mayor F1 macro en validación (load_best_model_at_end) |
Métrica principal: F1 macro, porque las clases están desbalanceadas. Todos los regímenes se evaluaron sobre las mismas particiones de validación y prueba.
| Régimen | Parámetros entrenables | Minutos (T4) | F1 macro validación | F1 macro prueba | Exactitud prueba |
|---|---|---|---|---|---|
| 1. Baseline (TF-IDF + regresión logística) | 10 000 | 0,4 | 0,6730 | 0,6762 | 0,8788 |
| 2. Feature extraction (backbone congelado) | 592 130 | 2,4 | 0,6062 | 0,5931 | 0,8506 |
| 3. Fine-tuning completo (este modelo) | 124 644 866 | 6,3 | 0,7940 | 0,7804 | 0,8937 |
| 4. Fine-tuning con tasa excesiva (2e-3) | 124 644 866 | 5,9 | 0,4585 | 0,4571 | 0,8421 |
Este modelo, sobre la partición de prueba (11 112 textos):
| Clase | Precisión | Recall | F1 |
|---|---|---|---|
| No odio (0) | 0,920 | 0,957 | 0,938 |
| Odio (1) | 0,709 | 0,555 | 0,623 |
Deja pasar 781 casos de odio (44,5 % de los reales) y marca por error 400 comentarios neutrales (4,3 %). Una referencia: predecir siempre "no odio" da exactitud 0,8421 y F1 macro 0,4571.
Ayuda a priorizar comentarios para revisión humana en moderación de comunidades en español. No está pensado para sancionar o bloquear usuarios de forma automática sin que una persona revise el caso.
Derivadas de cómo se construyó el dataset (según sus autores) y del modelo base:
"La bella y la Horrible (Etiqueta Real = Odio y Predicción = No odio)": Oración poco descriptiva, lo cual resulta en un mensaje implicito para el modelo. La falta de contexto limita la capacidad para inferir del modelo.
"Preso de por Vida!!! (Etiqueta real = No odio y Predicción = Odio)": Oración intrepretable como con entonación fuerte por los 3 signos de exclamación, pocas palabras en la oración. El modelo posiblemente asocie los "!!!" como una forma agresiva de dirigirse a alguien y la falta de contexto hacen que piense que es odio.
PeterPanecillo/PlanTL-GOB-ES-roberta-base-bne-copy