hiddentokens

REDACT: Hidden Tokens on a third-party multilingual benchmark, losses included

Updated · REDACT locked split (1,000 records, 25 languages) · connector 2.85.1

Summary, version by version

Each column is a run of the same harness on the same 1,000 records. Connector 2.57.0 is the one measured on 31 October 2026; 2.63.0 and 2.64.0 fixed what the previous run showed. 2.85.1 is the connector of 6 November 2026, measured alone and with the Double-check.

MeasureConnector 2.57.0Connector 2.63.0Connector 2.64.0Connector 2.77.0Connector 2.77.0 + Double-checkConnector 2.85.1Connector 2.85.1 + Double-check
Fully disclosed direct identifiers touched by a code98.8%99.0%99.2%99.2%99.5%99.2%99.5%
… entirely hidden87.5%88.3%89.0%89.0%96.4%89.0%95.6%
… left untouched200 / 17,103174 / 17,103139 / 17,103139 / 17,10380 / 17,103139 / 17,10383 / 17,103
Dates of birth left readable60.9%41.1%40.9%41.1%3.2%41.1%5.1%
Coded text that decodes back exactly (text route)372 / 1,000542 / 1,000549 / 1,000561 / 1,000549 / 1,000568 / 1,000471 / 1,000
… (file route)765 / 1,000748 / 1,000751 / 1,000776 / 1,000716 / 1,000552 / 1,000465 / 1,000
Typed score, official method (partial micro-F1)0.2030.2110.2120.2130.2390.2120.223

The Double-check: a second reader on the computer

The Double-check is an optional package (725 MB on Mac, 702 MB on Windows) that the Hidden Tokens app installs on request. A local model (GLiNER multi-PII, Apache 2.0) rereads the text before coding, on the computer, with no network. What it finds is added to the values to code and gets real codes, which decode. Once installed it is on by default; a folder can turn it off. Below: the same 1,000 records, the same connector 2.85.1, without it and with it. In this run it read 1,000 of 1,000 records (0 unavailable) and added 9,015 passages to the coding.

MeasureEngine alone 2.85.12.85.1 + Double-checkChange
Direct identifiers left untouched13983−56
… entirely hidden89.0%95.6%+6.6 pt
Dates of birth left readable41.1%5.1%−36.0 pt
Ordinary text coded, French10.7%12.9%+2.2 pt
… English23.6%27.2%+3.6 pt
… average of the 25 languages56.0%58.9%+2.9 pt
Exact decoding, text route568 / 1,000471 / 1,000−97
… file route552 / 1,000465 / 1,000−87
Official typed score (partial micro-F1)0.2120.223+0.011
Time per record, median (both routes)0.05 s0.89 s—

What it costs, and what is not right yet:

What got worse, and what is still missing

VersionsNewly codedNewly left untouchedTypes newly left untouched
2.57.0 → 2.63.04115Employee_ID_Number (3), Social_Media_Identifiers (3), Building_Badge_Card_Number (3), National_Identification_Number (2), First_Given_Name (1), Customer_Reference_Number (1), Last_Family_Name (1), Account_Statements (1)
2.63.0 → 2.64.0350—
2.64.0 → 2.77.000—
2.77.0 → 2.77.0 + Double-check612First_Given_Name (1), Customer_Reference_Number (1)
2.77.0 → 2.85.122Customer_Reference_Number (2)
2.85.1 → 2.85.1 + Double-check560—
REDACT tiertouched / hidden, 2.57.0touched / hidden, 2.63.0touched / hidden, 2.64.0touched / hidden, 2.77.0touched / hidden, 2.77.0 + Double-checktouched / hidden, 2.85.1touched / hidden, 2.85.1 + Double-check
HIGH84.6% / 57.5%86.8% / 59.2%87.4% / 60.0%87.3% / 60.1%93.9% / 78.8%87.3% / 60.1%93.9% / 77.6%
MEDIUM98.0% / 89.1%97.7% / 89.7%97.9% / 90.2%97.9% / 90.2%98.2% / 95.8%97.9% / 90.2%98.2% / 95.1%
LOW79.8% / 59.1%77.5% / 58.4%77.8% / 58.9%77.9% / 59.1%80.4% / 62.8%77.8% / 59.1%80.8% / 62.9%

Ordinary text coded, by language

The share of words that belong to no REDACT entity and that Hidden Tokens coded: over-coding, reversible, but it takes meaning away from the AI.

Language2.57.02.63.02.64.02.77.02.77.0 + Double-check2.85.12.85.1 + Double-check
FR10.7%10.7%10.7%10.7%12.2%10.7%12.9%
EN24.6%23.8%24.1%23.8%25.4%23.6%27.2%
DE78.5%44.1%44.7%44.5%45.0%44.5%46.1%
ES65.6%39.2%44.5%44.5%43.2%44.5%54.2%
IT65.2%36.7%38.0%37.9%36.8%37.9%44.1%
PT_BR68.5%40.2%41.8%41.7%41.3%41.7%47.9%
PT_EU65.5%42.4%45.0%44.9%45.9%44.8%49.4%
NL61.9%43.2%43.7%43.5%44.5%43.5%46.2%
TR85.6%54.1%54.8%54.8%55.1%54.8%60.5%
AR76.9%64.6%64.6%64.4%65.2%64.4%69.9%
Other languages (no word list yet)
Language2.57.02.63.02.64.02.77.02.77.0 + Double-check2.85.12.85.1 + Double-check
CS73.7%71.9%72.0%71.8%72.0%71.8%72.4%
DA67.1%64.6%64.9%64.7%65.1%64.7%66.4%
FI78.1%76.0%76.0%76.4%76.7%76.4%78.2%
HE65.7%65.5%65.5%65.5%65.7%65.5%66.2%
HI51.1%48.5%48.7%48.4%49.6%48.4%52.1%
HU73.9%71.2%71.4%71.3%72.2%71.3%73.0%
JA74.3%68.8%68.8%68.7%68.8%68.7%69.4%
KO80.8%77.6%77.7%77.6%78.3%77.6%79.4%
NO72.6%70.1%70.2%70.2%71.4%70.2%71.8%
RU83.5%81.9%81.9%81.9%82.6%81.9%82.8%
SV73.0%71.6%71.6%71.5%72.3%71.5%72.9%
TH79.7%75.6%75.7%75.5%75.9%75.5%76.6%
ZH_CN77.4%76.0%76.0%75.9%78.9%75.9%79.3%
ZH_TW61.7%58.8%60.3%60.7%61.0%60.5%61.8%

The official typed score

The authors' method: an entity is found if a prediction of the same type overlaps it (partial micro-F1), or has the same boundaries (exact). As the authors do for Presidio, each Hidden Tokens prefix maps to one type (TEL → Telephone_Numbers_Personal, a first name followed by a surname → Full_Name…); a code without a type (CODE-…, an unknown word) does not count. The five detectors' figures are those published by the authors.

DetectorPartial micro-F1Macro F1Exact micro-F1
Presidio0.1950.0630.145
GLiNER-multi0.3200.2240.293
OpenAI Privacy Filter0.5120.2540.171
GPT-4.10.5970.5650.558
Claude Sonnet 4.60.6360.6190.602
Hidden Tokens 2.85.10.2120.0760.176
Hidden Tokens 2.85.1 + Double-check0.2230.1020.189

Method and limits

Reproduce

Raw results: redact-2.57.0.json, redact-2.63.0.json, redact-2.64.0.json, redact-2.77.0.json, redact-2.77.0-dv.json, redact-2.85.1.json, redact-2.85.1-dv.json (every table, per type, per language, F5 and F6). Predictions (predictions-2.85.1.jsonl.gz, predictions-2.85.1-dv.jsonl.gz): positions and code prefixes for each record, with no dataset text: with REDACT and noter.mjs, every score on this page can be recomputed. Harness: README, passer.mjs, noter.mjs, comparer.mjs, types.mjs, alignement.mjs. Re-running the engine needs the connector source, which will be public with the open core.

Cite REDACT: Guneesh Vats, Anubha Agrawal, Shikha Singhal, Ajita Dash, Praison Selvaraj, Vidhan Jhawar, Ranga Prasad Chenna, Bharadwaj Y M G, "REDACT: A Systematically Controlled Multilingual Benchmark for Personal Information Detection", EMNLP 2026 Industry Track, arXiv 2606.19881.

← The HT-Bench benchmark