/ Модель

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

Контекст
512 токенов
Параметры
306 млн
Архитектура
deberta-v2 · dense
Библиотека
transformers
Опубликована
21 апр 2025

pii-entity-extractor

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

Модель на базе DeBERTa выделяет в английском тексте имена, финансовые реквизиты, телефоны и другие категории персональных данных.

76скачиваний за 30 дней3лайкавеса обновлены10 июл 2025

Бенчмарки

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

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

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

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

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

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

AI-Enthusiast11/pii-entity-extractor — модель Maskify на базе DeBERTa, дообученная для распознавания именованных сущностей, содержащих персональные данные. Она принимает текст и выполняет токенную классификацию, выделяя имена, номера социального страхования, телефоны, номера кредитных карт и банковских счетов, банковские routing-номера и адреса. Модель содержит 306 млн параметров, использует архитектуру DeBERTa v2 и поддерживает контекст до 512 токенов. В карточке описана работа с английским языком; модель подходит для поиска персональных данных в текстовых документах и подготовки данных к обезличиванию.

На отложенной части того же размеченного набора данных автор сообщает средние precision, recall и F1 около 0,95. Эти результаты не гарантируют такое же качество на других данных: для применения в чувствительных сценариях рекомендуется ручная проверка и оценка на данных целевого домена. Лицензия в предоставленных сведениях не указана.

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

  • поиск персональных данных в текстовых документах
  • обнаружение номеров социального страхования в тексте
  • выделение телефонных номеров и адресов
  • поиск номеров банковских счетов и routing-номеров
  • обнаружение номеров кредитных карт перед обезличиванием

Ограничения

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

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

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

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

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

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

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

Открыть на Hugging Face

Model Card for PII Detection with DeBERTa

Open In Colab This model is a fine-tuned version of microsoft/deberta for Named Entity Recognition (NER), specifically designed for detecting Personally Identifiable Information (PII) entities like names, SSNs, phone numbers, credit card numbers, addresses, and more.

Model Details

Model Description

This transformer-based model is fine-tuned on a custom dataset to detect sensitive information, commonly categorized as PII. The model performs sequence labeling to identify entities using token-level classification.

  • Developed by: [Maskify]
  • Finetuned from model: microsoft/deberta
  • Model type: Token Classification (NER)
  • Language(s): English
  • Use case: PII detection in text

Training Details

Training Data

The model was fine-tuned on a custom dataset containing labeled examples of the following PII entity types:

  • NAME
  • SSN
  • PHONE-NO
  • CREDIT-CARD-NO
  • BANK-ACCOUNT-NO
  • BANK-ROUTING-NO
  • ADDRESS

Epoch Logs

EpochTrain LossVal LossPrecisionRecallF1Accuracy
10.36720.19870.78060.81140.79570.9534
20.11490.10110.91610.97720.94570.9797
30.07950.08890.92640.98250.95360.9813
40.07080.08800.92420.98420.95330.9806
50.06260.08580.92350.98510.95330.9806

SeqEval Classification Report

LabelPrecisionRecallF1-scoreSupport
ADDRESS0.910.940.9277
BANK-ACCOUNT-NO0.910.990.95169
BANK-ROUTING-NO0.850.960.90104
CREDIT-CARD-NO0.951.000.97228
NAME0.980.970.97164
PHONE-NO0.940.990.96308
SSN0.871.000.9390

Summary

  • Micro avg: 0.95
  • Macro avg: 0.95
  • Weighted avg: 0.95

Evaluation

Testing Data

Evaluation was done on a held-out portion of the same labeled dataset.

Metrics

  • Precision
  • Recall
  • F1 (via seqeval)
  • Entity-wise breakdown
  • Token-level accuracy

Results

  • F1-score consistently above 0.95 for most labels, showing robustness in PII detection.

Recommendations

  • Use human review in high-risk environments.
  • Evaluate on your own domain-specific data before deployment.

How to Get Started with the Model


from transformers import AutoTokenizer, AutoModelForTokenClassification
from transformers import pipeline

model_name = "AI-Enthusiast11/pii-entity-extractor"  
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForTokenClassification.from_pretrained(model_name)

# Post processing logic to combine the subword tokens
def merge_tokens(ner_results):
    entities = {}
    for entity in ner_results:
        entity_type = entity["entity_group"]
        entity_value = entity["word"].replace("##", "")  # Remove subword prefixes

        # Handle token merging
        if entity_type not in entities:
            entities[entity_type] = []
        if entities[entity_type] and not entity_value.startswith(" "):
            # If the previous token exists and this one isn't a new word, merge it
            entities[entity_type][-1] += entity_value
        else:
            entities[entity_type].append(entity_value)

    return entities

def redact_text_with_labels(text):
    ner_results = nlp(text)

    # Merge tokens for multi-token entities (if any)
    cleaned_entities = merge_tokens(ner_results)

    redacted_text = text
    for entity_type, values in cleaned_entities.items():
        for value in values:
            # Replace each identified entity with the label
            redacted_text = redacted_text.replace(value, f"[{entity_type}]")

    return redacted_text



#Loading the pipeline
nlp = pipeline("ner", model=model_name, tokenizer=tokenizer, aggregation_strategy="simple")

# Example input (choose one from your examples)
example = "Hi, I’m Mia Thompson. I recently noticed that my electricity bill hasn’t been updated despite making the payment last week. I used account number 4893172051 linked with routing number 192847561. My service was nearly suspended, and I’d appreciate it if you could verify the payment. You can reach me at 727-814-3902 if more information is needed."

# Run pipeline and process result
ner_results = nlp(example)
cleaned_entities = merge_tokens(ner_results)

# Print the NER results
print("\n==NER Results:==\n")
for entity_type, values in cleaned_entities.items():
    print(f"  {entity_type}: {', '.join(values)}")

# Redact the single example with labels
redacted_example = redact_text_with_labels(example)

# Print the redacted result
print(f"\n==Redacted Example:==\n{redacted_example}")

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
DebertaV2ForTokenClassification
Ревизия весов
5402c9e

0 моделей