🔐 CamemBERT-NER-PII V2 - ONNX FP16 (WebGPU Optimisé)
Modèle d'anonymisation de données personnelles (PII) en français - Version ONNX FP16 optimisée pour WebGPU
🎯 Vue d'ensemble
Version ONNX FP16 du modèle CamemBERT fine-tuné pour la détection de données personnelles (PII) en français.
✨ POURQUOI FP16 POUR WEBGPU ?
- WebGPU convertit automatiquement FP32→FP16 (mal optimisé, perte de qualité)
- Ce modèle FP16 natif évite la dégradation qualité
- Export optimisé = meilleure précision que FP32 chargé sur WebGPU
- Taille réduite de 50% vs FP32
- Vitesse GPU 2x plus rapide que FP32
📊 Caractéristiques
| Métrique | Valeur |
|---|---|
| Format | ONNX FP16 natif |
| Taille | ~220 MB (50% vs FP32) |
| Précision | ~90-95% du FP32 |
| F1 Score | ~0.88-0.91 (estimé) |
| Device | WebGPU (GPU navigateur) |
| Modèle base | almanach/camembert-base |
| Langue | Français 🇫🇷 |
🎯 Comparaison avec autres formats
| Format | Taille | Précision | Vitesse GPU | Usage recommandé |
|---|---|---|---|---|
| FP32 | ~440 MB | 100% ✅ | Moyenne | WASM CPU (max précision) |
| FP16 | ~220 MB | ~90-95% ✅ | Rapide ⚡ | WebGPU (optimal) |
| INT8 | ~110 MB | ~70-80% ⚠️ | N/A | Contraintes taille |
Recommandation :
- ✅ WebGPU disponible → Utiliser FP16 (ce modèle) - meilleur compromis
- ✅ CPU uniquement → Utiliser FP32
- ⚠️ Taille critique → Utiliser INT8
🚀 Installation et Utilisation
Navigateur (Transformers.js + WebGPU)
import {{ pipeline }} from '@huggingface/transformers';
// ✅ CONFIGURATION OPTIMALE WEBGPU + FP16
const ner = await pipeline(
'token-classification',
'Anonym-IA/V2-camembert-ner-pii-onnx-fp16',
{{
device: 'webgpu', // Utiliser GPU
dtype: 'fp16' // Correspond au modèle FP16 exporté
}}
);
const text = "Jean Dupont habite au 12 rue de la Paix, 75001 Paris";
const result = await ner(text);
console.log(result);
// [
// {{ entity: 'B-PRENOM_PERSONNE', word: 'Jean', score: 0.92 }},
// {{ entity: 'B-NOM_PERSONNE', word: 'Dupont', score: 0.94 }},
// ...
// ]
Python (ONNX Runtime)
from optimum.onnxruntime import ORTModelForTokenClassification
from transformers import AutoTokenizer, pipeline
# Chargement
model = ORTModelForTokenClassification.from_pretrained(
"Anonym-IA/V2-camembert-ner-pii-onnx-fp16",
subfolder="onnx"
# file_name="model.onnx" est le défaut, pas besoin de le spécifier
)
tokenizer = AutoTokenizer.from_pretrained(
"Anonym-IA/V2-camembert-ner-pii-onnx-fp16"
)
# Pipeline
ner = pipeline("ner", model=model, tokenizer=tokenizer, aggregation_strategy="simple")
# Utilisation
text = "Sophie Martin habite à Lyon. Email: sophie.martin@example.fr"
result = ner(text)
print(result)
🎭 Entités détectées (83 classes)
Identité personnelle
NOM_PERSONNE: Noms de famillePRENOM_PERSONNE: PrénomsNOM_SOCIETE: Raisons sociales
Coordonnées
EMAIL: Adresses emailTELEPHONE: Numéros de téléphoneNUMERO_VOIE,NOM_VOIE,CODE_POSTAL,VILLE: Adresses postales
Identifiants administratifs
NUM_SECURITE_SOCIALE: Numéros de sécurité sociale françaisIBAN: Comptes bancairesNUM_DOSSIER: Numéros de dossier juridiquesREF_CADASTRALE: Références cadastrales- Et 70+ autres catégories PII
🔧 Détails techniques
Conversion FP16
- Méthode : onnxconverter-common (conversion optimisée)
- Précision : float32 → float16
- Ops conservées en FP32 : Softmax, LayerNormalization (stabilité)
- I/O types : Conservés en FP32 (compatibilité)
Avantages FP16 vs FP32 sur WebGPU
| Aspect | FP32 chargé sur WebGPU | FP16 natif (ce modèle) |
|---|---|---|
| Conversion runtime | Oui (mal optimisée) ❌ | Non (directement utilisable) ✅ |
| Qualité détection | Dégradée (~60-70%) ❌ | Excellente (~90-95%) ✅ |
| Scores confiance | Bas (~0.3-0.6) ❌ | Normaux (~0.85-0.95) ✅ |
| Taille | 440 MB | 220 MB ✅ |
| Vitesse GPU | Moyenne | Rapide (2x) ✅ |
Problème résolu : Si vous obtenez de mauvais résultats avec FP32 sur WebGPU (scores < 0.7, faux positifs), utilisez ce modèle FP16 natif.
📈 Performances
Métriques estimées (FP16)
- F1 Global : ~0.88-0.91 (vs 0.93 pour FP32)
- F1 NOM_PERSONNE : ~0.92-0.94
- F1 EMAIL : ~0.88-0.91
- F1 IBAN : ~0.85-0.88
Benchmarks navigateur (WebGPU)
| GPU | Chargement | Inférence (512 tokens) | Mémoire |
|---|---|---|---|
| RTX 3060 | ~3-5s | ~100-150ms | ~250 MB |
| RTX 4070 | ~2-3s | ~60-100ms | ~250 MB |
| AMD RX 6700 | ~4-6s | ~120-180ms | ~280 MB |
🔗 Liens
- Modèle PyTorch : https://huggingface.co/Anonym-IA/V2-camembert-ner-pii-french
- ONNX FP32 : https://huggingface.co/Anonym-IA/V2-camembert-ner-pii-onnx-fp32
- ONNX INT8 : https://huggingface.co/Anonym-IA/V2-camembert-ner-pii-onnx-int8
- GitHub : Anonym-IA_LLM_Pseudonymisation
- Transformers.js : https://huggingface.co/docs/transformers.js
Généré automatiquement le 2026-01-19 21:55:32
- Downloads last month
- 2
Model tree for Anonym-IA/V2-camembert-ner-pii-onnx-fp16
Base model
almanach/camembert-base