Noirci — détection de données personnelles en français

Modèle de reconnaissance d'entités entraîné pour pseudonymiser de la correspondance professionnelle française avant de l'envoyer à un LLM. Exporté en ONNX quantifié int8 : 186 Mo, tourne sur CPU.

Développé par 5000.dev. Code et benchmark : https://github.com/5000dev/noirci

La métrique compte autant que le modèle

Une entité n'est protégée que si 100 % de ses caractères significatifs sont masqués. Masquer « Jean » dans « Jean Dupont » est compté comme une fuite, pas comme un demi-succès : le nom de famille est parti chez le fournisseur du LLM. Les scores F1 par token, usuels dans la littérature, récompensent ces demi-succès et surestiment fortement la protection réelle.

On mesure donc deux choses séparément : le taux de fuite (l'entité a-t-elle été entièrement masquée) et le taux de sur-masquage (combien de texte inutile a été masqué au passage).

Résultats

Sur de la correspondance professionnelle française authentique, annotée à la main. Le modèle n'est qu'une couche du pipeline complet ; les chiffres ci-dessous sont ceux du pipeline lite2.

Jeu Documents Entités Fuite Sur-masquage
Validation (tenu à l'écart) 72 555 3,96 % 17,7 %
Entraînement 407 3 576 3,30 % 11,2 %
Aveugle (annoté avant exécution) 7 55 5,45 % 8,0 %

Par type sur le jeu le plus large : PERSON 0,00 %, URL 0,60 %, CITY 1,47 %, ADDRESS 1,74 %, PHONE 2,59 %, DATE 3,58 %, AMOUNT 4,58 %, COMPANY 5,70 %. Les identifiants à somme de contrôle (SIREN, SIRET, TVA, IBAN, NIR) sont à 0,00 % : ils sont traités par la couche déterministe, pas par le modèle.

Ce que le modèle a appris, et pourquoi

Le corpus d'entraînement mélange du synthétique métier (juridique, compta, RH, immobilier, administratif), du WikiNER français, et de la prose réelle à valeurs substituées : de vrais documents dont chaque entité a été remplacée par une autre valeur réelle du même type, tirée de sources publiques (BODACC, INSEE). La structure vient du réel, aucune donnée client ne subsiste.

Un point non évident : la forme de surface des sociétés a été réalignée sur la distribution observée. Les pools BODACC et SIRENE stockent les raisons sociales en capitales, ce qui donnait un corpus à 65 % de majuscules contre 17 % dans la vraie correspondance. Le modèle apprenait qu'« une société, c'est un mot en capitales » et ratait 40 % des marques écrites normalement, en simple capitale initiale. Corriger cette seule distribution a fait passer les sociétés de 9,7 % à 6,7 % de fuite.

Contenu du dépôt

Fichier
model.safetensors les poids en float32, pour réentraîner ou réexporter
onnx/model_int8.onnx l'export quantifié, 186 Mo, tourne sur processeur
tokenizer.json sans troncature. Le fichier sauvé après entraînement en embarquait une, silencieuse, à 192 tokens : la fin de tout document long n'était jamais analysée. Si vous repartez d'un autre export, vérifiez ce point.

Utilisation

Le modèle seul n'est pas suffisant. Il est conçu comme une couche d'un pipeline qui comprend aussi des regex à checksums, des gazetteers (communes INSEE, dénominations SIRENE) et une passe de propagation document entier. Voir le dépôt GitHub.

from bench.detect.run import DETECTORS
spans = DETECTORS["lite2"]("Bonjour, je suis Claire Baudry de la Verrerie Delaunay.")

Limites

  • Français uniquement. Quelques formats anglo-saxons sont couverts parce qu'ils apparaissent dans de la correspondance française, mais ce n'est pas un modèle multilingue.
  • Le sur-masquage est réel, entre 8 et 15 %. Environ un mot masqué sur sept l'est inutilement.
  • Les benchmarks synthétiques sont saturés (0,04 % de fuite) et ne discriminent plus rien. Ne jugez pas ce modèle dessus.
  • Le périmètre exclut les plateformes grand public (Zoom, Excel, Stripe, Figma). Ce sont des noms de produits, pas des données personnelles, et les masquer dégrade la réponse du LLM sans rien protéger.

Licence et attributions

MIT. Modèle de base : almanach/camembert-base (MIT). Données d'entraînement dérivées de WikiNER (CC-BY), BODACC et INSEE SIRENE (Licence Ouverte), Wikidata (CC0). Voir NOTICE dans le dépôt.

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for 5000dev/noirci

Quantized
(4)
this model