Downloads · 30 days
26
10% of all-time downloads
antonn-dromundo/SinOdio-BETO-HateSpeech-Detector-v3
SinOdio-BETO-HateSpeech-Detector-v3 is a text classification model from antonn-dromundo. Use it when you need a label for a piece of text. The card lists the license as apache-2.0.
Clasificador binario (BETO, 110M parámetros) parte de DignityAI. Etiquetas: LABEL0 = no odio, LABEL1 = odio.
Downloads · 30 days
26
10% of all-time downloads
All-time downloads
267
Public
Parameters
110M
439 MB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors439 MB · 100%
From the Hugging Face model README
Clasificador binario (BETO, 110M parámetros) parte de DignityAI. Etiquetas: LABEL_0 = no odio, LABEL_1 = odio.
Las métricas originales (exactitud 91.85%, F1 0.87) se midieron en un test que repetía el 84% del entrenamiento. Estas son las cifras en datos que el modelo nunca vio:
| Prueba | SinOdio v3 | Referencia: BETO de la UBA |
|---|---|---|
| HateCheck-ES, exactitud | 71% | 67% |
| HateCheck-ES, F1 macro | 0.686 | 0.64 |
| HateCheck-ES, recall de odio / precisión | 0.71 / 0.856 | 0.671 / 0.823 |
| Falsas alarmas en frases inclusivas sobre raza (DignityAI-Racismo) | 70% | 9% |
| Falsas alarmas en frases inclusivas sobre clase (DignityAI-Clasismo) | 72% | 0% |
Funcionalidades de HateCheck donde más falla: negate_neg_nh (45%), spell_space_add_h (51%), spell_char_del_h (54%), spell_char_swap_h (61%).
Uso recomendado: demos y exploración con revisión humana. Marca como odio muchas frases que solo mencionan un grupo (por ejemplo, frases antirracistas o a favor de la inclusión), así que no lo uses para moderar automáticamente. Las etiquetas de su dataset de entrenamiento resultaron poco confiables; detalles en DignityAI-Validacion.
from transformers import pipeline
clf = pipeline("text-classification", model="antonn-dromundo/SinOdio-BETO-HateSpeech-Detector-v3")
clf("Los inmigrantes enriquecen nuestra cultura")
SinOdio BETO v3 es un modelo de detección de discurso de odio especializado en español latinoamericano, diseñado para identificar tanto hate speech explícito como las formas sutiles y normalizadas de discriminación que a menudo eluden los sistemas de moderación tradicionales.
Este modelo es parte de DignityAI, un ecosistema de IA enfocado en proteger la dignidad humana mediante la detección de discriminación en contenido digital.
| Métrica | v3 | v1 | Mejora |
|---|---|---|---|
| Accuracy | 91.85% | 77.82% | +14.03% |
| F1 Score | 0.8700 | 0.6619 | +20.81% |
| Precision | 0.8330 | 0.6096 | +22.34% |
| Recall | 0.9103 | 0.7240 | +18.63% |
Para hate speech detection, priorizamos Recall sobre Precision:
Justificación: Es más importante detectar contenido dañino (evitar falsos negativos) que marcar incorrectamente contenido inocente (falsos positivos), especialmente en contextos de moderación de contenido.
pip install transformers torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
# Cargar modelo y tokenizer
model_name = "antonn-dromundo/SinOdio-BETO-HateSpeech-Detector-v3"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
def detectar_odio(texto):
"""
Detecta hate speech en texto en español.
Returns:
tuple: (etiqueta, confianza)
etiqueta: "HATE" o "NO HATE"
confianza: probabilidad (0-1)
"""
inputs = tokenizer(texto, return_tensors="pt", padding=True, truncation=True, max_length=128)
with torch.no_grad():
outputs = model(**inputs)
probs = torch.softmax(outputs.logits, dim=1)
pred = torch.argmax(probs, dim=1).item()
conf = probs[0][pred].item()
etiqueta = "HATE" if pred == 1 else "NO HATE"
return etiqueta, conf
# Ejemplos
textos = [
"los inmigrantes enriquecen nuestra cultura",
"las mujeres simplemente son más emocionales, es biología"
]
for texto in textos:
etiqueta, confianza = detectar_odio(texto)
print(f"Texto: {texto}")
print(f"Predicción: {etiqueta} (confianza: {confianza:.2%})\n")
Output:
Texto: los inmigrantes enriquecen nuestra cultura
Predicción: NO HATE (confianza: 99.70%)
Texto: las mujeres simplemente son más emocionales, es biología
Predicción: HATE (confianza: 99.60%)
dariolopez/bert-base-spanish-wwm-casedDataset de entrenamiento:
Hiperparámetros:
Hardware:
El modelo identifica discriminación relacionada con:
Este modelo fue entrenado con SinOdio-LATAM, el primer dataset académico de hate speech sutil en español latinoamericano.
Características del dataset:
Si utilizas este modelo en investigación académica, por favor cita:
@misc{dromundo2025sinodio,
title={SinOdio BETO: Detector de Discurso de Odio para Español Latinoamericano},
author={Dromundo, Antonio},
year={2025},
publisher={HuggingFace},
url={https://huggingface.co/antonn-dromundo/SinOdio-BETO-HateSpeech-Detector-v3}
}
¿Encontraste un caso donde el modelo falla? ¿Tienes sugerencias de mejora?
Este modelo fue diseñado con los siguientes principios éticos:
Este modelo NO debe usarse para:
Apache 2.0 - Libre para uso comercial y académico con atribución.
Construido con ❤️ por DignityAI
Protegiendo la dignidad humana, un modelo a la vez
</div>