|
--- |
|
language: |
|
- en |
|
license: mit |
|
base_model: prajjwal1/bert-tiny |
|
tags: |
|
- pytorch |
|
- BertForTokenClassification |
|
- named-entity-recognition |
|
- roberta-base |
|
- generated_from_trainer |
|
metrics: |
|
- recall |
|
- precision |
|
- f1 |
|
- accuracy |
|
model-index: |
|
- name: bert-tiny-ontonotes |
|
results: |
|
- task: |
|
type: token-classification |
|
metrics: |
|
- type: accuracy |
|
value: 0.9476 |
|
name: accuracy |
|
- type: precision |
|
value: 0.6817 |
|
name: precision |
|
- type: accuracy |
|
value: 0.7193 |
|
name: recall |
|
- type: accuracy |
|
value: 0.7 |
|
name: F1 |
|
datasets: |
|
- tner/ontonotes5 |
|
library_name: transformers |
|
pipeline_tag: token-classification |
|
--- |
|
|
|
<!-- 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. --> |
|
|
|
# bert-tiny-ontonotes |
|
|
|
This model is a fine-tuned version of [prajjwal1/bert-tiny](https://huggingface.co/prajjwal1/bert-tiny) on the [tner/ontonotes5](https://huggingface.co/datasets/tner/ontonotes5) dataset. |
|
It achieves the following results on the evaluation set: |
|
- Loss: 0.1917 |
|
- Recall: 0.7193 |
|
- Precision: 0.6817 |
|
- F1: 0.7000 |
|
- Accuracy: 0.9476 |
|
|
|
## How to use the Model |
|
|
|
### Using pipeline |
|
|
|
```python |
|
from transformers import pipeline |
|
import torch |
|
|
|
# Initiate the pipeline |
|
device = 0 if torch.cuda.is_available() else 'cpu' |
|
ner = pipeline("token-classification", "arnabdhar/bert-tiny-ontonotes", device=device) |
|
|
|
# use the pipeline |
|
input_text = "My name is Clara and I live in Berkeley, California." |
|
results = ner(input_text) |
|
``` |
|
|
|
|
|
## Intended uses & limitations |
|
|
|
This model is fine-tuned for **Named Entity Recognition** task and you can use the model as it is or can use this model as a base model for further fine tuning on your custom dataset. |
|
|
|
The following entities were fine-tuned on: |
|
CARDINAL, DATE, PERSON, NORP, GPE, LAW, PERCENT, ORDINAL, MONEY, WORK_OF_ART, FAC, TIME, QUANTITY, PRODUCT, LANGUAGE, ORG, LOC, EVENT |
|
|
|
|
|
## Training and evaluation data |
|
|
|
The dataset has 3 partitions, `train`, `validation` and `test`, all the 3 partitions were combined and then a 80:20 train-test split was made for finet uning process. The following `ID2LABEL` mapping was used. |
|
|
|
```json |
|
{ |
|
"0": "O", |
|
"1": "B-CARDINAL", |
|
"2": "B-DATE", |
|
"3": "I-DATE", |
|
"4": "B-PERSON", |
|
"5": "I-PERSON", |
|
"6": "B-NORP", |
|
"7": "B-GPE", |
|
"8": "I-GPE", |
|
"9": "B-LAW", |
|
"10": "I-LAW", |
|
"11": "B-ORG", |
|
"12": "I-ORG", |
|
"13": "B-PERCENT", |
|
"14": "I-PERCENT", |
|
"15": "B-ORDINAL", |
|
"16": "B-MONEY", |
|
"17": "I-MONEY", |
|
"18": "B-WORK_OF_ART", |
|
"19": "I-WORK_OF_ART", |
|
"20": "B-FAC", |
|
"21": "B-TIME", |
|
"22": "I-CARDINAL", |
|
"23": "B-LOC", |
|
"24": "B-QUANTITY", |
|
"25": "I-QUANTITY", |
|
"26": "I-NORP", |
|
"27": "I-LOC", |
|
"28": "B-PRODUCT", |
|
"29": "I-TIME", |
|
"30": "B-EVENT", |
|
"31": "I-EVENT", |
|
"32": "I-FAC", |
|
"33": "B-LANGUAGE", |
|
"34": "I-PRODUCT", |
|
"35": "I-ORDINAL", |
|
"36": "I-LANGUAGE" |
|
} |
|
``` |
|
|
|
## Training procedure |
|
|
|
The model was finetuned on Google Colab with a __NVIDIA T4__ GPU with 15GB of VRAM. It took around 5 minutes to fine tune and evaluate the model with 6000 steps of total training steps. For more details, you can look into the [Weights & Biases](https://wandb.ai/2wb2ndur/NER-ontonotes/runs/d93imv8j/overview?workspace=user-2wb2ndur) log history. |
|
|
|
### Training hyperparameters |
|
|
|
The following hyperparameters were used during training: |
|
- learning_rate: 8e-05 |
|
- train_batch_size: 32 |
|
- eval_batch_size: 160 |
|
- seed: 75241309 |
|
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08 |
|
- lr_scheduler_type: cosine |
|
- training_steps: 6000 |
|
|
|
### Training results |
|
|
|
| Training Loss | Epoch | Step | Validation Loss | Recall | Precision | F1 | Accuracy | |
|
|:-------------:|:-----:|:----:|:---------------:|:------:|:---------:|:------:|:--------:| |
|
| 0.4283 | 0.31 | 600 | 0.3864 | 0.4561 | 0.4260 | 0.4405 | 0.9058 | |
|
| 0.3214 | 0.63 | 1200 | 0.2865 | 0.5865 | 0.5485 | 0.5669 | 0.9265 | |
|
| 0.2886 | 0.94 | 1800 | 0.2439 | 0.6432 | 0.6165 | 0.6295 | 0.9354 | |
|
| 0.2511 | 1.25 | 2400 | 0.2233 | 0.6765 | 0.6250 | 0.6497 | 0.9389 | |
|
| 0.2224 | 1.56 | 3000 | 0.2088 | 0.6878 | 0.6642 | 0.6758 | 0.9433 | |
|
| 0.2181 | 1.88 | 3600 | 0.2001 | 0.7105 | 0.6684 | 0.6888 | 0.9451 | |
|
| 0.215 | 2.19 | 4200 | 0.1954 | 0.7140 | 0.6795 | 0.6963 | 0.9469 | |
|
| 0.1907 | 2.5 | 4800 | 0.1934 | 0.7169 | 0.6776 | 0.6967 | 0.9470 | |
|
| 0.209 | 2.82 | 5400 | 0.1918 | 0.7185 | 0.6812 | 0.6994 | 0.9475 | |
|
| 0.2073 | 3.13 | 6000 | 0.1917 | 0.7193 | 0.6817 | 0.7000 | 0.9476 | |
|
|
|
|
|
### Framework versions |
|
|
|
- Transformers 4.36.2 |
|
- Pytorch 2.1.0+cu121 |
|
- Datasets 2.15.0 |
|
- Tokenizers 0.15.0 |
|
|