Downloads · 30 days
8
13% of all-time downloads
jmdanto/titibongbong_9L_v2
titibongbong_9L_v2 is a token classification model from jmdanto. Use it when you need labels on individual words, such as names. It is set up for transformers. The card lists the license as mit.
[](https://opensource.org/licenses/MIT) [](https://huggingface.co/jmdanto/titibongbong9Lv2) [](https://python.org) [](https://github.com/huggingface/transformers)
Downloads · 30 days
8
13% of all-time downloads
All-time downloads
61
Public
Parameters
88.8M
178 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors178 MB · 98%
From the Hugging Face model README
Distilled from titibongbong v1 (11L) → 9 layers | 169 MB FP16 | 5 classes NER.
Modèle de reconnaissance d'entités nommées (NER) optimisé pour les documents médico-sociaux français, avec un accent sur la pseudonymisation (RGPD). Version 9 couches obtenue par distillation avec KL divergence + cross-entropy, sans perte de qualité par rapport au teacher 11 couches.
Évalué sur 9 rapports médico-sociaux complets annotés manuellement (975 entités) via le pipeline complet : NER → règles regex → gazetteers Aho-Corasick → conflict resolver.
| Métrique | titibongbong v1 (11L) | titibongbong v2 (9L) | Δ |
|---|---|---|---|
| F1 Global | 86.4% | 86.8% | +0.4 pt ✅ |
| F1 Pondéré | 89.6% | 89.8% | +0.2 pt ✅ |
| Précision | 83.2% | 83.2% | — |
| Rappel | 90.0% | 90.8% | +0.8 pt ✅ |
| F1 CRIT | 95.5% | 95.5% | — |
| F1 ELEV | 96.1% | 96.4% | +0.3 pt ✅ |
| F1 MOY | 94.8% | 95.5% | +0.7 pt ✅ |
Métriques excluant la catégorie FAIB (entités à faible risque de réidentification).
| Propriété | Valeur |
|---|---|
| Base | CamemBERT (RoBERTa français) |
| Couches | 9 (vs 12 pour Jean-Baptiste originel, 11 pour v1) |
| Paramètres | 88.8M |
| Taille (FP16) | 169 MB (vs 393 MB FP32 v1, 420 MB teacher 12L) |
| Labels | 5 classes : O, I-LOC, I-PER, I-MISC, I-ORG |
| Précision | FP16 (half precision) |
| Tokenization | SentencePiece 32K vocab |
| Max sequence | 512 tokens |
jmdanto/titibongbong_camemBERT_NER (11 couches)from transformers import AutoTokenizer, AutoModelForTokenClassification, pipeline
model = AutoModelForTokenClassification.from_pretrained("jmdanto/titibongbong_9L_v2")
tokenizer = AutoTokenizer.from_pretrained("jmdanto/titibongbong_9L_v2")
ner = pipeline("token-classification", model=model, tokenizer=tokenizer,
aggregation_strategy="simple")
# Exemple réel — rapport médico-social
text = "Madame Sophie BERNARD, née le 12/05/1978, est suivie par le CCAS de Lille."
results = ner(text)
for ent in results:
print(f"{ent['entity_group']:>6}: {ent['word']}")
# PER: Madame Sophie BERNARD
# ORG: CCAS de Lille
Mesuré avec torch.compile (reduce-overhead), texte ~1200 caractères.
| Plateforme | Temps NER (9L FP16) | Gain vs v1 (11L FP32) |
|---|---|---|
| Apple M3 Max (16 cœurs) | 0.044s | ×1.0 (vitesse) |
| PC standard (i5, 8 Go, 4 threads) | ~0.09s (estimé) | ×1.2 (vitesse) |
Le gain principal de v2 est la taille mémoire (169 MB FP16 vs 393 MB FP32) et la réduction du nombre de couches (9 vs 11), critique pour le déploiement local sur des machines à RAM limitée (8-16 Go). La vitesse d'inférence CPU est comparable parce que le goulot d'étranglement du pipeline complet n'est pas le NER mais les gazetteers (Aho-Corasick).
Entraîné et évalué sur un corpus varié de documents du secteur social et médico-social français :
| Version | Méthode | Couches | Taille | F1 | HuggingFace |
|---|---|---|---|---|---|
| v1 | Fine-tune + pruning | 11L | 393 MB FP32 | 86.4% | titibongbong_camemBERT_NER |
| v2 | Distillation | 9L | 169 MB FP16 | 86.8% | Ce modèle |
Le secteur médico-social produit des documents à haute densité de données personnelles : identités, dates, adresses, numéros de dossier, organisations impliquées, parcours de soins. Leur traitement par des LLM externes expose à des risques de réidentification que le cadre juridique actuel appréhende avec une exigence croissante.
La jurisprudence récente est sans ambiguïté : la qualification juridique des données ne dépend pas de la technique utilisée, mais repose uniquement sur l'appréciation objective du risque effectif de réidentification (Conseil d'État, n°498628, 13 février 2026, confirmant CJUE, OC c/ Commission, 7 mars 2024). La pseudonymisation ne saurait être assimilée à une anonymisation, sauf à démontrer concrètement que la réidentification est, en pratique, irréalisable — et la charge de cette démonstration pèse sur le responsable de traitement.
LaPlume adopte une logique de pseudonymisation dense, conçue précisément pour atteindre ce seuil d'irréalisabilité pratique. La taxonomie 101 catégories ne se limite pas aux identifiants directs (NIR, nom, date de naissance) : elle couvre systématiquement les vecteurs de réidentification indirecte — organisations nommées, établissements, services, dates et heures, codes et références institutionnelles. Même sans identification directe, la possibilité de réidentification indirecte suffit à qualifier les informations de données personnelles de santé : c'est exactement ce risque que la profondeur de la taxonomie vise à neutraliser.
Deux usages cibles, une même exigence :
Ce que LaPlume ne prétend pas : la pseudonymisation dense reste une mesure de sécurisation, pas une anonymisation au sens juridique. La responsabilité du traitement demeure entière — LaPlume réduit le risque d'exposition, elle ne le supprime pas.
Une évaluation inter-annotateurs avec deux codeurs indépendants sur 20 rapports (~3 000 entités) est en cours et fera l'objet d'une publication dédiée.
@misc{titibongbong_v2_2026,
author = {Danto, Patrick},
title = {titibongbong v2: CamemBERT-NER 9L distillé pour la pseudonymisation de documents médico-sociaux},
year = {2026},
publisher = {HuggingFace},
url = {https://huggingface.co/jmdanto/titibongbong_9L_v2}
}
Ce modèle est un composant du pipeline LaPlume de pseudonymisation RGPD pour le secteur social et médico-social.