--- 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: [] --- # 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