Liquid AI
Try LFMDocsLEAPDiscord

LFM2.5-Encoder-350-PII-Detector

A full fine-tune of LFM2.5-Encoder-350M with a token-classification head, covering 40 PII types across 16 languages.

Find more details about our encoders in our blog post.

💻 Demos: Try this fine-tuned model running in a CPU-only Hugging Face space: PII detection — spot and remove 40 kinds of personal information across 16 languages.

Entity types (40 PII types across 11 domains)

Domain Types
Identity identity.person_name, identity.ssn, identity.national_id, identity.passport, identity.drivers_license, identity.date_of_birth, identity.tax_id
Contact contact.email, contact.phone, contact.address, contact.postal_code, contact.ip_address
Financial financial.credit_card, financial.iban, financial.bank_account, financial.swift_bic, financial.crypto_wallet, financial.amount
Credentials credential.api_key, credential.password, credential.private_key, credential.jwt, credential.connection_string, developer.login_credentials
Online online.username, online.url
Device device.mac_address, device.imei, developer.device_id
Location location.gps_coordinates
Healthcare healthcare.medical_record, healthcare.condition, healthcare.medication, healthcare.health_plan_id
Organization org.company_name
Special-category special.religion, special.political, special.orientation, special.health_status
Legal legal.case_number

Benchmarks (18-locale-filtered, partial-F1, hybrid decode)

Benchmark this model detection tier SauerkrautLM GLiNER openai/privacy-filter Piiranha-v1 OpenMed privacy-filter regex + validators
SPY 0.428 0.509 0.280 0.264 0.232 0.226 0.358
Gretel 0.880 0.885 0.663 0.458 0.553 0.770 0.337
TAB 0.867 0.888 0.685 0.543 0.262 0.672 0.000
ai4privacy 0.715 0.774 0.488 0.394 0.946 0.432 0.195
Nemotron 0.855 0.863 0.639 0.572 0.658 0.918 0.335
MAPA 0.236 0.267 0.416 0.288 0.228 0.164 0.000

leaderboard

  • Best on every benchmark except MAPA, whose idiosyncratic date-as-date_of_birth labeling convention penalises correctly-typed predictions. Only two external scores land higher anywhere — Piiranha-v1's 0.946 on ai4privacy and OpenMed's 0.918 on Nemotron — and both are in-distribution: each model trains on that exact corpus, as did our own encoder's pretraining on those same two.
  • Detection tier is the same model and the same predictions, scored with the type label ignored — did it find the PII span at all, which is the metric that matters for redaction. The gap to exact-type is the type-confusion rate, e.g. SPY 0.428 → 0.509.

Usage

⚠️ Loads custom code via trust_remote_code=True (the model wraps a trust_remote_code encoder).

Install the required packages:

pip install torch transformers huggingface_hub

Run PII detection:

import importlib.util
import sys

from huggingface_hub import hf_hub_download
from transformers import AutoModelForTokenClassification, AutoTokenizer

model_id = "LiquidAI/LFM2.5-Encoder-350-PII-Detector"

helper_path = hf_hub_download(model_id, "pii_hybrid_decode.py")
hf_hub_download(model_id, "context_cued.py")
sys.path.insert(0, helper_path.rsplit("/", 1)[0])

spec = importlib.util.spec_from_file_location("pii_hybrid_decode", helper_path)
hd = importlib.util.module_from_spec(spec)
spec.loader.exec_module(hd)

tok = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForTokenClassification.from_pretrained(model_id, trust_remote_code=True).eval()

spans = hd.predict("Email Dr. Laura Schmidt at laura@charite.de.", tok, model)
print(spans)

📬 Contact

Citation

@article{liquidAI2026Encoders,
  author = {Liquid AI},
  title = {LFM2.5-Encoders: Fast at Long Context, Even on CPU},
  journal = {Liquid AI Blog},
  year = {2026},
  note = {www.liquid.ai/blog/lfm2-5-encoders},
}
Downloads last month
38
Safetensors
Model size
0.4B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for LiquidAI/LFM2.5-Encoder-350M-PII-Detector

Finetuned
(15)
this model

Space using LiquidAI/LFM2.5-Encoder-350M-PII-Detector 1