Even lemo commited on
Commit
86bec1d
·
1 Parent(s): 99d07e8

Update README with comprehensive NER model documentation

Browse files
Files changed (1) hide show
  1. README.md +159 -141
README.md CHANGED
@@ -1,199 +1,217 @@
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
  library_name: transformers
3
+ license: apache-2.0
4
+ base_model: bert-base-cased
5
+ tags:
6
+ - bert
7
+ - ner
8
+ - token-classification
9
+ - wikiann
10
+ metrics:
11
+ - precision
12
+ - recall
13
+ - f1
14
+ - accuracy
15
+ datasets:
16
+ - wikiann
17
+ language:
18
+ - en
19
+ model-index:
20
+ - name: bert-finetuned-ner-accelerate
21
+ results:
22
+ - task:
23
+ type: token-classification
24
+ name: Named Entity Recognition
25
+ dataset:
26
+ type: wikiann
27
+ name: WikiANN English
28
+ config: en
29
+ split: validation
30
+ metrics:
31
+ - type: precision
32
+ value: 0.8092
33
+ name: Precision
34
+ - type: recall
35
+ value: 0.8407
36
+ name: Recall
37
+ - type: f1
38
+ value: 0.8247
39
+ name: F1
40
+ - type: accuracy
41
+ value: 0.9250
42
+ name: Accuracy
43
  ---
44
 
45
+ # BERT Fine-tuned for Named Entity Recognition
46
 
47
+ ## Model Description
48
 
49
+ This model is a fine-tuned version of [bert-base-cased](https://huggingface.co/bert-base-cased) on the WikiANN (WikiNER) English dataset for Named Entity Recognition (NER). The model can identify and classify named entities in text into predefined categories.
50
 
51
+ ### Performance Metrics
52
 
53
+ The model achieves strong performance on the WikiANN English validation set:
54
+ - **F1 Score**: 82.47%
55
+ - **Precision**: 80.92%
56
+ - **Recall**: 84.07%
57
+ - **Accuracy**: 92.50%
58
 
59
+ ## Supported Entity Types
60
 
61
+ The model recognizes 3 main entity types with BIO tagging:
62
+ - **PER** (Person): Names of people
63
+ - **ORG** (Organization): Names of organizations, companies, institutions
64
+ - **LOC** (Location): Names of locations, cities, countries
65
 
66
+ ### Label Set
67
+ - `O`: Outside of any entity
68
+ - `B-PER`: Beginning of a person entity
69
+ - `I-PER`: Inside a person entity
70
+ - `B-ORG`: Beginning of an organization entity
71
+ - `I-ORG`: Inside an organization entity
72
+ - `B-LOC`: Beginning of a location entity
73
+ - `I-LOC`: Inside a location entity
74
 
75
+ ## How to Use
 
 
 
 
 
 
76
 
77
+ ### Using with Transformers Pipeline
78
 
79
+ ```python
80
+ from transformers import pipeline
81
 
82
+ # Load the NER pipeline
83
+ nlp = pipeline("ner", model="yiwenX/bert-finetuned-ner-accelerate")
 
84
 
85
+ # Example text
86
+ text = "Apple Inc. was founded by Steve Jobs in Cupertino, California."
87
 
88
+ # Get predictions
89
+ results = nlp(text)
90
+ print(results)
91
+ ```
92
 
93
+ ### Using with AutoModel
94
 
95
+ ```python
96
+ from transformers import AutoTokenizer, AutoModelForTokenClassification
97
+ import torch
98
 
99
+ # Load model and tokenizer
100
+ tokenizer = AutoTokenizer.from_pretrained("yiwenX/bert-finetuned-ner-accelerate")
101
+ model = AutoModelForTokenClassification.from_pretrained("yiwenX/bert-finetuned-ner-accelerate")
102
 
103
+ # Example text
104
+ text = "Apple Inc. was founded by Steve Jobs in Cupertino, California."
105
 
106
+ # Tokenize and predict
107
+ inputs = tokenizer(text, return_tensors="pt")
108
+ with torch.no_grad():
109
+ outputs = model(**inputs)
110
 
111
+ # Get predictions
112
+ predictions = torch.argmax(outputs.logits, dim=-1)
113
+ tokens = tokenizer.convert_ids_to_tokens(inputs["input_ids"][0])
114
 
115
+ # Map predictions to labels
116
+ label_list = model.config.id2label
117
+ entities = []
118
+ for token, pred in zip(tokens, predictions[0]):
119
+ if pred != 0: # 0 is 'O' (outside)
120
+ entities.append((token, label_list[pred.item()]))
121
 
122
+ print(entities)
123
+ ```
124
 
125
+ ## Intended Uses & Limitations
126
 
127
+ ### Intended Uses
128
+ - Extract named entities from English text
129
+ - Information extraction tasks
130
+ - Text preprocessing for downstream NLP applications
131
+ - Content analysis and categorization
132
 
133
+ ### Limitations
134
+ - The model is trained on WikiANN dataset, which may not generalize well to domain-specific texts
135
+ - Performance may vary on informal text (social media, chat messages)
136
+ - Limited to English language only
137
+ - Only recognizes PER, ORG, and LOC entity types
 
 
 
 
 
 
 
 
 
 
138
 
139
  ## Training Details
140
 
141
  ### Training Data
142
 
143
+ The model was trained on the **WikiANN (WikiNER) English dataset**, which contains:
144
+ - **Training samples**: 20,000
145
+ - **Validation samples**: 10,000
146
+ - **Test samples**: 10,000
147
 
148
+ WikiANN is a multilingual named entity recognition dataset derived from Wikipedia, providing annotated text with named entity labels.
149
 
150
  ### Training Procedure
151
 
 
 
 
 
 
 
 
152
  #### Training Hyperparameters
153
 
154
+ The following hyperparameters were used during training:
155
+ - **Learning rate**: 2e-05
156
+ - **Batch size**: 16 (both training and evaluation)
157
+ - **Number of epochs**: 3
158
+ - **Optimizer**: AdamW with betas=(0.9, 0.999) and epsilon=1e-08
159
+ - **LR scheduler**: Linear
160
+ - **Seed**: 42
161
 
162
+ #### Training Results
163
 
164
+ | Epoch | Training Loss | Validation Loss | Precision | Recall | F1 | Accuracy |
165
+ |:-----:|:-------------:|:---------------:|:---------:|:------:|:------:|:--------:|
166
+ | 1.0 | 0.3066 | 0.2636 | 78.23% | 81.86% | 80.00% | 91.89% |
167
+ | 2.0 | 0.2059 | 0.2566 | 79.60% | 83.37% | 81.44% | 92.42% |
168
+ | 3.0 | 0.1455 | 0.2777 | 80.92% | 84.07% | 82.47% | 92.50% |
169
 
170
  ## Evaluation
171
 
172
+ ### Testing Data
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
173
 
174
+ The model was evaluated on the WikiANN English validation set (10,000 samples).
175
 
176
+ ### Metrics
177
 
178
+ The model is evaluated using standard NER metrics:
179
+ - **Precision**: The percentage of predicted entities that are correct
180
+ - **Recall**: The percentage of actual entities that were correctly identified
181
+ - **F1 Score**: The harmonic mean of precision and recall
182
+ - **Accuracy**: Token-level classification accuracy
183
 
184
+ ### Results Summary
185
 
186
+ Final model performance (Epoch 3):
187
+ - **F1 Score**: 82.47%
188
+ - **Precision**: 80.92%
189
+ - **Recall**: 84.07%
190
+ - **Accuracy**: 92.50%
191
 
 
192
 
 
193
 
194
+ ## Framework Versions
195
 
196
+ - **Transformers**: 4.56.0
197
+ - **PyTorch**: 2.8.0+cu128
198
+ - **Datasets**: 4.0.0
199
+ - **Tokenizers**: 0.22.0
200
 
201
+ ## Citation
202
 
203
+ If you use this model in your research, please cite:
204
 
205
+ ```bibtex
206
+ @misc{bert-finetuned-ner-accelerate,
207
+ author = {yiwenX},
208
+ title = {BERT Fine-tuned for Named Entity Recognition},
209
+ year = {2024},
210
+ publisher = {HuggingFace},
211
+ url = {https://huggingface.co/yiwenX/bert-finetuned-ner-accelerate}
212
+ }
213
+ ```
214
 
215
+ ## License
216
 
217
+ This model is licensed under the Apache 2.0 License.