| | --- |
| | library_name: transformers |
| | license: apache-2.0 |
| | base_model: bert-base-uncased |
| | tags: |
| | - generated_from_trainer |
| | metrics: |
| | - f1 |
| | model-index: |
| | - name: ner_classifier_v2 |
| | results: [] |
| | --- |
| | |
| | <!-- 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. --> |
| |
|
| | # ner_classifier_v2 |
| |
|
| | This model is a fine-tuned version of [bert-base-uncased](https://huggingface.co/bert-base-uncased) on an unknown dataset. |
| | It achieves the following results on the evaluation set: |
| | - Loss: 0.3338 |
| | - F1: 0.8406 |
| |
|
| | ## Model description |
| |
|
| | The DeepNeural NER-II model is designed to identify multiple enitities e.g. people, objects, organization etc. in textual medical documents. |
| | This clinical support model is one of many to be released, and is a crucial aspect of clinical support systems. |
| |
|
| | ## Intended uses & limitations |
| |
|
| | The model is meant to be used for research and development purposes by Data Scientists, ML & Software Engineers for the development of |
| | NER applications capable of identifying enitities in medical EHR systems to augment patient health processing. |
| |
|
| | ### Training hyperparameters |
| |
|
| | The following hyperparameters were used during training: |
| | - learning_rate: 5e-05 |
| | - train_batch_size: 24 |
| | - eval_batch_size: 24 |
| | - seed: 42 |
| | - optimizer: Use OptimizerNames.ADAMW_TORCH_FUSED with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments |
| | - lr_scheduler_type: linear |
| | - num_epochs: 3 |
| | |
| | ### Training results |
| | |
| | | Training Loss | Epoch | Step | Validation Loss | F1 | |
| | |:-------------:|:-----:|:----:|:---------------:|:------:| |
| | | 0.1708 | 1.0 | 834 | 0.2817 | 0.8212 | |
| | | 0.1305 | 2.0 | 1668 | 0.2822 | 0.8354 | |
| | | 0.07 | 3.0 | 2502 | 0.3338 | 0.8406 | |
| | |
| | ### Loading the model |
| | ```python |
| | # Use a pipeline as a high-level helper |
| | from transformers import pipeline |
| | |
| | pipe = pipeline('token-classification', model="DeepNeural/ner_classifier_v2") |
| | |
| | # Load model directly |
| | from transformers import AutoTokenizer, AutoModelForTokenClassification |
| | |
| | tokenizer = AutoTokenizer.from_pretrained('DeepNeural/ner_classifier_v2') |
| | model = AutoModelForTokenClassification.from_pretrained('DeepNeural/ner_classifier_v2') |
| | |
| | ``` |
| | ### Making predictions |
| | |
| | 1. Preparing the model |
| | ```python |
| | #Creating an easy tags function |
| | #Custom configured model needs improvement, let's train it |
| | def tag_text(text, tags, model, tokenizer) -> pd.DataFrame: |
| | #Get tokens with special characters |
| | tokens = tokenizer(text).tokens() |
| | #Encode the sequence into IDs |
| | input_ids = tokenizer(text, return_tensors="pt").input_ids.to(device) |
| | #Get predictions as a distribution over 7 classes |
| | outputs = model(input_ids)[0] |
| | #Take argmax to get most likely class per token |
| | predictions = torch.argmax(outputs, dim=2) |
| | #Convert to DataFrame |
| | preds = [ner_tags.names[p] for p in predictions[0].cpu().numpy()] |
| | return pd.DataFrame([tokens, preds], index=["Tokens", "Tags"]) |
| | |
| | ``` |
| | |
| | 2. Example for making predictions |
| | ```python |
| | #Testing the model |
| | dummy_text = "DeepNeural is an organization seeking to revolutionize healthcare" |
| | tag_text(dummy_text, ner_tags, trainer.model, tokenizer) |
| | ``` |
| | ### Framework versions |
| | |
| | - Transformers 4.56.2 |
| | - Pytorch 2.8.0+cu126 |
| | - Datasets 4.0.0 |
| | - Tokenizers 0.22.1 |
| |
|