ullahhafeez321 commited on
Commit
bcffa22
·
verified ·
1 Parent(s): 3b75559

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +150 -135
README.md CHANGED
@@ -1,199 +1,214 @@
1
  ---
2
- library_name: transformers
3
- tags: []
4
  ---
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
- # Model Card for Model ID
7
 
8
- <!-- Provide a quick summary of what the model is/does. -->
9
 
 
 
10
 
 
11
 
12
  ## Model Details
13
 
14
- ### Model Description
15
-
16
- <!-- Provide a longer summary of what this model is. -->
17
-
18
- This is the model card of a 🤗 transformers model that has been pushed on the Hub. This model card has been automatically generated.
19
-
20
- - **Developed by:** [More Information Needed]
21
- - **Funded by [optional]:** [More Information Needed]
22
- - **Shared by [optional]:** [More Information Needed]
23
- - **Model type:** [More Information Needed]
24
- - **Language(s) (NLP):** [More Information Needed]
25
- - **License:** [More Information Needed]
26
- - **Finetuned from model [optional]:** [More Information Needed]
27
-
28
- ### Model Sources [optional]
29
-
30
- <!-- Provide the basic links for the model. -->
31
-
32
- - **Repository:** [More Information Needed]
33
- - **Paper [optional]:** [More Information Needed]
34
- - **Demo [optional]:** [More Information Needed]
35
-
36
- ## Uses
37
-
38
- <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
39
-
40
- ### Direct Use
41
-
42
- <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
43
-
44
- [More Information Needed]
45
-
46
- ### Downstream Use [optional]
47
-
48
- <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
49
-
50
- [More Information Needed]
51
-
52
- ### Out-of-Scope Use
53
-
54
- <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
55
 
56
- [More Information Needed]
57
 
58
- ## Bias, Risks, and Limitations
59
 
60
- <!-- This section is meant to convey both technical and sociotechnical limitations. -->
61
 
62
- [More Information Needed]
 
 
 
 
 
63
 
64
- ### Recommendations
65
 
66
- <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
 
67
 
68
- Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
69
 
70
- ## How to Get Started with the Model
71
 
72
- Use the code below to get started with the model.
73
 
74
- [More Information Needed]
 
 
 
 
 
 
 
 
 
 
75
 
76
- ## Training Details
77
-
78
- ### Training Data
79
-
80
- <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
81
-
82
- [More Information Needed]
83
-
84
- ### Training Procedure
85
-
86
- <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
87
-
88
- #### Preprocessing [optional]
89
-
90
- [More Information Needed]
91
-
92
-
93
- #### Training Hyperparameters
94
-
95
- - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
96
-
97
- #### Speeds, Sizes, Times [optional]
98
-
99
- <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
100
-
101
- [More Information Needed]
102
 
103
  ## Evaluation
104
 
105
- <!-- This section describes the evaluation protocols and provides the results. -->
106
-
107
- ### Testing Data, Factors & Metrics
108
-
109
- #### Testing Data
110
-
111
- <!-- This should link to a Dataset Card if possible. -->
112
-
113
- [More Information Needed]
114
-
115
- #### Factors
116
 
117
- <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
 
 
 
 
118
 
119
- [More Information Needed]
120
 
121
- #### Metrics
122
 
123
- <!-- These are the evaluation metrics being used, ideally with a description of why. -->
124
 
125
- [More Information Needed]
126
 
127
- ### Results
 
 
128
 
129
- [More Information Needed]
130
 
131
- #### Summary
 
 
132
 
 
133
 
 
134
 
135
- ## Model Examination [optional]
136
 
137
- <!-- Relevant interpretability work for the model goes here -->
 
138
 
139
- [More Information Needed]
140
 
141
- ## Environmental Impact
 
142
 
143
- <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
 
 
 
 
 
144
 
145
- Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
 
146
 
147
- - **Hardware Type:** [More Information Needed]
148
- - **Hours used:** [More Information Needed]
149
- - **Cloud Provider:** [More Information Needed]
150
- - **Compute Region:** [More Information Needed]
151
- - **Carbon Emitted:** [More Information Needed]
152
 
153
- ## Technical Specifications [optional]
154
 
155
- ### Model Architecture and Objective
156
 
157
- [More Information Needed]
158
 
159
- ### Compute Infrastructure
 
 
 
 
160
 
161
- [More Information Needed]
162
 
163
- #### Hardware
 
 
164
 
165
- [More Information Needed]
 
166
 
167
- #### Software
168
 
169
- [More Information Needed]
 
 
 
 
 
170
 
171
- ## Citation [optional]
172
 
173
- <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
174
 
175
- **BibTeX:**
176
 
177
- [More Information Needed]
 
 
 
 
 
178
 
179
- **APA:**
180
 
181
- [More Information Needed]
 
 
 
 
182
 
183
- ## Glossary [optional]
184
 
185
- <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
 
 
 
 
 
 
186
 
187
- [More Information Needed]
188
 
189
- ## More Information [optional]
190
 
191
- [More Information Needed]
 
 
 
 
 
 
 
 
192
 
193
- ## Model Card Authors [optional]
194
 
195
- [More Information Needed]
196
 
197
- ## Model Card Contact
198
 
199
- [More Information Needed]
 
1
  ---
 
 
2
  ---
3
+ language:
4
+ - en
5
+ license: mit
6
+ library_name: transformers
7
+ pipeline_tag: text-classification
8
+ tags:
9
+ - bert
10
+ - sentiment-analysis
11
+ - text-classification
12
+ - imdb
13
+ - pytorch
14
+ - transformers
15
 
16
+ # BERT Sentiment Classifier
17
 
18
+ This repository contains a fine-tuned BERT model for **English movie review sentiment classification**. The model classifies text into two sentiment categories:
19
 
20
+ - **POSITIVE** — The review expresses a positive opinion.
21
+ - **NEGATIVE** — The review expresses a negative opinion.
22
 
23
+ The model is based on the pretrained `google-bert/bert-base-uncased` architecture and was fine-tuned using the IMDb movie reviews dataset.
24
 
25
  ## Model Details
26
 
27
+ | Property | Description |
28
+ |---|---|
29
+ | Model architecture | BERT Base Uncased |
30
+ | Base model | `google-bert/bert-base-uncased` |
31
+ | Task | Sentiment Classification |
32
+ | Number of classes | 2 |
33
+ | Positive label | 1 |
34
+ | Negative label | 0 |
35
+ | Maximum sequence length | 192 tokens |
36
+ | Framework | PyTorch |
37
+ | Library | Hugging Face Transformers |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
 
39
+ ## Dataset
40
 
41
+ The model was fine-tuned using the [IMDb Movie Reviews Dataset](https://huggingface.co/datasets/stanfordnlp/imdb).
42
 
43
+ The notebook uses the following data split:
44
 
45
+ | Dataset | Number of samples |
46
+ |---|---:|
47
+ | Training | 8,000 |
48
+ | Validation | 1,000 |
49
+ | Testing | 2,000 |
50
+ | **Total** | **11,000** |
51
 
52
+ The IMDb dataset contains movie reviews with binary sentiment labels:
53
 
54
+ - `0`: Negative
55
+ - `1`: Positive
56
 
57
+ The training data is used to fine-tune the model, validation data is used to evaluate training progress and select the best checkpoint, and the separate test set is used for final evaluation.
58
 
59
+ ## Training Configuration
60
 
61
+ The model was fine-tuned using the following configuration:
62
 
63
+ | Parameter | Value |
64
+ |---|---|
65
+ | Base learning model | BERT Base Uncased |
66
+ | Epochs | 3 |
67
+ | Batch size | 16 |
68
+ | Learning rate | 2e-5 |
69
+ | Weight decay | 0.01 |
70
+ | Warmup steps | 100 |
71
+ | Maximum sequence length | 192 |
72
+ | Random seed | 42 |
73
+ | Best checkpoint metric | Validation accuracy |
74
 
75
+ The pretrained BERT encoder provides contextual language representations. A two-class classification head is added and fine-tuned for sentiment prediction.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
 
77
  ## Evaluation
78
 
79
+ The notebook evaluates the model using:
 
 
 
 
 
 
 
 
 
 
80
 
81
+ - **Accuracy:** Measures the percentage of correctly classified reviews.
82
+ - **Precision:** Measures how many predicted positive examples are actually positive.
83
+ - **Recall:** Measures how many actual positive examples the model identifies.
84
+ - **F1-score:** Combines precision and recall.
85
+ - **Confusion Matrix:** Shows correct and incorrect predictions for both classes.
86
 
87
+ Final test metrics are produced by running the evaluation cells in the notebook. No numerical performance results are stated here because they depend on the actual training run.
88
 
89
+ ## Usage
90
 
91
+ You can load this model directly using Hugging Face Transformers.
92
 
93
+ ### Install dependencies
94
 
95
+ ```bash
96
+ pip install transformers torch
97
+ ```
98
 
99
+ ### Load the model
100
 
101
+ ```python
102
+ import torch
103
+ from transformers import AutoTokenizer, AutoModelForSequenceClassification
104
 
105
+ MODEL_NAME = "ullahhafeez321/bert-sentiment-classifier"
106
 
107
+ tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
108
 
109
+ model = AutoModelForSequenceClassification.from_pretrained(MODEL_NAME)
110
 
111
+ model.eval()
112
+ ```
113
 
114
+ ### Make a prediction
115
 
116
+ ```python
117
+ def predict_sentiment(text):
118
 
119
+ inputs = tokenizer(
120
+ text,
121
+ return_tensors="pt",
122
+ truncation=True,
123
+ max_length=192
124
+ )
125
 
126
+ with torch.inference_mode():
127
+ outputs = model(**inputs)
128
 
129
+ probabilities = torch.softmax(
130
+ outputs.logits,
131
+ dim=-1
132
+ )[0]
 
133
 
134
+ predicted_id = int(probabilities.argmax())
135
 
136
+ sentiment = model.config.id2label[predicted_id]
137
 
138
+ confidence = float(probabilities[predicted_id]) * 100
139
 
140
+ return {
141
+ "text": text,
142
+ "sentiment": sentiment,
143
+ "confidence": round(confidence, 2)
144
+ }
145
 
 
146
 
147
+ result = predict_sentiment(
148
+ "This movie was excellent. I really enjoyed it!"
149
+ )
150
 
151
+ print(result)
152
+ ```
153
 
154
+ ### Example predictions
155
 
156
+ | Input review | Expected sentiment |
157
+ |---|---|
158
+ | This movie was absolutely wonderful! | POSITIVE |
159
+ | This movie was terrible and boring. | NEGATIVE |
160
+ | I loved every moment of this film. | POSITIVE |
161
+ | I hated this movie. It was a waste of time. | NEGATIVE |
162
 
163
+ These are illustrative examples, not guaranteed outputs for every sentence.
164
 
165
+ ## Applications
166
 
167
+ This model can be integrated into:
168
 
169
+ - Sentiment analysis websites
170
+ - Movie review classification applications
171
+ - Text classification projects
172
+ - Python applications
173
+ - Streamlit applications
174
+ - Educational NLP projects
175
 
176
+ ## Limitations
177
 
178
+ - The model was fine-tuned on English IMDb movie reviews.
179
+ - It is primarily intended for movie-review sentiment classification.
180
+ - It may not perform equally well on other domains, such as product reviews, news, or social media.
181
+ - Sarcasm, irony, ambiguous language, and mixed sentiment can be difficult to classify.
182
+ - Confidence scores are model probabilities, not guarantees of correctness.
183
 
184
+ ## Technologies Used
185
 
186
+ - Python
187
+ - PyTorch
188
+ - Hugging Face Transformers
189
+ - Hugging Face Datasets
190
+ - Scikit-learn
191
+ - IMDb Dataset
192
+ - Google BERT Base Uncased
193
 
194
+ ## Training Notebook
195
 
196
+ The training notebook includes:
197
 
198
+ 1. Library installation and environment setup.
199
+ 2. IMDb dataset loading and splitting.
200
+ 3. Pretrained BERT tokenizer and model initialization.
201
+ 4. Dataset tokenization.
202
+ 5. Model fine-tuning.
203
+ 6. Validation and test evaluation.
204
+ 7. Classification report and confusion matrix.
205
+ 8. Custom sentiment prediction.
206
+ 9. Saving and uploading the model to Hugging Face.
207
 
208
+ ## Model Repository
209
 
210
+ **Hugging Face:** https://huggingface.co/ullahhafeez321/bert-sentiment-classifier
211
 
212
+ ## License
213
 
214
+ MIT License.