Token Classification
Transformers
TensorBoard
Safetensors
PyTorch
English
bert
BertForTokenClassification
named-entity-recognition
roberta-base
Generated from Trainer
Eval Results (legacy)
Instructions to use arnabdhar/bert-tiny-ontonotes with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use arnabdhar/bert-tiny-ontonotes with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("token-classification", model="arnabdhar/bert-tiny-ontonotes")# Load model directly from transformers import AutoTokenizer, AutoModelForTokenClassification tokenizer = AutoTokenizer.from_pretrained("arnabdhar/bert-tiny-ontonotes") model = AutoModelForTokenClassification.from_pretrained("arnabdhar/bert-tiny-ontonotes", device_map="auto") - Notebooks
- Google Colab
- Kaggle
| 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 | |