ner_classifier_v2

This model is a fine-tuned version of 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

# 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
#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"])
  1. Example for making predictions
      #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
Downloads last month
36
Safetensors
Model size
0.1B params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for DeepNeural/ner_classifier_v2

Finetuned
(5902)
this model