--- language: en license: apache-2.0 tags: - text-classification - toxic-comments - distilbert - multi-label-classification datasets: - jigsaw-toxic-comment-classification metrics: - f1 - roc_auc --- # Toxic Comment Classifier Fine-tuned DistilBERT for multi-label toxic comment classification, wrapped in a live FastAPI endpoint with Docker deployment. ## Model Details - **Base model:** distilbert-base-uncased - **Task:** Multi-label text classification (6 labels) - **Labels:** toxic, severe_toxic, obscene, threat, insult, identity_hate - **Training data:** Jigsaw Toxic Comment Classification (159,571 comments) - **Framework:** HuggingFace Transformers + Trainer API - **Training time:** ~28 minutes on T4 GPU ## Performance | Metric | Score | |--------|-------| | ROC-AUC (macro) | 0.990 | | F1 (macro) | 0.652 | > F1 is lower due to severe class imbalance — threat label has only 478 > positive examples out of 159k. ROC-AUC of 0.990 reflects true model quality. ## Latency Benchmark (GPU, single request) | Percentile | Latency | |------------|---------| | p50 | 7.3ms | | p95 | 9.9ms | | p99 | 19.4ms | | min | 4.1ms | | max | 26.2ms | | mean | 7.3ms | ## Live API - Swagger UI: https://chandkr123-toxic-classifier-api.hf.space/docs - Predict endpoint: https://chandkr123-toxic-classifier-api.hf.space/predict ## Example Predictions | Comment | Flagged | |---------|---------| | I love this community! | clean | | You are the most stupid idiot | toxic, insult, obscene | | I will find you and hurt you | toxic, threat | | I will beat you in the hotel | toxic, threat | ## Limitations - Trained on Wikipedia comments, may not generalise to all domains - Severe class imbalance: threat label has only 478 training examples - Predictions above 0.5 threshold are flagged (adjustable) - Not suitable for production content moderation without human review