---
title: "Yeco-PII 2.0: 30 PII Entity Types, 0.97 F1 Across Six Languages, Signed Release, YecoAI Research"
description: "Yeco-PII 2.0: 30 entity types, average F1 0.97 on 6 European languages vs OpenAI Privacy Filter (0.80) and Rizzo-PII (0.67), Italian 0.98, ECDSA-signed release, custom fine-tuning."
url: "https://yecoai.com/en/research/yeco-pii-v2"
locale: "en"
published: "2026-10-17"
updated: "2026-10-20"
category: "Release"
---

# Yeco-PII 2.0

The second generation of our 278M PII model: 30 entity types, average F1 0.97 across six European languages vs 0.80 for the OpenAI Privacy Filter (1.5B) and 0.67 for Rizzo-PII (0.3B). Cryptographically signed release.

*17 Oct 2026 · Release*

Introducing Yeco-PII 2.0, the second generation of our model that detects and anonymizes personal data in text. It is more accurate, recognizes more data types and outperforms much larger models, especially in Italian. With this release we are also opening our dedicated fine-tuning program: starting from this base, we train custom variants for each company's specific fields.

## Motivation: closing the gaps v1.0 left open

v1.0 proved the thesis: context beats checksums. But the error analysis was honest, and the gaps were documented. In technical logs, IPv6 addresses went unseen. Usernames generated without a name-based structure (the real ones, `user447198`, `txgmssfpc284937`) slipped through unless they looked like a firstname.lastname. Plaintext passwords in support tickets were not typed. And in banking, “last card ending in 4821” was mistaken for a ZIP code.

The diagnosis was more interesting than the individual fixes: v1.0’s training dataset, built on real rows annotated by third parties, deliberately left out exactly those categories, and the model had **learned to ignore them**. It was not an architecture limit, but a limit of ground truth in the training data. 2.0 is built on a dataset rebuilt from scratch (154,000 documents, zero errors after automatic validation of every span), where every category has real examples, contrastive synthetic examples (same surface, opposite label depending on context: a customer’s “Via Roma 42” vs “Via Roma” cited as an example), and hostile negatives (MAC addresses, UUIDs, DOIs, and technical coefficients that must *not* be touched). 2.0 is not an incremental update: it is the generation that closes the research loop, with purely contextual detection, no regex, and full coverage of the digital and physical identifiers that dominate real documents.

## Model and methodology

Yeco-PII 2.0 is a 278M-parameter encoder, fine-tuned for token-level entity recognition across **30 protected types**: names, organizations, tax IDs (codice fiscale), VAT numbers, IBAN, credit cards and last 4 digits, emails, phone numbers, birth dates vs reference dates, full addresses, ZIP codes, provinces, countries, age, gender, amounts, document references, license plates, cadastral data, URLs, IPv4 and IPv6, usernames, plaintext passwords, GPS coordinates, and more. The model is a full fine-tune of XLM-RoBERTa base, used as the starting point. It ships in standard HuggingFace format (\~1.1 GB), with an int8-quantized ONNX version (278 MB) for CPU, and a policy engine that turns detection into production-ready redaction.

The feature most requested by our enterprise partners: **every file in the release package is cryptographically signed** (ECDSA). With the public key we provide, your IT department verifies with a single command that the installed model is exactly the one validated by YecoAI: unaltered, with no substitutions along the distribution chain. Provenance that is demonstrable, not declared.

## Benchmarks: same test for every model, extended protocol

Evaluation uses real-world rows never seen in training, annotated by a third party (Ai4Privacy), with the identical set for every model, now with the gold standard extended to all 30 types, including what the previous generation could not see.

The result: **average F1 0.97 across six European languages** against 0.80 for the OpenAI Privacy Filter (1.5B, 5.4× larger) and 0.67 for Rizzo-PII (0.3B), and **0.98 on Italian**, our primary language.

### PII detection F1 across six European languages

Ai4Privacy benchmark, higher is better, six-language average included

|  | Yeco-PII 2.0 (278M) | Rizzo-PII (0.3B) | OpenAI Privacy Filter (1.5B) |
|---|---|---|---|
| Italian | 0.98 | 0.68 | 0.8 |
| English | 0.96 | 0.69 | 0.79 |
| French | 0.99 | 0.67 | 0.8 |
| German | 0.99 | 0.67 | 0.8 |
| Spanish | 0.99 | 0.72 | 0.81 |
| Dutch | 0.94 | 0.6 | 0.78 |
| 6-language average | 0.97 | 0.67 | 0.8 |

Independent annotations, identical test set for every model.

### Full benchmark results

F1 on the Ai4Privacy benchmark, identical test set for every model

| Language | Yeco-PII 2.0 (278M) | Rizzo-PII (0.3B) | OpenAI Privacy Filter (1.5B) |
|---|---|---|---|
| Italian | 0.98 | 0.68 | 0.8 |
| English | 0.96 | 0.69 | 0.79 |
| French | 0.99 | 0.67 | 0.8 |
| German | 0.99 | 0.67 | 0.8 |
| Spanish | 0.99 | 0.72 | 0.81 |
| Dutch | 0.94 | 0.6 | 0.78 |
| 6-language average | 0.97 | 0.67 | 0.8 |

## What it detects (30 types) and how accurately

Compared to v1.0, the types go from 24 to 30: added IPv6 addresses, usernames, plaintext passwords, country, GPS coordinates, and card last 4 digits.

### F1 by entity type

30 protected types; * and n/a explained in the note below the table

| Entity | F1 |
|---|---|
| Full name | 0.97 |
| Italian tax code (codice fiscale)* | 1 |
| VAT number (Partita IVA)* | 1 |
| IBAN* | 1 |
| Credit card* | 1 |
| Card last 4 digits* | 1 |
| Cadastral code* | 1 |
| License plate* | 1 |
| Document/case number | 0.98 |
| Email | 1 |
| Phone/fax | 0.98 |
| IP address v4/v6 | 1 |
| Username | 0.99 |
| URL* | 1 |
| Street/square | 0.96 |
| House number | 0.96 |
| Postal code (CAP) | 0.96 |
| City | 0.96 |
| Province | 0.95 |
| Country | 0.94 |
| GPS coordinates | 0.9 |
| Reference date | 0.97 |
| Date of birth | 0.96 |
| Time | 0.99 |
| Age* | 1 |
| Gender | 0.99 |
| Organization* | 1 |
| Amount* | 1 |

*\* Type not present in the real Ai4Privacy set: value from the v2 adversarial suite (synthetic samples, indicative). n/a = not yet certified (Plaintext password, Document reference): passwords and document references are the rarest types in training; if they are critical for your use case, request a dedicated evaluation.*

## Error analysis: what the model still misses

Honest reporting includes the misses. Three areas remain: **ultra-short contexts** (an IBAN isolated in a three-word sentence falls below the confidence threshold; this does not happen in real documents), **partially structured verbal dates** in complex legal prose, and **entities split by formatting artifacts** (an “M. Greco” recognized as a single token). None is an architecture limit: all are in the hard pool of the next data cycle, and the first is documented as known behavior in the model card.

## From detection to anonymization policy

As in v1.0, the policy engine turns spans into actions: masking with type tags (`[IBAN]`, `[FULLNAME]`), replacement with format-preserving surrogates, or consistent per-customer mappings across entire corpora. Policies are defined in JSON or natural language and apply with no retraining.

## The fine-tuning program: this is the base, your fields are added on top

This is what sets us apart from vendors selling a closed model. **Yeco-PII 2.0 is, in all likelihood, our final PII model as a generation**: the base (architecture, multilingual dataset, the 30 types) stays as it is and remains the foundation of every variant. From here on, improvement will come from specialization, not from a new generation: the companies and banks that contact us tell us which specific fields their domain is missing. What varies is the tail, and the tail is yours:

```json
{
  "@context": "https://schema.org",
  "@id": "https://yecoai.com/en/research/yeco-pii-v2#page",
  "url": "https://yecoai.com/en/research/yeco-pii-v2",
  "name": "Yeco-PII 2.0: 30 PII Entity Types, 0.97 F1 Across Six Languages, Signed Release, YecoAI Research",
  "description": "Yeco-PII 2.0: 30 entity types, average F1 0.97 on 6 European languages vs OpenAI Privacy Filter (0.80) and Rizzo-PII (0.67), Italian 0.98, ECDSA-signed release, custom fine-tuning.",
  "inLanguage": "en",
  "isPartOf": {
    "@id": "https://yecoai.com/#website"
  },
  "image": "https://yecoai.com/api/media/file/yecopiiv2.webp",
  "@type": "ScholarlyArticle",
  "headline": "Yeco-PII 2.0",
  "mainEntityOfPage": "https://yecoai.com/en/research/yeco-pii-v2",
  "datePublished": "2026-10-17T00:00:00.000Z",
  "dateModified": "2026-10-20T11:04:11.709Z",
  "articleSection": "Release",
  "keywords": "Yeco-PII 2.0, PII detection, anonymization benchmark, Ai4Privacy, GDPR anonymization, neural NER, privacy model, ECDSA signing, PII fine-tuning, YecoAI research",
  "author": {
    "@id": "https://yecoai.com/#organization"
  },
  "publisher": {
    "@id": "https://yecoai.com/#organization"
  }
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "YecoAI home",
      "item": "https://yecoai.com/en"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Research",
      "item": "https://yecoai.com/en/research"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Yeco-PII 2.0",
      "item": "https://yecoai.com/en/research/yeco-pii-v2"
    }
  ]
}
```
