Text Classification
Transformers
Safetensors
English
distilbert
multi-label
toxic-comments
text-embeddings-inference
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
|
Download README.md from JD1714/ToxicityClassifier: direct link, hf CLI and curl.
- Browser
- Download file 3.59 kB
-
https://huggingface.co/JD1714/ToxicityClassifier/resolve/main/README.md
- Command line
-
hf download hf://JD1714/ToxicityClassifier/README.md
-
curl -L -o README.md https://huggingface.co/JD1714/ToxicityClassifier/resolve/main/README.md
3.59 kB
| library_name: transformers | |
| tags: | |
| - text-classification | |
| - multi-label | |
| - toxic-comments | |
| - distilbert | |
| datasets: | |
| - thesofakillers/jigsaw-toxic-comment-classification-challenge | |
| language: | |
| - en | |
| base_model: | |
| - distilbert/distilbert-base-uncased | |
| # 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`: | |
| ```python | |
| 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. |