Protegrity-PII Technical Report
Organizations: Protegrity 1 Menlo Park, CA, USA · Protegrity 2 Stamford, CT, USA · Protegrity 3 Lisbon, Portugal · Arizona State University, Tempe, AZ, USA
Abstract
We present Protegrity-PII, a new PII decision model for structured and unstructured text. Protegrity-PII achieves a typed recall of 0.915 with a precision of 0.907 on a new benchmark we propose, PII-SCOPE. Our model processes text in 0.49 seconds per million characters at $0.0005 per million characters on a single RTX 6000 using batched inference. Due in part to the expansive nature of the entity type taxonomy used in training, Protegrity-PII achieves superior out-of-distribution generalization when benchmarked against a selection of state of the art models and datasets.
Figures & tables
| Dataset | Entities / row ( ) | Distinct types / row ( ) |
|---|---|---|
| AI4Privacy | 3.86 | 2.84 |
| Nemotron | 8.15 | 5.44 |
| Gretel | 4.25 | 3.41 |
| SPY | 6.82 | 5.86 |
| PII-SCOPE | 13.17 | 7.60 |
| Model | Availability | Backbone | Parameters | Native taxonomy |
|---|---|---|---|---|
| Protegrity-PII | Open weights | XLM-RoBERTa | 277.6M | 69 |
| OpenAI Privacy Filter | Open weights | MoE token-level classifier | 1.5B ( 50M active) | 8 |
| GLiNER2.5 Multi | Open weights | mDeBERTa-v3-base | 287M | — |
| AWS Comprehend | Managed API | Undisclosed | Unknown | 36 |
| Microsoft Presidio | Open source | Rule-based + spaCy NER | Unknown | 91 * |
| Rampart | Open source | Rule-based + SLM | 18.5M | 20 |
| Outcome | Typed ruling | Untyped ruling |
|---|---|---|
| TP | TP | |
| (entity type confusion) | FN for ; FP for | TP |
| No with (miss) | FN | FN |
| with for every | FP | FP |
| Dataset | Protegrity-PII | GLiNER2.5 Multi | OPF | Rampart | AWS Comprehend | Microsoft Presidio | Claude Fable 5 |
| Typed | |||||||
| Recall | |||||||
| PII-SCOPE | 0.915 | 0.429 | 0.387 | 0.307 | 0.465 | 0.386 | 0.848 |
| AI4Privacy | 0.696 | 0.156 | 0.276 | 0.421 | 0.404 | 0.268 | 0.783 |
| Nemotron | 0.691 | 0.292 | 0.280 | 0.198 | 0.451 | 0.280 | 0.752 |
| Protegrity-PII | GLiNER2.5 Multi | OPF | Rampart | AWS Comprehend | Microsoft Presidio | Claude Fable 5 | |
| Typed | |||||||
| FNR | 0.262 | 0.749 | 0.652 | 0.669 | 0.486 | 0.641 | 0.228 |
| FPR | 0.373 | 0.746 | 0.601 | 0.658 | 0.434 | 0.702 | 0.389 |
| Untyped | |||||||
Appendix figures & tables18 assets
Supplementary material from the paper’s appendix.
Appendix
| Model | #1 | #2 | #3 | #4 | #5 |
|---|---|---|---|---|---|
| Protegrity-PII | MEDICAL_RECORD_NUMBER IDCARD | TRACKING_IDENTIFIER ACCOUNTNUMBER | TRACKING_IDENTIFIER IDCARD | IDCARD ACCOUNTNUMBER | BIC ACCOUNTNUMBER |
| GLiNER 2.5 Multi | NAME ACCOUNTNAME | USERNAME ACCOUNTNAME | PHONE FAX_NUMBER | IDCARD ACCESS_SECURITY_CODE | IDCARD ACCOUNTNUMBER |
| AWS Comprehend | IP IP_ADDRESS | TIME DATE | COMPANYNAME NAME | COUNTRY STREET | CITY STREET |
| OPF | IDCARD ACCOUNTNUMBER | USERNAME NAME | SSN ACCOUNTNUMBER | MEDICAL_RECORD_NUMBER ACCOUNTNUMBER | TRACKING_IDENTIFIER ACCOUNTNUMBER |
| Rampart | USERNAME NAME | IDCARD SSN | DATE ZIPCODE | MEDICAL_RECORD_NUMBER PASSPORT | TRACKING_IDENTIFIER IDCARD |
| Microsoft Presidio | CITY LOCATION | IDCARD DRIVERLICENSE | STATE LOCATION | TIME DATE | COUNTRY LOCATION |
| Model | Ground truth side | Prediction side |
|---|---|---|
| Protegrity-PII | Dataset label our label in Appendix B.1 | Our label in Appendix B.1 |
| GLiNER2.5 Multi | Dataset label our label in Appendix B.1 | Our label in Appendix B.2 |
| AWS Comprehend | Dataset label our label in Appendix B.1 | AWS label our label in Appendix B.3 |
| OpenAI Privacy Filter | Dataset label our label in Appendix B.1 | OPF label our label in Appendix B.4 |
| Microsoft Presidio | Dataset label our label in Appendix B.1 | Presidio label our label in Appendix B.5 |
| Rampart | Dataset label our label in Appendix B.1 | Rampart label our label in Appendix B.6 |
| Model | Evaluation labels | Supported labels | Unsupported labels |
|---|---|---|---|
| Protegrity-PII | 69 | 69 | 0 |
| GLiNER2.5 Multi | 69 | 69 | 0 |
| AWS Comprehend | 69 | 25 | 44 |
| OpenAI Privacy Filter | 69 | 8 | 61 |
| Microsoft Presidio | 69 | 17 | 52 |
| Rampart | 69 | 18 | 51 |
| Entity labels shared by all models | ||
| ACCOUNTNUMBER | ||
| NAME | PHONE | URL |
| Our entity labels | ||
|---|---|---|
| ACCESS_SECURITY_CODE | ACCOUNT_BALANCE | ACCOUNTNAME |
| ACCOUNTNUMBER | AGE | AMOUNT |
| BIC | BUILDING | CARD_EXPIRATION_DATE |
| CARD_SERVICE_CODE | CARD_TRACK_DATA | CCN |
| CITY | COMPANYNAME | COUNTRY |
| COUNTY | CREDIT_SCORE | CREDITCARDCVV |
| Native dataset label | Our label |
|---|---|
| ACCOUNTNAME | ACCOUNTNAME |
| ACCOUNTNUMBER | ACCOUNTNUMBER |
| AGE | AGE |
| AMOUNT | AMOUNT |
| BIC | BIC |
| BUILDING | BUILDING |
| Native dataset label | Our label |
|---|---|
| account_number | ACCOUNTNUMBER |
| age | AGE |
| api_key | LOGIN_CREDENTIAL |
| bank_routing_number | BIC |
| certificate_license_number | PROFESSIONAL_LICENSE_NUMBER |
| city | CITY |
| Native dataset label | Our label |
|---|---|
| account_number | ACCOUNTNUMBER |
| address | STREET |
| api_key | LOGIN_CREDENTIAL |
| bank_routing_number | BIC |
| certificate_license_number | PROFESSIONAL_LICENSE_NUMBER |
| city | CITY |
| Native dataset label | Our label |
|---|---|
| ADDRESS | STREET |
| ID_NUM | IDCARD |
| NAME | NAME |
| PHONE_NUM | PHONE |
| URL | URL |
| Native model labels | Mapping | Supported labels | Unsupported labels |
| All labels in our native taxonomy | Identity | 69 | 0 |
| Entity name | Description |
|---|---|
| ACCESS_SECURITY_CODE | Security code used to access an account or protected system |
| ACCOUNTNAME | Name assigned to a financial or user account |
| ACCOUNTNUMBER | Identifier for a bank, billing, or service account |
| ACCOUNT_BALANCE | Monetary balance held in an account |
| AGE | A person’s age or age range |
| AMOUNT | Monetary amount or payment value |
| Native model label(s) | Our label |
|---|---|
| — | ACCESS_SECURITY_CODE |
| — | ACCOUNT_BALANCE |
| — | ACCOUNTNAME |
| BANK_ACCOUNT_NUMBER | ACCOUNTNUMBER |
| AGE | AGE |
| — | AMOUNT |
| Native model label | Our label |
|---|---|
| — | ACCESS_SECURITY_CODE |
| — | ACCOUNT_BALANCE |
| — | ACCOUNTNAME |
| account_number | ACCOUNTNUMBER |
| — | AGE |
| — | AMOUNT |
| Native model label(s) | Our label |
|---|---|
| — | ACCESS_SECURITY_CODE |
| — | ACCOUNT_BALANCE |
| — | ACCOUNTNAME |
| US_BANK_NUMBER | ACCOUNTNUMBER |
| — | AGE |
| — | AMOUNT |
| Native model label(s) | Our label |
|---|---|
| — | ACCESS_SECURITY_CODE |
| — | ACCOUNT_BALANCE |
| — | ACCOUNTNAME |
| BANK_ACCOUNT | ACCOUNTNUMBER |
| — | AGE |
| — | AMOUNT |
PII Detection
Personally identifiable information (PII) detection finds sensitive personal details in text, conversations, images, and other data.
See all 39 papers