Files
anonymisation/docs/camembert-bio-deid-v3-specs.md
Domi31tls eb14cd219d feat(phase3): CamemBERT v3 + détection villes + initiales + texte espacé + docs réglementaires
Intégration du modèle CamemBERT-bio-deid v3 (F1=0.96, Recall=0.97, 1112 docs)
et corrections qualité issues de l'audit approfondi sur 29 fichiers.

Détection des villes en texte libre :
- Automate Aho-Corasick sur 33K communes INSEE + 11.6K villes FINESS
- Stratégie contextuelle : exige un contexte géographique (à, de, vers,
  habite, urgences de, etc.) sauf pour les villes composées (Saint-Palais)
- Blacklist de ~80 communes homonymes de mots courants (charge, signes, plan...)
- Normalisation SAINT↔ST pour les variantes orthographiques
- De 18 fuites de villes à 2 cas résiduels atypiques

Masquage des initiales de prénom :
- Post-traitement regex : "Dr T. [NOM]" → "Dr [NOM] [NOM]"
- Références initiales : "Ref : JF/VA" → "Ref : [NOM]/[NOM]"

Détection texte espacé d'en-tête :
- "C E N T R E  H O S P I T A L I E R" → [ETABLISSEMENT]

Autres corrections :
- Fix regex RE_EXTRACT_MME_MR (Mr?.? → Mr.?, \s+ → [ \t]+, * → {0,4})
- Stop words médicaux : lever, coucher, services hospitaliers (viscérale, etc.)
- CamemBERT NER manager : version tracking, propriété version, log F1/Recall
- Script finetune : export ONNX automatique + mise à jour VERSION.json
- Évaluateur qualité : exclusion stop words médicaux des alertes INSEE

Documentation :
- Spécifications techniques CamemBERT-bio-deid v3
- Conformité RGPD + AI Act (caviardage PDF raster)
- AIPD (Analyse d'Impact Protection des Données)

Score qualité : 97.0/100 (Grade A), Leak score 100/100

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 12:16:13 +01:00

3.1 KiB

CamemBERT-bio-deid v3 — Specifications techniques

Modele de base

  • Architecture : CamemBERT (RoBERTa-based), Token Classification
  • Modele pre-entraine : almanach/camembert-bio-base (LORIA/INRIA)
  • Parametres : ~110M (12 couches, 768 hidden, 12 attention heads)
  • Vocabulaire : 32 005 tokens (SentencePiece BPE)
  • Specialisation pre-entrainement : corpus biomedical francais (PubMed, theses, litterature clinique)

Fine-tuning

Parametre Valeur
Documents d'entrainement 1 112 documents cliniques (CR hospitalisation, Trackare, CRO, lettres de sortie)
Exemples totaux 198 260 (52 121 originaux + 145 539 augmentes + 600 hard negatives)
Augmentation de donnees Substitution de noms par gazetteer INSEE (219K patronymes)
Hard negatives Medicaments BDPM + termes QUAERO (CHEM, DISO, PROC, ANAT)
Epochs 20
Batch size effectif 16 (GPU batch=8 x gradient accumulation=2)
Learning rate 1x10-5
Max sequence length 512 tokens
Optimizer AdamW
GPU NVIDIA GeForce RTX 5070 (12 Go VRAM)
Duree d'entrainement ~14h15
Framework HuggingFace Transformers 4.42, PyTorch

Annotations d'entrainement (Silver)

  • Methode : alignement diff entre texte original et texte pseudonymise par le pipeline multi-moteurs (EDS-Pseudo + GLiNER + regex + gazetteers)
  • Format : BIO (Beginning-Inside-Outside)
  • Source : documents T2A CHCB 2023, dossiers de justificatifs
  • Pas de validation humaine (silver, non gold)

Categories NER (14 types, 29 labels BIO)

Categorie Description
PER Noms de personnes (patients, soignants)
DATE_NAISSANCE Dates de naissance
ADRESSE Adresses postales
ZIP Codes postaux
VILLE Villes, lieux de naissance
HOPITAL Etablissements de sante
TEL Numeros de telephone
EMAIL Adresses email
NIR Numeros de securite sociale
IPP Identifiants Patient Permanent
NDA Numeros de Dossier Administratif
RPPS Numeros RPPS (professionnels de sante)
IBAN Coordonnees bancaires
AGE Ages

Performances (sur jeu de validation, 20% des donnees)

Metrique v2 (29 docs) v3 (1 112 docs)
F1-score 0.903 0.963
Recall 0.930 0.970
Precision 0.877 0.957

Inference (production)

Parametre Valeur
Format ONNX Runtime
Taille du modele 421 Mo
Runtime ONNX Runtime CPU (CPUExecutionProvider)
Latence ~10-20 ms / 512 tokens
Threads 2 inter-op, 4 intra-op
Fenetre glissante 400 tokens, stride 200 (textes longs)
Seuil de confiance 0.5 (prediction), 0.3 (vote croise EDS-Pseudo)
Materiel cible PC standard, CPU uniquement (pas de GPU requis)

Role dans le pipeline

CamemBERT-bio-deid v3 est le 3eme moteur NER du pipeline d'anonymisation, utilise en vote croise avec EDS-Pseudo (moteur principal) et GLiNER (zero-shot). Il confirme ou infirme les detections d'EDS-Pseudo pour reduire les faux positifs sans sacrifier le recall. Il n'opere jamais seul — c'est un signal de validation.