Instructions to use NightPrince/Toxic_Classification with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- TF-Keras
How to use NightPrince/Toxic_Classification with TF-Keras:
# Note: 'keras<3.x' or 'tf_keras' must be installed (legacy) # See https://github.com/keras-team/tf-keras for more details. from huggingface_hub import from_pretrained_keras model = from_pretrained_keras("NightPrince/Toxic_Classification") - Keras
How to use NightPrince/Toxic_Classification with Keras:
# Available backend options are: "jax", "torch", "tensorflow". import os os.environ["KERAS_BACKEND"] = "jax" import keras model = keras.saving.load_model("hf://NightPrince/Toxic_Classification") - Notebooks
- Google Colab
- Kaggle
| language: en | |
| tags: | |
| - toxic-content | |
| - text-classification | |
| - keras | |
| - tensorflow | |
| - deep-learning | |
| - safety | |
| - multiclass | |
| license: mit | |
| datasets: | |
| - custom | |
| metrics: | |
| - accuracy | |
| - f1 | |
| pipeline_tag: text-classification | |
| model-index: | |
| - name: Toxic_Classification | |
| results: [] | |
| # Toxic-Predict | |
| Toxic-Predict is a machine learning project developed as part of the Cellula Internship, focused on safe and responsible multi-modal toxic content moderation. It classifies text queries and image descriptions into nine toxicity categories such as "Safe", "Violent Crimes", "Non-Violent Crimes", "Unsafe", and others. The project leverages deep learning (Keras/TensorFlow), NLP preprocessing, and benchmarking with modern transformer models to build and evaluate a robust multi-class toxic content classifier. | |
| --- | |
| ## 🚩 Project Context | |
| This project is part of the **Cellula Internship** proposal: | |
| **"Safe and Responsible Multi-Modal Toxic Content Moderation"** | |
| The goal is to build a dual-stage moderation pipeline for both text and images, combining hard guardrails (Llama Guard) and soft classification (DistilBERT/Deep Learning) for nuanced, policy-compliant moderation. | |
| --- | |
| ## Features | |
| - Dual-stage moderation: hard filter (Llama Guard) + soft classifier (DistilBERT/CNN/LSTM) | |
| - Data cleaning, preprocessing, and label encoding | |
| - Tokenization and sequence padding for text data | |
| - Deep learning and transformer-based models for multi-class toxicity classification | |
| - Evaluation metrics: classification report and confusion matrix | |
| - Jupyter notebooks for data exploration and model development | |
| - Streamlit web app for demo and deployment | |
| --- | |
| --- | |
| ## Usage | |
| - **Preprocessing and Tokenization:** | |
| See `notebooks/Preprocessing.ipynb` and `notebooks/tokenization.ipynb` for step-by-step data cleaning, splitting, and tokenization. | |
| - **Model Training:** | |
| Model architecture and training code are in `models/model.py`. | |
| - **Inference:** | |
| Load the trained model (`models/toxic_classifier.h5` or `.keras`) and tokenizer (`data/tokenizer.pkl`) to predict toxicity categories for new samples. | |
| --- | |
| ## Data | |
| - CSV files with columns: `query`, `image descriptions`, `Toxic Category`, and `Toxic Category Encoded`. | |
| - Data splits: `train.csv`, `eval.csv`, `test.csv`, and `cleaned.csv` for processed data. | |
| - 9 categories: Safe, Violent Crimes, Elections, Sex-Related Crimes, Unsafe, Non-Violent Crimes, Child Sexual Exploitation, Unknown S-Type, Suicide & Self-Harm. | |
| --- | |
| ## Model | |
| - Deep learning model built with Keras (TensorFlow backend). | |
| - Multi-class classification with label encoding for toxicity categories. | |
| - Benchmarking with PEFT-LoRA DistilBERT and baseline CNN/LSTM. | |
| --- | |
| ## Evaluation | |
| - Classification report and confusion matrix are generated for model evaluation. | |
| - See the evaluation steps in `notebooks/Preprocessing.ipynb`. | |
| --- | |
| language: en | |
| ## 🤗 Hugging Face Inference | |
| This model is available on the Hugging Face Hub: [NightPrince/Toxic_Classification](https://huggingface.co/NightPrince/Toxic_Classification) | |
| ### Inference API Usage | |
| You can use the Hugging Face Inference API or widget with two fields: | |
| - `text`: The main query or post text | |
| - `image_desc`: The image description (if any) | |
| **Example (Python):** | |
| ```python | |
| from huggingface_hub import InferenceClient | |
| client = InferenceClient("NightPrince/Toxic_Classification") | |
| result = client.text_classification({ | |
| "text": "This is a dangerous post", | |
| "image_desc": "Knife shown in the image" | |
| }) | |
| print(result) # {'label': 'toxic', 'score': 0.98} | |
| ``` | |
| ### Custom Pipeline Details | |
| - The model uses a custom `pipeline.py` for multi-input inference. | |
| - The output is a dictionary with the predicted `label` (class name) and `score` (confidence). | |
| - Class names are mapped using `label_map.json`. | |
| **Files in the repo:** | |
| - `pipeline.py` (custom inference logic) | |
| - `tokenizer.json` (Keras tokenizer) | |
| - `label_map.json` (class code to name mapping) | |
| - TensorFlow SavedModel files (`saved_model.pb`, `variables/`) | |
| **Requirements:** | |
| ``` | |
| tensorflow | |
| keras | |
| numpy | |
| ``` | |
| --- | |
| --- | |
| ## 📚 Resources | |
| - [Cellula Internship Project Proposal](#) | |
| - [BLIP: Bootstrapped Language-Image Pre-training](https://github.com/salesforce/BLIP) | |
| - [Llama Guard](https://llama.meta.com/llama-guard/) | |
| - [DistilBERT](https://huggingface.co/distilbert-base-uncased) | |
| - [Streamlit](https://streamlit.io/) | |
| --- | |
| ## License | |
| MIT License | |
| --- | |
| **Author:** Yahya Muhammad Alnwsany | |
| **Contact:** yahyaalnwsany39@gmail.com | |
| **Portfolio:** https://nightprincey.github.io/Portfolio/ | |