Instructions to use JD1714/ToxicityClassifier with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use JD1714/ToxicityClassifier with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="JD1714/ToxicityClassifier")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("JD1714/ToxicityClassifier") model = AutoModelForSequenceClassification.from_pretrained("JD1714/ToxicityClassifier", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Toxic Comment Classifier (DistilBERT)
Model Details
Model Description
Este modelo es un clasificador multietiqueta diseñado para detectar lenguaje nocivo en inglés. Es una adaptación (fine-tuning) del modelo base distilbert-base-uncased, entrenado para clasificar textos en 6 categorías no excluyentes: toxic, severe_toxic, obscene, threat, insult, y identity_hate.
- Developed by: José Campos & Jhonatan Homsany
- Model type: Text Classification (Multi-label)
- Language(s) (NLP): English
- Finetuned from model: distilbert-base-uncased
Uses
Direct Use
Este modelo funciona como un asistente de primera línea para quienes moderan foros, chats en vivo o redes sociales. Su propósito es actuar como un filtro rápido que lea los comentarios y envíe a revisión humana aquellos que parezcan agresivos u ofensivos, priorizando el trabajo de moderación.
Out-of-Scope Use
No está diseñado para aplicar bloqueos o baneos automáticos sin supervisión humana. Tampoco es ideal para captar sarcasmo, ironías o agresividad pasivo-agresiva que no utilice malas palabras evidentes.
Bias, Risks, and Limitations
- Jerga y Ortografía: Al haber aprendido a leer con textos formales de Wikipedia, le cuesta interpretar la jerga de internet, las palabras acortadas o la mala ortografía intencional (ej. "I'ma", "wit").
- Falsas Alarmas (Hipersensibilidad): Para evitar que el modelo ignore amenazas reales, se le programó matemáticamente para ser muy estricto con las categorías raras (
threat,severe_toxic). Es normal que prefiera marcar un texto inofensivo como amenaza antes que dejar pasar un peligro real. - Sesgos en los Datos: El modelo hereda prejuicios del dataset original (Jigsaw). Tiende a asociar palabras relacionadas con minorías (orientación sexual, raza, religión) con la etiqueta de odio, ya que en sus datos de entrenamiento esas palabras se usaban frecuentemente como insulto.
How to Get Started with the Model
Puedes probar este clasificador directamente en Python utilizando la librería transformers:
from transformers import pipeline
# Cargar el modelo desde el Hub
clasificador = pipeline("text-classification", model="JD1714/ToxicityClassifier", top_k=None)
# Probar con un texto
resultado = clasificador("I hate you, you are a complete idiot!")
print(resultado)
Trainig Details
Training Data
10.000 ejemplos curados extraídos del Jigsaw Toxic Comment Classification Challenge (80% entrenamiento, 10% validación, 10% prueba).
Training Procedure
Estrategia: Fine-tuning completo (se descongelaron todas las capas del backbone).
Manejo del Desbalance: Se utilizó la función de pérdida BCEWithLogitsLoss aplicando pesos por clase (pos_weight) para penalizar severamente los errores en las categorías minoritarias.
Training Hyperparameters
Learning rate: 2e-05
Epochs: 6
Batch size: 16
Early Stopping: Patience of 2 epochs (monitoreando F1-Macro)
Evaluation
Metrics
Se utilizó la métrica F1-Macro para medir el rendimiento de forma justa, dándole la misma importancia a todas las clases sin importar su escasez en el dataset.
Results
F1-Macro (Validation): 0.5291
F1-Macro (Test): 0.6175
Training Time: 425 segundos en entorno Google Colab GPU.
- Downloads last month
- 30
Model tree for JD1714/ToxicityClassifier
Base model
distilbert/distilbert-base-uncased