BRANCO - Comparaison du filtre avant transmission à une IA Essai interne du 3 octobre 2026 PÉRIMÈTRE 74 textes fictifs courts, comportant 76 occurrences d’identifiants à masquer. Les cas couvrent notamment les prénoms, les patronymes, les noms composés, les adresses détaillées, les courriels, les identifiants administratifs et bancaires, ainsi que des mots ordinaires et des références juridiques à garder. Aucun document utilisateur n’a été transmis à une API pour cet essai. Le corpus a servi à améliorer BRANCO. Les résultats finaux sont des résultats de vérification sur ces cas, et non une mesure indépendante de la performance générale sur des documents réels. Ils ne permettent pas de classer tous les outils d’anonymisation ni de garantir l’anonymat d’un document. RÉSULTATS SUR CE CORPUS Configuration Identifiants Textes avec masquage complets / 76 superflu / 74 BRANCO avant les corrections 73 7 OpenAI Privacy Filter q4 seul 53 12 Premier candidat BRANCO 75 1 BRANCO final 76 0 BRANCO final + détections OpenAI 76 12 BRANCO final + personnes OpenAI 76 4 Les deux combinaisons avec OpenAI sont des variantes expérimentales : les positions détectées par les deux moteurs sont réunies. Elles ne sont pas intégrées à l’outil publié. COMPLÉMENT : RÈGLES PUBLIQUES DE LA COUR DE CASSATION UTILISÉES SEULES La fonction match_regex de juritools est exécutée dans sa version d’origine, avec toutes ses options actives, sans entités préannotées ni métadonnées. Elle utilise les validateurs luhn 0.2.0 et schwifty 2021.1.0. Le code de recherche, de validation, de contrôle des chevauchements et d’insertion est inchangé ; seuls les conteneurs de données sont allégés pour exécuter cette fonction sans charger les dépendances du modèle d’apprentissage. La comparaison ci-dessous porte sur les 15 identifiants du corpus relevant des catégories de cette fonction : courriels, comptes et cartes bancaires, numéros de sécurité sociale, passeports et immatriculations. Le sous-ensemble est choisi par catégorie avant lecture des résultats. Notre politique de masquage inclut les formats internationaux et les numéros mal saisis. Configuration Identifiants entièrement masqués / 15 BRANCO final 15 OpenAI Privacy Filter q4 11 Juritools, fonction match_regex seule 7 Aucun masquage superflu n’est mesuré sur ces 15 textes pour ces configurations. Les règles de juritools laissent partiellement ou entièrement visibles les cinq courriels, un compte allemand sur deux lignes, une carte au contrôle de validité incorrect et un numéro de sécurité sociale corse. BRANCO masque intégralement ces huit cas supplémentaires. Cette exécution porte sur les règles de juritools, sans le modèle entraîné de reconnaissance des noms utilisé par la Cour de cassation. Le dépôt public demande de fournir ce modèle séparément. Il ne s’agit donc pas d’une mesure du système complet de la Cour de cassation. PROTOCOLE COMMUN Le corpus et les annotations ont été fixés avant lecture des prédictions, avec 37 textes de développement et 37 textes réservés, répartis par alternance dans chaque catégorie. Le premier candidat BRANCO a été figé avant ouverture des résultats réservés. Sur ces 37 textes, il traite 35 textes sans erreur mesurée, contre 31 avant modification ; il masque intégralement 36 identifiants sur 37, contre 35 auparavant. Les deux erreurs restantes ont ensuite servi à corriger la version finale, d’où la qualification de corpus de développement et de vérification pour les résultats finaux. Un identifiant est complet lorsque tous ses caractères alphanumériques sont masqués. Un masquage superflu est compté lorsqu’un texte perd un autre caractère alphanumérique, hors civilité adjacente et formule de naissance. Les dates de procédure, les montants, les références juridiques publiques et les villes isolées doivent rester lisibles selon les critères BRANCO retenus. Ces critères peuvent différer de la politique native d’OpenAI, notamment pour les dates et les numéros fictifs connus. L’essai mesure l’adéquation à cet usage précis. OpenAI Privacy Filter : poids officiels ONNX q4, révision 7ffa9a043d54d1be65afb281eddf0ffbe629385b ; ONNX Runtime 1.30.0, processeur macOS arm64, un fil de calcul, tokenizer officiel et décodage BIOES contraint à biais nuls. Aucun réentraînement ni ajustement des seuils. La comparaison ne porte ni sur les poids en pleine précision, ni sur une API, ni sur une exécution avec processeur graphique. Empreinte SHA-256 du corpus : 24936ea7d0c8b395f7e3503d7bc788ba3919f3828f8efedce1786c0669372d75 COMPOSITION DU MOTEUR PUBLIÉ BRANCO associe des règles adaptées de juritools (Cour de cassation), des détecteurs adaptés de Presidio, des répertoires de prénoms et de noms de l’Institut national de la statistique et des études économiques (Insee), et ses propres traitements du contexte. Les utilisateurs peuvent compléter le masquage et conserver une table de correspondances locale. Les modèles entraînés de la Cour de cassation et du Conseil d’État ne sont pas intégrés. Le dépôt public d’Etalab pour le Conseil d’État ne distribue pas son modèle entraîné. Seule sa fonction de rapprochement de noms a pu être testée séparément ; aucun résultat de reconnaissance n’est attribué au moteur du Conseil d’État. Ce rapprochement n’a pas été retenu. SOURCES DES OUTILS EXAMINÉS Juritools, Cour de cassation : https://github.com/Cour-de-cassation/juritools/tree/1574d10ed818df6e80b9d192e7bbf58c14e32657 Presidio : https://github.com/data-privacy-stack/presidio/tree/d4ccc6bcb6b6a7144336fe93b7839e61e251301b OpenAI Privacy Filter, poids exécutés : https://huggingface.co/openai/privacy-filter/tree/7ffa9a043d54d1be65afb281eddf0ffbe629385b OpenAI Privacy Filter, code du décodeur : https://github.com/openai/privacy-filter/tree/f7f00ca7fb869683eb732c010299d901457f19c3 Etalab, pseudo_api : https://github.com/etalab-ia/pseudo_api/tree/c563ad919acbfd7a3d6dccbb65b8f2e751e264f8