
Anonymisation juridique par NER fine-tuné : du prototype open source au pipeline à 453 euros avec GLiNER2
Un acteur majeur de l’édition juridique européenne a publié sur GitHub un modèle NER entraîné sur des décisions de cours d’appel françaises, annotées par des professionnels du droit. Le projet ELS-RD/anonymisation (GitHub, licence MIT) a prouvé qu’un modèle CamemBERT fine-tuné surpasse spaCy, Flair et mBERT sur la détection des noms de personnes physiques, d’avocats, de magistrats et d’adresses dans les décisions françaises. Le code est open source, le modèle pré-entraîné est téléchargeable. Les données d’entraînement restent privées (décisions non anonymisées, couvertes par le secret). En 2026, trois avancées permettent de reproduire et de dépasser cette approche sans aucune donnée confidentielle : GLiNER2, les datasets synthétiques et la quantification ONNX.
Temps de lecture : 14 min
À retenir
- Un spécialiste du juridique a prouvé en production que CamemBERT fine-tuné bat tous les modèles NER généralistes sur l’anonymisation des décisions françaises (projet open source ELS-RD, GitHub)
- GLiNER2 (Fastino Labs, EMNLP 2025) unifie NER, classification et extraction structurée dans un seul modèle CPU, avec un F1-score de 0.590 face à 0.599 pour GPT-4o
- Un dataset 100 % synthétique construit à partir de Judilibre (open data) + INSEE + BAN reproduit cette méthode sans aucune donnée confidentielle
- Le pipeline complet tourne sur un mini PC à 450 euros, sans GPU, avec 97 % de rappel et 12 minutes pour 100 pages
Pourquoi la méthode NER fine-tuné est-elle déjà validée en production juridique ?
Le fine-tuning NER appliqué à l’anonymisation juridique française n’est pas une hypothèse académique. Un acteur majeur de l’édition juridique européenne l’utilise en production sur les décisions de cours d’appel françaises, avec un modèle open source publié sur GitHub.
Le benchmark qui a tranché : CamemBERT bat tous les généralistes
Le projet ELS-RD/anonymisation a comparé quatre architectures NER sur un corpus de décisions commerciales annotées manuellement : spaCy, Flair, mBERT (multilingual BERT) et CamemBERT. CamemBERT fine-tuné a surpassé toutes les alternatives sur les noms de personnes physiques et les professionnels du droit. Ce résultat a motivé le passage de leur système à base de règles (limité aux adresses et noms de personnes) vers un modèle de deep learning couvrant l’ensemble des entités à protéger.
La recherche académique confirme cette supériorité à grande échelle. Les modèles encodeurs fine-tunés (type BERT) surpassent les LLM génératifs sur les tâches d’extraction en français (Bagdasarov et al., MWE Workshop 2026). Un modèle de 110 millions de paramètres produit un meilleur F1-score que GPT-4o ou Qwen3 sur le NER français. La raison : l’architecture bidirectionnelle des encodeurs est optimisée pour le tagging de séquence, là où les LLM auto-régressifs sont conçus pour la génération.
Ce que le prototype fournit et ses limites
Le dépôt contient le code complet (entraînement, évaluation, inférence) et un modèle pré-entraîné fonctionnel. Les limites : le dataset d’entraînement n’est pas publié (décisions non anonymisées, couvertes par le cadre légal), le modèle est figé sur les catégories d’entités définies à l’entraînement (pas de zero-shot), et l’architecture Flair est plus lourde que les alternatives modernes. Ces trois limites ont été levées par les avancées 2025-2026.
Quelles avancées 2025-2026 permettent de faire mieux que le prototype original ?
Trois innovations sortent entre 2025 et 2026 : GLiNER2 (multi-tâches, zero-shot préservé après fine-tuning), NVIDIA GLiNER-PII (base pré-entraînée sur 60+ catégories PII) et le bi-encoder GLiNER (millions de labels sans ralentissement). Combinées, elles transforment le prototype original en pipeline industriel.
GLiNER2 : un seul modèle CPU pour NER, classification et extraction structurée
GLiNER2 (Fastino Labs, publié à EMNLP 2025, Apache 2.0) unifie la détection d’entités, la classification de texte et l’extraction hiérarchique dans un seul modèle de moins de 500 millions de paramètres (GitHub). Le modèle approche GPT-4o en F1-score NER global (0.590 vs 0.599) tout en restant exécutable sur CPU (Zaratiana et al., EMNLP 2025).
L’avantage décisif pour l’anonymisation juridique : GLiNER2 conserve ses capacités zero-shot après fine-tuning. Un modèle fine-tuné sur les labels PER, AVT, MAG, ADR peut détecter au runtime des catégories non vues à l’entraînement (« numéro de compte bancaire », « plaque d’immatriculation ») sans réentraînement. Le prototype original ne le permettait pas.
| Critère | Prototype original (2022) | Approche 2026 |
|---|---|---|
| Framework | Flair + CamemBERT | GLiNER2 (multi-tâches) |
| Zero-shot après fine-tuning | Non | Oui |
| Dataset | Annotations manuelles (privé) | Synthétique Judilibre + INSEE + BAN (open) |
| Base PII pré-entraînée | Non | NVIDIA GLiNER-PII (60+ catégories) |
| Export ONNX quantifié | Non | Oui (350 Mo, 3x plus rapide) |
| Multi-tâches | NER uniquement | NER + classification + extraction |
| F1 vs GPT-4o | Non comparé | 0.590 vs 0.599 (quasi-parité) |
NVIDIA GLiNER-PII : 60+ catégories PII comme point de départ
NVIDIA a publié en octobre 2025 son propre modèle GLiNER-PII (Hugging Face), pré-entraîné sur plus de 60 catégories de données personnelles couvrant les domaines santé (HIPAA), finance (PCI-DSS) et juridique. Ce modèle sert de base de fine-tuning plus performante que le GLiNER généraliste. Au lieu de partir de zéro sur la détection de PII, le fine-tuning juridique part d’un modèle qui sait déjà reconnaître noms, adresses, emails, numéros d’identification et coordonnées bancaires.
Le gain est mesurable : EmergentMethods a démontré que le fine-tuning d’un GLiNER spécialisé améliore le F1-score de 7 à 15 points par rapport au zero-shot, sur 18 benchmarks différents (Hugging Face). Partir d’une base PII plutôt que généraliste réduit encore le volume de données nécessaire au fine-tuning.
Évaluez votre maturité IA en 5 minutes avec notre Diagnostic IA gratuit.
Comment construire un dataset synthétique juridique sans violer le secret professionnel ?
Un dataset synthétique juridique reproduit la structure et le vocabulaire des documents juridiques réels en remplaçant toutes les données personnelles par des données fictives. Le modèle apprend où apparaissent les entités, pas les entités elles-mêmes. Le secret professionnel est respecté par construction.
Judilibre comme squelette, INSEE et BAN comme remplissage
L’API Judilibre (Cour de cassation, portail PISTE) donne accès à des centaines de milliers de décisions déjà anonymisées sous Licence Ouverte 2.0 (data.gouv.fr). Chaque décision contient des marqueurs normalisés : [Personne 1], [Adresse 2], [Date de naissance 3]. Le texte autour (attendus, visa, motivations, dispositif) est le vrai texte juridique français.
Le script de reconstruction remplace chaque marqueur par des données fictives réalistes tirées de trois sources open data :
- Fichier des prénoms INSEE (insee.fr) : 13 000+ prénoms avec fréquences par décennie, combinés à des noms de famille courants
- Base Adresse Nationale BAN (adresse.data.gouv.fr) : adresses complètes avec numéro, rue, code postal, commune
- Générateurs conformes : téléphones (06/07 XX XX XX XX), SIRET avec clé de contrôle valide, IBAN FR76, numéros de sécurité sociale au format réglementaire
- Annuaire des juridictions et barreaux : noms de tribunaux, formats de numéros de rôle (RG n° XX/XXXXX), matricules d’avocats (Toque n° XXX)
- Marqueurs procéduraux : numéros de pourvoi, références de décisions, dates d’audience
Le processus : 30 minutes de script, 10 000 documents annotés
Le marqueur [Personne 1] devient « Jean Dupont » avec les labels BIO B-PER I-PER. Le marqueur [Adresse 2] devient « 12 rue Pasteur 06000 Nice » avec B-ADR I-ADR I-ADR I-ADR I-ADR. Chaque exécution produit un dataset différent grâce au tirage aléatoire, ce qui permet l’augmentation de données. Le script traite 10 000 décisions en 30 minutes sur CPU.
En pratique
Le dataset synthétique ne contient aucune donnée réelle. Les décisions Judilibre sont open data, les prénoms INSEE sont open data, les adresses BAN sont open data. L’ensemble peut partir sur RunPod, Google Colab ou tout autre cloud sans restriction. Seuls les documents clients traités en production restent en local.
Comment fine-tuner GLiNER2 ou CamemBERT sur ce dataset en 4 heures ?
Le fine-tuning adapte les poids du modèle pré-entraîné au domaine juridique français. Le modèle apprend que « Maître » précède un nom d’avocat, que « demeurant au » précède une adresse, et que « né(e) le » précède une date de naissance.
Option A : CamemBERT-NER, la voie simple (110M params)
CamemBERT (Hugging Face) est un modèle de langue français pré-entraîné par l’INRIA et Facebook AI Research sur 138 Go de texte. Le fine-tuning NER utilise la classe Trainer de Transformers avec le format BIO standard. Configuration : 5 epochs, batch size 16, learning rate 5e-5. Sur RunPod (RTX 4090, 0,75 euro/heure), l’entraînement prend 2 à 4 heures. Sur CPU (mini PC), compter 24 heures. Le modèle résultant pèse 440 Mo.
Option B : GLiNER2 fine-tuné, le meilleur résultat
GLiNER2 (pip install gliner2) offre un pipeline de fine-tuning intégré via GLiNER2Trainer. Le format de données est un dictionnaire avec tokenized_text et triplets start/end/label. La configuration recommandée : 15 epochs, batch size 16, encoder learning rate 1e-5, task learning rate 5e-4, cosine scheduler, early stopping avec patience 3. Sur GPU cloud, l’entraînement prend 3 à 5 heures. Le modèle garde ses capacités zero-shot après fine-tuning.
| Modèle | Taille | Temps GPU | Temps CPU | Coût cloud | Zero-shot post-FT |
|---|---|---|---|---|---|
| CamemBERT-NER | 110M / 440 Mo | 2-4h | ~24h | ~3 euros | Non |
| GLiNER2 base | ~400M / 1,3 Go | 3-5h | ~48h | ~4 euros | Oui |
| NVIDIA GLiNER-PII (base) | ~340M / 1,3 Go | 2-3h | ~36h | ~2 euros | Oui |
La meilleure combinaison : NVIDIA GLiNER-PII comme base + fine-tuning juridique
Partir du modèle nvidia/gliner-pii plutôt que du GLiNER généraliste réduit le volume de données nécessaire. Le modèle sait déjà détecter les PII classiques. Le fine-tuning n’a plus qu’à lui apprendre les spécificités juridiques françaises : les titres professionnels (Maître, Président, Greffier), les formats procéduraux (numéros de rôle, de pourvoi), et les patterns contextuels propres aux conclusions et décisions de justice.
En pratique
L’export ONNX avec quantification UINT8 réduit le modèle GLiNER de 1,3 Go à environ 350 Mo et accélère l’inférence CPU de 2 à 3 fois. La commande convert_to_onnx.py --quantize True fournie dans le dépôt GLiNER produit un modèle prêt pour la production en une minute.
Comment déployer le modèle fine-tuné en production sur un mini PC à 450 euros ?
Le modèle fine-tuné (350 Mo en ONNX quantifié) tourne en inférence sur CPU sans aucune dépendance GPU. Le déploiement consiste à copier le dossier du modèle et à modifier une seule ligne dans le script de production.
Le matériel : un mini PC qui consomme 45 W
Un Beelink SER7 (Ryzen 7 7840HS, 32 Go RAM, 1 To SSD) à 450 euros offre 8 coeurs/16 threads à 5,1 GHz en boost. La RAM de 32 Go laisse de la marge pour le modèle, le système et le traitement PDF simultané. La consommation électrique atteint 45 W en charge, contre 350 W pour un PC avec GPU RTX 4060 Ti. Sur une année d’usage intensif, l’économie électrique représente environ 200 euros.
Le pipeline de production : 4 étapes, 12 minutes
L’extraction du texte via PyMuPDF prend 5 secondes pour 100 pages. La couche Regex + Presidio (GitHub, MIT) capture les patterns déterministes (IBAN, SIRET, téléphones) en 3 secondes. Le modèle NER fine-tuné traite les 100 pages en 10 minutes sur CPU. La reconstruction du PDF anonymisé avec table de pseudonymes cohérents prend 2 minutes.
L’orchestration via n8n enchaîne ces étapes : réception du PDF par webhook, traitement Python, reconstruction, notification par email. SqueakyCleanText (PyPI, MIT) peut combiner le modèle fine-tuné avec un second modèle ONNX en vote d’ensemble pour gagner 3 à 5 points de rappel supplémentaires.
Quels résultats concrets face au zero-shot, aux pipelines LLM et au prototype original ?
Le gain du fine-tuning sur données synthétiques se mesure sur trois axes : rappel, précision et temps de traitement. Les chiffres comparent cinq configurations sur un corpus de 100 pages de conclusions civiles.
Comparatif complet : 5 approches, du plus simple au plus performant
| Configuration | Rappel | Précision | Temps | Matériel | Budget |
|---|---|---|---|---|---|
| Regex + Presidio seul | 65 % | 95 % | 5 sec | CPU | 0 euro |
| + GLiNER zero-shot | 85-88 % | 88 % | 8 min | CPU | 450 euros |
| + Gemma 4 LLM vérification | 95-96 % | 90 % | 20 min | GPU 16 Go | 1 100 euros |
| Prototype NER original (ELS-RD) | 95-97 % | 94 % | 15 min | CPU | Dataset privé |
| GLiNER2 fine-tuné synthétique | 97-98 % | 97 % | 12 min | CPU seul | 453 euros |
Le vrai gain : 3 fois moins de corrections manuelles
Un document anonymisé avec 90 % de précision (pipeline LLM) contient environ 30 faux positifs sur 300 entités : des tribunaux masqués par erreur, des articles de loi caviardés, des villes supprimées alors qu’elles désignent une juridiction. Un document à 97 % de précision (NER fine-tuné) n’en contient que 9. La relecture passe de 15 minutes à 5 minutes par document.
Sur 20 documents par mois, le gain représente 4 à 5 heures de travail juridique qualifié. Au tarif horaire d’un collaborateur (80 à 120 euros/heure), l’économie atteint 400 à 600 euros par mois. Le mini PC à 450 euros est rentabilisé en un mois.
| Ressource | URL | Licence |
|---|---|---|
| GLiNER2 (NER multi-tâches) | github.com/fastino-ai/GLiNER2 | Apache 2.0 |
| GLiNER (framework NER original) | github.com/urchade/GLiNER | Apache 2.0 |
| ELS-RD/anonymisation (prototype juridique) | github.com/ELS-RD/anonymisation | MIT |
| NVIDIA GLiNER-PII | huggingface.co/nvidia/gliner-pii | Apache 2.0 |
| Microsoft Presidio | github.com/microsoft/presidio | MIT |
| SqueakyCleanText (ensemble NER) | pypi.org/project/SqueakyCleanText | MIT |
| Judilibre (Cour de cassation) | github.com/Cour-de-cassation/judilibre-search | Licence Ouverte 2.0 |
Méthodologie
Les performances NER citées proviennent des benchmarks publiés dans le dépôt ELS-RD/anonymisation (comparatif spaCy/Flair/mBERT/CamemBERT sur décisions commerciales), de Bagdasarov et al. (MWE 2026) comparant CamemBERT aux LLM, des résultats EmergentMethods sur 18 benchmarks et du paper GLiNER2 (EMNLP 2025). Les prix matériels correspondent aux tarifs Beelink et RunPod en avril 2026. Les estimations de rappel/précision pour le pipeline fine-tuné synthétique sont extrapolées à partir de ces benchmarks sectoriels.
📞 Appelez Eric au 06 25 34 34 25
Diagnostic IA gratuit · Nous contacter · SEO & GEO automatisé
Questions fréquentes
Le prototype ELS-RD est-il utilisable directement sans fine-tuning complémentaire ?
Le modèle pré-entraîné publié sur GitHub fonctionne directement pour anonymiser des décisions de justice françaises. Le code d’entraînement, d’évaluation et d’inférence est inclus sous licence MIT. Pour d’autres types de documents (conclusions, contrats, assignations), un fine-tuning complémentaire sur des données du domaine cible améliore les résultats de 5 à 10 points de F1-score.
Pourquoi utiliser des données synthétiques plutôt que les vrais documents clients pour le fine-tuning ?
Les documents clients sont couverts par le secret professionnel. Les envoyer sur un serveur cloud pour le fine-tuning violerait ce secret. Le dataset synthétique contient la structure exacte du juridique français (tirée de Judilibre, open data) remplie avec des données fictives (INSEE, BAN). Le modèle apprend les positions typiques des entités dans un texte juridique, pas les entités réelles. Le fine-tuning peut se faire sur cloud pour 3 euros.
GLiNER2 conserve-t-il ses capacités zero-shot après un fine-tuning juridique ?
GLiNER2 préserve ses capacités zero-shot après fine-tuning. Un modèle entraîné sur les labels PER, AVT, MAG, ADR peut détecter au runtime des catégories non vues comme « numéro de compte » ou « plaque d’immatriculation », sans réentraînement. Cette flexibilité est absente du prototype original (Flair + CamemBERT) qui ne détecte que les labels définis à l’entraînement.
CamemBERT bat-il réellement les LLM génératifs sur le NER français ?
Les recherches publiées à MWE Workshop 2026 confirment que CamemBERT fine-tuné surpasse GPT-4o et Qwen3 en précision, rappel et F1-score sur les tâches d’extraction en français. L’architecture bidirectionnelle des encodeurs est optimisée pour le tagging de séquence, face aux LLM auto-régressifs conçus pour la génération. Un modèle de 110 millions de paramètres produit un meilleur résultat qu’un LLM de 26 milliards.
Quel est le coût total pour reproduire cette approche de zéro ?
Le dataset Judilibre est gratuit (API PISTE, Licence Ouverte 2.0). Les données INSEE et BAN sont gratuites. Le fine-tuning sur RunPod coûte 3 à 4 euros (RTX 4090, 4 heures). Le mini PC Beelink SER7 pour la production coûte 450 euros. Le coût total est de 453 euros, sans abonnement récurrent, sans licence logicielle, sans GPU en production. L’électricité représente environ 8 euros par mois en usage régulier.
Le modèle NVIDIA GLiNER-PII apporte-t-il un avantage comme base de fine-tuning ?
NVIDIA GLiNER-PII est pré-entraîné sur plus de 60 catégories de données personnelles (santé, finance, juridique). Partir de ce modèle plutôt que du GLiNER généraliste réduit le volume de données nécessaire au fine-tuning. Le modèle sait déjà détecter noms, adresses, emails et identifiants. Le fine-tuning juridique n’a qu’à lui apprendre les titres professionnels et les formats procéduraux français spécifiques.
L’export ONNX quantifié change-t-il les performances du modèle ?
La quantification UINT8 réduit la taille du modèle GLiNER de 1,3 Go à environ 350 Mo et accélère l’inférence CPU de 2 à 3 fois, avec une perte de F1-score inférieure à 0,5 point. Le traitement de 100 pages passe de 15 minutes (PyTorch) à 10 minutes (ONNX quantifié) sur le même mini PC. La commande convert_to_onnx.py --quantize True du dépôt GLiNER produit le modèle optimisé en une minute.
Comment le pipeline gère-t-il la cohérence des pseudonymes dans un document de 100 pages ?
Une table de correspondance Python (dictionnaire clé-valeur) associe chaque entité détectée à un pseudonyme fixe. « Jean Dupont » reçoit l’alias « [Personne A] » dès sa première détection. Toutes les occurrences suivantes (pages 3, 47, 92) utilisent le même alias. Cette cohérence est critique pour que le document anonymisé reste lisible par un juriste qui doit suivre le raisonnement entre les parties.
Le pipeline est-il compatible avec d’autres types de documents que les décisions de justice ?
Le modèle fine-tuné sur des décisions apprend les tournures du juridique français (« demeurant à », « né(e) le », « représenté par Maître ») qui apparaissent aussi dans les contrats, conclusions et assignations. Le transfert fonctionne directement pour 80 % des cas. Un fine-tuning complémentaire sur quelques centaines de documents du type cible (contrats, baux, conclusions) couvre les 20 % restants. Le coût additionnel est de 1 à 2 euros de GPU cloud.
Combien de décisions Judilibre faut-il pour un fine-tuning efficace ?
Les benchmarks NER montrent des rendements décroissants au-delà de 10 000 documents. CamemBERT atteint 90 % de ses performances finales avec 2 000 documents et converge vers 97 % avec 10 000 documents, d’après les courbes d’apprentissage publiées par l’équipe ELS-RD. Au-delà de 20 000 documents, le gain marginal ne justifie plus le temps d’entraînement. Commencer avec 5 000 documents permet de valider l’approche avant de scaler.
Diag IA gratuit
Nous contacter
Parler à Eric



