NER Ordres de Mission
Système d'extraction d'entités en français avec fine-tuning CamemBERT
0,89F1 CamemBERT
0,84F1 spaCy
~5 mslatence en prod
Problème
Le traitement des ordres de mission nécessitait l'extraction manuelle des entités clés (lieu de départ, arrivée, dates, type de transport) à partir de texte français non structuré. C'était fastidieux, sujet aux erreurs et ne passait pas à l'échelle.
Solution
Deux modèles NER entraînés et comparés sur un corpus français annoté avec tagging BIO, puis mise en production de celui qui tenait la route :
- Fine-tuning CamemBERT sur un corpus annoté de 12 000 phrases
- Deux modèles comparés en direct : pipeline spaCy v3 sur mesure (F1 0,84, ~5 ms, 15 Mo) face à un CamemBERT fine-tuné (F1 0,89, ~50 ms, 440 Mo) sur le même corpus
- spaCy retenu en production : 5 points de F1 échangés contre une latence 10× moindre et un modèle 29× plus petit, le bon arbitrage pour du CPU seul
- Classification de tokens avec tagging BIO pour 6 types d'entités
- Évaluation rigoureuse: F1 au niveau des entités, pas des tokens
- Pipeline de production: inférence optimisée pour batch et temps réel
- Support bilingue: entrée français, sortie JSON structurée
Résultats & Métriques
12 000
Phrases d’entraînement
6
Types d'entités
0,84 / 0,89
F1 : spaCy vs CamemBERT
~5 / ~50 ms
Latence d’inférence
70/15/15
Partition Train/Val/Test
Stack Technologique
CamemBERT
Hugging Face
PyTorch
spaCy
Python
seqeval
JSON
Flask
Apprentissages clés
- NLP français est important: CamemBERT surpasse les modèles multilingues sur le texte français
- L'évaluation au niveau des entités est cruciale: L'exactitude au niveau des tokens masque les défaillances
- La qualité de l'annotation détermine la performance
- Conception soignée du schéma de tagging BIO
- Optimisation de l'inférence séparant la recherche du déploiement