/ Модель

Характеристики

Контекст
512 токенов
Параметры
305 млн
Лицензия
Apache 2.0
Архитектура
bert · dense
Базовая модель
IndicBERTv2-MLM-only
Опубликована
24 мар 2026

pii-model-indicv2

Разметка токеновТекст → label8 профессий

Дообученная BERT-модель выявляет 31 тип персональных данных в английском, хинди, хинглише и смешанном тексте для последующего маскирования.

93скачиваний за 30 дней0лайковвеса обновлены24 мар 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Модель hiteshwadhwani/pii-model-indicv2 — дообученная модель классификации токенов для выявления персональных данных (PII) в английском и индийских языках. Она создана на базе ai4bharat/IndicBERTv2-MLM-only и предназначена для обнаружения и последующего маскирования имён, адресов, телефонов, электронной почты и других типов чувствительных данных. Модель принимает текст на английском, хинди письмом деванагари, хинглиш и в смешанном написании деванагари и английского; поддерживает 31 тип сущностей. Архитектура — BERT для классификации токенов, размер — 305,2 млн параметров, контекст — до 512 токенов.

В карточке указаны общий F1 0,9497, точность 0,9464 и полнота 0,9530. Модель подходит для проверки текстов перед сохранением или передачей, а также для автоматизированной редакции документов и сообщений. Качество ниже для сущности SEX и адресов типа SECONDARYADDRESS; задержка выше, чем у IndicBERT v1. Лучше всего модель подходит для индийских и американских шаблонов персональных данных. Лицензия — Apache-2.0.

Сценарии применения

  • поиск имён и адресов в англоязычных документах
  • обнаружение телефонов и электронной почты в сообщениях на хинди
  • выявление персональных данных в хинглиш-переписке
  • поиск чувствительных сущностей в смешанном тексте на деванагари и английском
  • предварительная очистка текста перед сохранением или передачей

Ограничения

Слабее распознаются сущности SEX и SECONDARYADDRESS; задержка выше, чем у IndicBERT v1. Модель лучше подходит для индийских и американских шаблонов персональных данных.

Для каких профессий подходит8

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

PII Detection Model — IndicBERTv2

A token classification model for detecting and redacting Personally Identifiable Information (PII) in English, Hindi, Hinglish, and Devanagari text.

Built on ai4bharat/IndicBERTv2-MLM-only — a 278M parameter BERT model pretrained on 20.9B tokens across 24 Indian languages.

Supported Languages

  • English — names, addresses, phone numbers, SSN, etc.
  • Hindi (Devanagari) — राजेश कुमार, मुंबई, बीस हज़ार रुपये, पंद्रह मार्च
  • Hinglish — "Mera naam Rajesh hai aur main Mumbai mein rehta hoon"
  • Mixed Devanagari + English — "मेरा phone number 9876543210 है"

Entity Types (31)

EntityDescriptionExample
FIRSTNAMEFirst nameRajesh, राजेश, John
LASTNAMELast nameKumar, कुमार, Smith
MIDDLENAMEMiddle nameKumar
PREFIXTitle/prefixMr, श्री, Dr, श्रीमती
GENDERGendermale, female
SEXSexM, F
AGEAge35
DOBDate of birth15/03/1990
DATEGeneral dateपंद्रह मार्च, March fifteenth
EMAILEmail addresspriya@gmail.com
PHONENUMBERPhone number+91 98765 43210
CITYCityMumbai, मुंबई, Boston
STATEStateMaharashtra, महाराष्ट्र
COUNTYCountyCook County
ZIPCODEZIP/PIN code400001, 02101
STREETStreet nameMG Road, Oak Avenue
BUILDINGNUMBERBuilding number42
SECONDARYADDRESSApt/SuiteFlat 301
COMPANYNAMECompanyInfosys, टाटा कंसल्टेंसी
ACCOUNTNUMBERAccount number9876543210
ACCOUNTNAMEAccount nameTata Consultancy
CREDITCARDNUMBERCredit card4111-1111-1111-1111
CREDITCARDCVVCVV123
CREDITCARDISSUERCard issuerVisa, HDFC
SSNSSN/PAN/Aadhaar123-45-6789, ABCDE1234F
IBANIBANIN89UTIB00001234567890
PINATM/Security PIN4098
PASSWORDPasswordS3cur3P@ss!
USERNAMEUsernamemdavis
URLURLwww.example.com
AMOUNTMoney amount50000, बीस हज़ार रुपये

Usage

from transformers import AutoTokenizer, AutoModelForTokenClassification, pipeline

model = AutoModelForTokenClassification.from_pretrained("hiteshwadhwani/pii-model-indicv2")
tokenizer = AutoTokenizer.from_pretrained("hiteshwadhwani/pii-model-indicv2")

ner = pipeline("ner", model=model, tokenizer=tokenizer, aggregation_strategy="first")

# English
results = ner("Mr John Smith lives at 456 Oak Avenue Boston")

# Hinglish
results = ner("Mera naam Rajesh Kumar hai aur main Mumbai mein rehta hoon")

# Hindi (Devanagari)
results = ner("मेरा नाम राजेश कुमार है और मैं मुंबई में रहता हूं")

# Hindi amounts and dates in words
results = ner("आपके क्रेडिट कार्ड के बीस हज़ार रूपये शुल्क लंबित हैं, जो पंद्रह मार्च को देना था।")

for entity in results:
    if entity["entity_group"] != "O":
        print(f"{entity['word']} → {entity['entity_group']} ({entity['score']:.2f})")

Redaction Example

def redact_pii(text, ner_pipeline, threshold=0.5):
    results = ner_pipeline(text)
    entities = [r for r in results if r["score"] >= threshold and r["entity_group"] != "O"]
    entities.sort(key=lambda x: x["start"])

    merged = []
    for ent in entities:
        label = ent["entity_group"]
        if merged and merged[-1]["label"] == label and ent["start"] <= merged[-1]["end"] + 1:
            merged[-1]["end"] = max(merged[-1]["end"], ent["end"])
        else:
            merged.append({"label": label, "start": ent["start"], "end": ent["end"]})

    redacted = text
    for span in reversed(merged):
        redacted = redacted[:span["start"]] + f"[{span['label']}]" + redacted[span["end"]:]
    return redacted

print(redact_pii("Shri Rajesh Kumar lives at 42 MG Road Bengaluru Karnataka", ner))
# [PREFIX] [FIRSTNAME] [LASTNAME] lives at [BUILDINGNUMBER] [STREET] [CITY] [STATE]

print(redact_pii("आपके बीस हज़ार रूपये शुल्क लंबित हैं, जो पंद्रह मार्च को देना था।", ner))
# आपके [AMOUNT] शुल्क लंबित हैं, जो [DATE] को देना था।

Evaluation Results

MetricScore
Overall F10.9497
Precision0.9464
Recall0.9530

Per-Entity F1

EntityF1EntityF1
FIRSTNAME0.99LASTNAME0.99
CITY0.99STATE0.99
PHONENUMBER0.98EMAIL0.93
DOB0.96DATE0.95
COMPANYNAME0.97PREFIX0.98
CREDITCARDNUMBER0.95CREDITCARDISSUER0.95
URL0.99USERNAME0.99
MIDDLENAME1.00ACCOUNTNUMBER0.91
PASSWORD0.91ZIPCODE0.95
AMOUNT0.86STREET0.91

Why IndicBERTv2?

indic-bert (v1)IndicBERTv2 (this model)
Parameters32M278M
ArchitectureALBERT (shared layers)BERT (unique layers)
Languages1224
Training corpus~9B tokens20.9B tokens
Devanagari namesPartial subword issuesClean detection
Hindi amounts (बीस हज़ार)Not detectedDetected
Hindi dates (पंद्रह मार्च)Not detectedDetected
Unusual names (Viteshwar)Broken subword alignmentClean detection

Training Details

  • Base model: ai4bharat/IndicBERTv2-MLM-only (278M params, 24 languages)
  • Task: Token Classification (NER with BIO tagging)
  • Epochs: 10
  • Learning rate: 2e-5
  • Batch size: 16
  • Optimizer: AdamW

Limitations

  • SEX entity has low F1 — overlaps with GENDER
  • SECONDARYADDRESS detection is weak
  • Latency is higher than v1 (~25-40ms vs ~8ms) due to larger model size
  • Best suited for Indian and US PII patterns

License

Apache 2.0

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · token-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
BertForTokenClassification
Ревизия весов
80a7e2f

0 моделей