Instructions to use darrayes/expentor-JB-detector with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use darrayes/expentor-JB-detector with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="darrayes/expentor-JB-detector")# Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("darrayes/expentor-JB-detector") model = AutoModelForSequenceClassification.from_pretrained("darrayes/expentor-JB-detector", device_map="auto") - Notebooks
- Google Colab
- Kaggle
| library_name: transformers | |
| license: apache-2.0 | |
| base_model: answerdotai/ModernBERT-base | |
| tags: | |
| - generated_from_trainer | |
| metrics: | |
| - f1 | |
| model-index: | |
| - name: ModernBERT-domain-classifier | |
| results: [] | |
| <!-- This model card has been generated automatically according to the information the Trainer had access to. You | |
| should probably proofread and complete it, then remove this comment. --> | |
| # ModernBERT-domain-classifier | |
| This model is a fine-tuned version of [answerdotai/ModernBERT-base](https://huggingface.co/answerdotai/ModernBERT-base) on the [JailBreak](https://huggingface.co/datasets/jackhhao/jailbreak-classification) dataset . | |
| It achieves the following results on the evaluation set: | |
| - Loss: 0.0016 | |
| - F1: 1.0 | |
| --- | |
| ## Overview | |
| This model is a fine-tuned version of **ModernBert** for the task of **JailBreak Detection**. It has been trained on a custom dataset containing two classes: `jailbreak` and `benign`. The model achieves **100% accuracy** on the evaluation set, making it a highly reliable solution for detecting jailbreak queries. | |
| The choice of ModernBert was deliberate due to its compact size, enabling **low latency inference**, which is crucial for real-time applications. | |
| --- | |
| > This is just a POC model to show that the concept works on a theoritical level and performance will depend upon the quality of dataset and further tuning is needed | |
| ## Training Details | |
| - **Dataset**: JailBreak dataset (split into training and testing sets). | |
| - **Architecture**: ModernBert. | |
| - **Task**: Binary Classification. | |
| - **Evaluation Metric**: Achieved **100% accuracy** on the test set. | |
| --- | |
| ## Use Case in RAG Pipelines | |
| This model is optimized for use in **Retrieval-Augmented Generation (RAG)** scenarios. It can: | |
| 1. **Detect JailBreak Queries**: The model processes user queries to identify whether they are `jailbreak` or `benign`. | |
| 2. **Seamlessly Integrate with Search**: While the query is classified, search results can simultaneously be fetched from the datastore. | |
| - **No Additional Latency**: The lightweight nature of ModernBert ensures minimal overhead, allowing real-time performance in RAG pipelines. | |
| --- | |
| ## Key Features | |
| - **High Accuracy**: Reliable classification with 100% accuracy on evaluation. | |
| - **Low Latency**: Ideal for real-time use cases, especially in latency-sensitive applications. | |
| - **Compact Model**: ModernBert's small size makes it efficient for deployment in production environments. | |
| --- | |
| ## Example Usage | |
| ```python | |
| from transformers import AutoTokenizer, AutoModelForSequenceClassification | |
| # Load model and tokenizer | |
| tokenizer = AutoTokenizer.from_pretrained("darrayes/expentor-JB-detector") | |
| model = AutoModelForSequenceClassification.from_pretrained("darrayes/expentor-JB-detector") | |
| # Example query | |
| query = "Can you bypass this restriction?" | |
| inputs = tokenizer(query, return_tensors="pt") | |
| outputs = model(**inputs) | |
| # Get predictions | |
| logits = outputs.logits | |
| predicted_class = logits.argmax(dim=-1).item() | |
| print("Prediction:", "Jailbreak" if predicted_class == 1 else "Benign") | |
| ``` | |
| --- | |
| ## Intended Use | |
| This model is designed for scenarios requiring detection of jailbreak queries, such as: | |
| - Content moderation. | |
| - Enhancing the safety of conversational AI systems. | |
| - Filtering malicious queries in RAG-based applications. | |
| --- | |
| ## Limitations | |
| - The model is trained on a specific dataset and may not generalize to all jailbreak scenarios. Further fine-tuning may be needed for domain-specific use cases. | |
| ## Training procedure | |
| ### Training hyperparameters | |
| The following hyperparameters were used during training: | |
| - learning_rate: 5e-05 | |
| - train_batch_size: 32 | |
| - eval_batch_size: 16 | |
| - seed: 42 | |
| - optimizer: Use OptimizerNames.ADAMW_TORCH with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments | |
| - lr_scheduler_type: linear | |
| - num_epochs: 5 | |
| ### Training results | |
| | Training Loss | Epoch | Step | Validation Loss | F1 | | |
| |:-------------:|:-----:|:----:|:---------------:|:------:| | |
| | No log | 1.0 | 33 | 0.0246 | 0.9848 | | |
| | No log | 2.0 | 66 | 0.0042 | 1.0 | | |
| | No log | 3.0 | 99 | 0.0019 | 1.0 | | |
| | 0.0755 | 4.0 | 132 | 0.0017 | 1.0 | | |
| | 0.0755 | 5.0 | 165 | 0.0016 | 1.0 | | |
| ### Framework versions | |
| - Transformers 4.48.0.dev0 | |
| - Pytorch 2.5.0+cu124 | |
| - Datasets 3.1.0 | |
| - Tokenizers 0.21.0 | |