MultiCoNER 2023 Fine-Grained Multilingual NER (mDeBERTa-v3-base)

This model is a fine-grained Multilingual Named Entity Recognition (NER) model fine-tuned on the prestigious MultiCoNER 2023 (v2) benchmark suite across 12+ languages.

Built on top of microsoft/mdeberta-v3-base, it targets complex, fine-grained entities in noisy, low-context, and short text domains across 33 fine-grained categories (67 BIO output logits).

Developed by Rishabh Kumar.


1. Model Description & Architecture

  • Base Model: microsoft/mdeberta-v3-base (278M parameters, 12 layers, 768 hidden size, 250k multilingual vocabulary)
  • Fine-Tuning Method: LoRA (r=32, alpha=32, target modules: query_proj, key_proj, value_proj, intermediate.dense, output.dense) merged into standalone base weights.
  • Precision: FP16 (torch.float16, ~530 MB footprint)
  • Task: Multilingual Fine-Grained Token Classification / Complex NER
  • Languages Supported (12+): English (en), Spanish (es), French (fr), German (de), Italian (it), Portuguese (pt), Swedish (sv), Ukrainian (uk), Chinese (zh), Bengali (bn), Hindi (hi), Farsi (fa), and multilingual mixed (MULTI).

2. Dataset & Preprocessing Pipeline

A. Source Data & Splits

  • Source: SemEval-2023 Task 2 / MultiCoNER v2 (MultiCoNER/multiconer_v2).
  • Train Set: 170,824 sentences (covering 12 language subsets + mixed multilingual).
  • Validation Set: 13,598 sentences.
  • Test Set: 1,991,359 sentences.

B. Preprocessing & Formatting

  1. CoNLL Standardization: Raw multi-column annotations are cleaned into standard 2-column CoNLL format (<token> <tag>), stripping metadata headers (# and -DOCSTART-) with blank lines preserving sentence boundaries.
  2. Subword Token Alignment: Inputs are tokenized using mDeBERTa-v3-base SentencePiece subword tokenization (add_prefix_space=True). The ground-truth BIO entity label is assigned to the initial subword token of each word, while trailing subword tokens receive -100 PyTorch cross-entropy masking to ensure entity-level evaluation.
  3. Zero Tag Loss: Dynamic label mapping extracts all 67 BIO tags (id_to_label.json and label_to_id.json) directly during preprocessing.

3. MultiCoNER 2023 Fine-Grained Taxonomy (33 Classes / 67 BIO Tags)

The MultiCoNER v2 taxonomy focuses on granular subtypes across six major super-types:

Super-Type Fine-Grained Entity Classes
Person (PER) Artist, Athlete, Cleric, Politician, Scientist, SportsManager, OtherPER
Organization (ORG) AerospaceManufacturer, CarManufacturer, MusicalGRP, PrivateCorp, PublicCorp, SportsGRP, ORG
Location (LOC) Facility, HumanSettlement, Station, OtherLOC
Products & Creative Works (PROD) ArtWork, MusicalWork, VisualWork, WrittenWork, Software, Clothing, Drink, Food, Vehicle, OtherPROD
Medical & Health (MED) AnatomicalStructure, Disease, MedicalProcedure, Medication/Vaccine, Symptom

4. Training Results & Metrics

The model was fine-tuned for 5 epochs (~53.3k steps) using AdamW (lr=2e-5, linear scheduler, effective batch size 16).

Validation Performance (Best Checkpoint - Epoch 5)

Metric Score
Validation Entity F1 0.4839
Validation Precision 0.4732
Validation Recall 0.4951
Validation Accuracy 0.8951
Validation Loss 0.2616

Per-Epoch Progression

Epoch Step Precision Recall Entity F1 Accuracy Loss
1 10,677 31.71% 33.66% 32.65% 86.91% 0.3790
2 21,354 40.54% 44.28% 42.33% 88.13% 0.2995
3 32,031 44.67% 45.80% 45.23% 88.93% 0.2764
4 42,708 46.89% 49.05% 47.94% 89.45% 0.2670
5 53,385 47.32% 49.51% 48.39% 89.51% 0.2616

5. How to Use

Quick Inference via Hugging Face Pipeline

from transformers import pipeline

ner = pipeline(
    "token-classification",
    model="Rishabh157/multiconer-multilingual-ner-mdeberta",
    aggregation_strategy="simple"
)

text = "The European Space Agency launched the Ariane 5 rocket from Kourou."
entities = ner(text)

for entity in entities:
    print(f"{entity['word']:<25} | {entity['entity_group']:<20} | Score: {entity['score']:.4f}")

PyTorch Direct Usage

import torch
from transformers import AutoTokenizer, AutoModelForTokenClassification

model_name = "Rishabh157/multiconer-multilingual-ner-mdeberta"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForTokenClassification.from_pretrained(model_name)

text = "El Real Madrid ganó la final de la UEFA Champions League en París."
inputs = tokenizer(text, return_tensors="pt")

with torch.no_grad():
    outputs = model(**inputs)
    predictions = torch.argmax(outputs.logits, dim=2)

tokens = tokenizer.convert_ids_to_tokens(inputs["input_ids"][0])
labels = [model.config.id2label[p.item()] for p in predictions[0]]

for token, label in zip(tokens, labels):
    if label != "O":
        print(f"{token:<20} -> {label}")

6. Citation

@misc{kumar2026multiconer,
  author = {Rishabh Kumar},
  title = {MultiCoNER 2023 Fine-Grained Multilingual NER with mDeBERTa-v3},
  year = {2026},
  publisher = {Hugging Face},
  howpublished = {\url{https://huggingface.co/Rishabh157/multiconer-multilingual-ner-mdeberta}}
}
Downloads last month
11
Safetensors
Model size
0.3B params
Tensor type
F16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Rishabh157/multiconer-multilingual-ner-mdeberta

Adapter
(16)
this model

Dataset used to train Rishabh157/multiconer-multilingual-ner-mdeberta