File size: 5,315 Bytes
db5d417
0d2144a
b74ae5f
 
 
 
db5d417
b74ae5f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81a33c1
 
b74ae5f
 
 
 
 
81a33c1
 
 
 
b74ae5f
 
81a33c1
 
b74ae5f
81a33c1
 
b74ae5f
 
 
 
 
 
81a33c1
b74ae5f
 
 
121fa07
b74ae5f
81a33c1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c430890
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
---
license: unknown
language:
- en
library_name: transformers
pipeline_tag: text-classification
---
# Distil BERT Base Uncased Text Classification Model

This repository contains a Distil BERT Base Uncased model that has been fine-tuned for a custom text classification use case. The model is designed to classify text into nine different classes based on the following categories:

1. **Neutral**: This class is for any other sort of sentences that do not fall into the specific categories below.

2. **Play**: Use this class to classify the intent of the user to listen to music or audio.

3. **Visit**: This class is intended for classifying the user's intent to visit or open a website in a web browser.

4. **ImgReco**: Use this class to make the bot process an image for image-to-text conversion or any image recognition tasks.

5. **Close**: For classifying sentences that indicate the user's intent to close a specific application or software.

6. **Web Search**: This class is designed to identify the user's intent to search the internet for information.

7. **Open**: Use this class for classifying the intent of opening a specific app or software.

8. **ImgGen**: This class is for sentences related to text-to-image processing or image generation tasks.

9. **Math**: Classify sentences that include mathematical equations or expressions using this category.

## Model Details

- **Model Architecture**: Distil BERT Base Uncased
- **Number of Classes**: 9
- **Training Data**: The model was trained on a custom dataset for text classification tasks related to the mentioned categories.

## Usage

You can use this fine-tuned Distil BERT model for text classification in your own applications or projects. Here's a simple example of how to use the model in Python:

```python
from transformers import DistilBertTokenizer, DistilBertForSequenceClassification
import torch

# Load the pre-trained model and tokenizer
tokenizer = DistilBertTokenizer.from_pretrained("Meshwa/Distill-Bert-Automation-Command-Classification")
model = DistilBertForSequenceClassification.from_pretrained("Meshwa/Distill-Bert-Automation-Command-Classification")

# Prepare the input text
text = "Your input text goes here."

# Tokenize the text and classify it
input_ids = tokenizer(text, padding=True, truncation=True, max_length=512, return_tensors="pt")
output = model(**input_ids)
logits = outputs[0].softmax(1)
probabilities = probs.argmax()

# Get the class with the highest probability
pred_label = model.config.id2label[pred_label_idx.item()]
pred_score = probs.max().item()

# The pred_label variable will contain the predicted class label.
print(f"'label': {pred_label}, 'score': {pred_score}")
```

Remember to replace `"your_model_directory_path"` with the actual path to the fine-tuned model on your system.

## Training

I used my custom labeled dataset for finetuning this model, the dataset contained 700k samples of labled sentences, containing 342k unique sentences and some little bit of synthetic data. I used [Gretel AI](https://gretel.ai/) for generating the synthetic data.

## License

Please refer to the licenses associated with the Distil BERT Base Uncased model and any other relevant libraries.

If you have any questions or need further assistance, please feel free to reach out. [Email Me](mailto:[email protected])

# Model Stats after Finetuning
## After Training is complete

| Epoch | Training Loss | Validation Loss | Accuracy | F1       | Precision | Recall    |
|-------|---------------|-----------------|----------|----------|-----------|-----------|
| 1     | 0.004100      | 0.002462        | 0.999403 | 0.999114 | 0.999298  | 0.998933  |
| 2     | 0.002000      | 0.002127        | 0.999372 | 0.999031 | 0.999202  | 0.998863  |
| 3     | 0.001200      | 0.001835        | 0.999478 | 0.999172 | 0.999349  | 0.998999  |


## After Evaluation

|          | eval_loss | eval_Accuracy | eval_F1  | eval_Precision | eval_Recall |
|----------|-----------|---------------|----------|----------------|------------|
| train    | 0.000917  | 0.999567      | 0.999280 | 0.999474       | 0.999089   |
| val      | 0.001835  | 0.999478      | 0.999172 | 0.999349       | 0.998999   |
| test     | 0.002225  | 0.999369      | 0.999051 | 0.999203       | 0.998901   |


# BibTeX entry and citation info of the initial Distil-Bert-Base-Uncased
```
@article{Sanh2019DistilBERTAD,
  title={DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter},
  author={Victor Sanh and Lysandre Debut and Julien Chaumond and Thomas Wolf},
  journal={ArXiv},
  year={2019},
  volume={abs/1910.01108}
}
```

## Citation

If you use the fine-tuned DistilBERT model provided in this repository, please cite it as follows:

```
@article{Meshwa2023,
  title={Fine-Tuned DistilBERT for Text Classification},
  author={Meshwa},
  journal={Hugging Face Model Hub},
  year={2023},
  url={https://huggingface.co/Meshwa/Distill-Bert-Automation-Command-Classification}
```

Meshwa. (2023). Fine-Tuned DistilBERT for Text Classification. Hugging Face Model Hub. URL: [https://huggingface.co/Meshwa/Distill-Bert-Automation-Command-Classification](https://huggingface.co/Meshwa/Distill-Bert-Automation-Command-Classification)

I appreciate your acknowledgment if you find this model useful in your work.