ALLSmartArt4i

Finds people who are identifiable without a name. "The mayor of Neukirchen", "the only midwife in town", "our new colleague from the Graz branch who came over from Siemens": no name, but exactly one person. Under Art. 4 (1) GDPR that is personal data; ALLSmartArt4i marks the whole passage so it can be replaced.

ALLSmartArt4i is one of three privacy models of ALLSmartLLM, where it replaced a check by a 35B language model in the strictest level of the privacy layer. See also ALLSmartArt4 (names, organisations, addresses) and ALLSmartArt9-10 (special categories).

Output per word: probability that it belongs to an indirect identifier (indirekt)
Size 0.3B parameters, token classification on mmBERT-base
Languages German, English
Speed ≈ 25 ms for 30 words, ≈ 90 ms for 250 words on a desktop CPU (Ryzen 7 7800X3D, 8 threads)
Schreib dem Bürgermeister von Neukirchen am Walde, dass die Sitzung verschoben wird.
Schreib dem <<INDIRECT_1>>, dass die Sitzung verschoben wird.

Unsere neue Kollegin aus der Grazer Filiale, die vorher bei Siemens war, kommt am Montag.
-> "neue Kollegin aus der Grazer Filiale, die vorher bei Siemens war"

The model replaces the whole description, not just the place name: "the mayor of <>" would still point to a small set of people.

Usage

beispiel.py in this repository contains the complete post-processing used in production:

from beispiel import finde
finde("Schreib dem Bürgermeister von Neukirchen am Walde, dass die Sitzung verschoben wird.")
# [{'von': 12, 'bis': 49, 'p': 0.97}]   -> "Bürgermeister von Neukirchen am Walde"
  • Long texts: windows of 250 words with step 200, maximum per word.
  • A leading article stays text ("dem <>"), so the sentence remains grammatical.
  • Single lower-case words are dropped: they single out nobody and were the main source of false alarms.
  • Use it together with a name recogniser: a role directly next to a name ("Werksleiter Huber") is left to the name.

Evaluation

Test sets created and annotated independently of the training data, never used for training or model selection.

passages found precision harmless texts changed
Blind set 1: 300 texts (168 with a person), 250 German / 50 English 96.7 % (183) 97.3 % 4 / 132
Blind set 2: 240 texts (128 with a person), 146 German / 94 English, a third long 86.8 % (174) 92.0 % 5 / 112

Long documents (40 documents, 700 to 2,800 words, 69 annotated passages, many as chains across paragraphs): 40.6 % found, precision 80.6 %. See limitations.

Limitations

  • Chains of scattered attributes ("the new colleague … from Graz … who used to work for …", spread over several sentences or paragraphs) are the known weakness: on blind set 2 it finds 11 of 24, on long documents less than half. Each attribute alone identifies nobody; only the combination does.
  • References back to a person already described ("the neighbour") are not marked on purpose; masking the first description is enough.
  • Trained and measured on German and English only.

Training data

Only invented texts in German and English, created for this purpose. No customer data and no real personal data were used.

License

Apache 2.0. Base model mmBERT-base (MIT).


Deutsch: ALLSmartArt4i findet Personen, die ohne Namen erkennbar sind («der Bürgermeister von Neukirchen», «die einzige Hebamme im Ort») und markiert die ganze Beschreibung zum Ersetzen. Es läuft in der strengsten Stufe der Privacy-Schicht von ALLSmartLLM und hat dort die Prüfung durch ein großes Sprachmodell abgelöst.

Downloads last month
6
Safetensors
Model size
0.3B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for allsmart/Art4i

Finetuned
(208)
this model