Choix d’un modèle de NER : spaCy, GLiNER, Transformers ou LLMs ?
Traduction automatique
Cet article a été traduit automatiquement depuis la version originale en anglais.
La reconnaissance d’entités nommées (NER) repère et annote des segments de texte, comme des personnes, des entreprises et des codes produit. Cette page s’adresse aux ingénieurs qui doivent choisir une approche d’extraction pour une charge de production. Elle fournit un point de départ que vous pouvez tester avec votre schéma, vos documents et vos contraintes d’exploitation.
Utilisez spaCy pour des labels stables et des pipelines rapides. Choisissez GLiNER lorsque les labels changent fréquemment. Évaluez un bi-encoder lorsque de nombreux labels peuvent réutiliser des embeddings mis en cache, ou un classificateur de tokens Transformer adapté par fine-tuning lorsque vous disposez d’exemples annotés. Utilisez une extraction structurée fondée sur un LLM lorsque vous avez besoin d’un enregistrement complexe plutôt que d’une simple liste de segments.
Choisissez selon les labels requis, la langue, la forme de la sortie, les données annotées et le budget de latence.
Tableau de décision
| Besoin | Point de départ | Pourquoi |
|---|---|---|
| Labels connus et déploiement sur CPU | Référence initiale avec spaCy | Les pipelines préentraînés et les règles fournissent une référence initiale ; vérifiez la précision dans la langue et le domaine. |
| Nouveaux labels sans entraînement complet | GLiNER | L’extraction conditionnée par les labels fonctionne bien lorsque l’ensemble de labels évolue. Commencez par des descriptions claires des types, plutôt que par de simples noms. |
| Inventaire de labels vaste et réutilisable | GLiNER bi-encoder | Il peut précalculer et mettre en cache les embeddings des labels au lieu d’encoder les labels pour chaque document. |
| Entités et relations en un seul passage | Candidat GLiNER-Relex | Il extrait conjointement les types d’entités et de relations. Évaluez-le par rapport à des étapes séparées sur le schéma de relations cible. |
| Entités et champs documentaires ou classification | GLiNER2 | Son interface de schéma combine reconnaissance d’entités, classification et tâches d’extraction structurée. |
| Entités imbriquées ou qui se chevauchent | Décodeur compatible avec les entités imbriquées, notamment GLiNER avec flat_ner=False | Le décodage à plat supprime les chevauchements. Testez les segments imbriqués sur des annotations contenant les motifs de chevauchement attendus. |
| Extraction multilingue ou avec plusieurs systèmes d’écriture | GLiNER-X ou référence initiale XLM-R | Testez chaque langue cible, chaque domaine et la formulation des descriptions de types. |
| Labels de domaine stables avec des segments annotés représentatifs | Classificateur de tokens adapté par fine-tuning ou pipeline spaCy | Établissez une référence supervisée, puis comparez le F1 exact sur les segments, la latence et le coût sur votre jeu de données de domaine. |
| Champs implicites, interphrastiques ou structurés | LLM ou candidat hybride | Les structured outputs contraignent la forme de la réponse, pas l’exactitude de l’extraction. Validez la précision des champs sur un jeu de test de domaine. |
| PII sensible ou processus réglementé | Presidio et candidat GLiNER2-PII | Combinez la sortie du modèle avec des contrôles déterministes, des mécanismes de masquage et une revue. |
| Identifiants exacts, codes produit ou termes connus | Règles et dictionnaires | La correspondance déterministe convient aux motifs fixes ; testez les variantes manquées et les correspondances erronées. |
Comment choisir
Notez les types d’entités et quelques exemples annotés avant de choisir un modèle. Incluez des termes ambigus et des segments inclus dans d’autres segments si la tâche l’exige.
Si les labels sont stables, testez d’abord un pipeline existant. Appliquez un fine-tuning à un classificateur de tokens lorsque ses erreurs dans le domaine justifient un entraînement et que vous disposez d’exemples annotés représentatifs. Comparez-le sur un jeu de données de domaine réservé à l’évaluation. Il prédit des labels de tokens sans générer la réponse token par token.
Si les labels changent souvent, testez GLiNER ou un extracteur LLM. Rédigez une courte description pour chaque type ambigu. ZeroNER évalue les descriptions de types avec des types d’entités absents de l’entraînement. Les descriptions clarifient le label ; un test de types inconnus doit aussi exclure ces types de l’entraînement.
Si vous réutilisez un vaste inventaire de labels, évaluez un bi-encoder avant un encodeur conjoint labels-texte. L’article sur le bi-encoder GLiNER rapporte un débit environ 130 fois supérieur pour gliner-bi-edge-v2.0 avec des embeddings de labels mis en cache, par rapport à gliner_small-v2.5 avec 1 024 labels. Cette comparaison a été réalisée avec un GPU H100 et une taille de lot de 1 ; les tests de vitesse couvraient des entrées de 64, 256 et 512 tokens. Elle montre pourquoi la réutilisation des labels mérite d’être testée, et non le gain de vitesse à attendre sur une autre charge.
Si les documents couvrent plusieurs langues, mesurez les performances dans chaque langue et chaque système d’écriture cible. OpenNER 1.0 n’a trouvé aucun modèle optimal sur l’ensemble de sa collection de 52 langues. Testez les descriptions de types en anglais et dans la langue locale, car le texte des labels fait partie de l’entrée du modèle.
Si la sortie est un enregistrement structuré plutôt que des segments, utilisez un LLM avec des structured outputs ou un pipeline hybride. LangExtract est utile lorsque chaque extraction doit être reliée à son emplacement dans la source. NuExtract est une option auto-hébergée pour l’extraction multimodale de documents. Les deux nécessitent néanmoins une évaluation au niveau des champs sur les documents cibles.
De nombreuses tâches d’extraction métier ne relèvent pas uniquement de la NER. « Trouver les parties, les obligations, la date d’entrée en vigueur, la clause de résiliation et le droit applicable » relève de la compréhension documentaire avec des champs d’entités.
Pour la PII, utilisez un framework PII tel que Presidio comme couche d’intégration et de masquage. Considérez GLiNER2-PII comme un modèle candidat, et non comme une décision de conformité. Mesurez le rappel sur les formats sensibles, les langues et les documents que le système traitera réellement.
Pipeline de production
Un pipeline d’extraction de production ajoute souvent des étapes autour du modèle :
- Extraction de candidats : spaCy, GLiNER, modèle Transformer, LLM, règles ou combinaison de ces approches.
- Normalisation ou liaison d’entités facultative : associer les segments à des identifiants canoniques, des codes produit, des utilisateurs, des entreprises ou des entrées de votre vocabulaire métier.
- Validation et revue : rejeter les labels impossibles, appliquer les contraintes du schéma, dédupliquer les segments et orienter les cas incertains vers une revue.
La normalisation associe le texte extrait à un identifiant stable dans vos données. Pour le segment « Apple », déterminez d’abord s’il désigne l’entreprise, le fruit, une gamme de produits ou un symbole boursier. Associez ensuite ce sens à l’identifiant correspondant.
Liste de contrôle de l’évaluation
Mesurez davantage que le F1 au niveau des entités :
Le F1 exact sur les segments considère une prédiction comme correcte uniquement si le segment et le label correspondent tous deux à l’annotation. Un score plus permissif peut accepter des segments qui se chevauchent : précisez donc sa règle de correspondance. Aucun des deux scores ne vérifie si le nom extrait est associé au bon identifiant de base de données.
- F1 exact sur les segments
- F1 avec correspondance moins stricte des segments
- matrice de confusion des labels
- gestion des entités imbriquées
- précision de la normalisation des entités
- sensibilité aux descriptions de types et à la langue des labels
- découpages par langue, système d’écriture et format de document
- faux positifs par label
- calibration de la confiance
- latence et coût par document
- taux de correction humaine
Conservez le jeu de test séparé de la conception du schéma et du réglage des seuils. Indiquez le nombre de documents et de mentions d’entités par label. Utilisez des intervalles de confiance au niveau des documents lorsque plusieurs mentions dans un même document pourraient autrement surestimer la certitude.
Pour aller plus loin
- Guide de NER 2026 présente les encodeurs, les LLMs et l’architecture de production à trois niveaux.
- Raisonnement guidé par schéma est pertinent lorsque la NER évolue vers l’extraction structurée.
Références
- Documentation GLiNER
- Article sur le bi-encoder GLiNER - embeddings de labels mis en cache pour les grands inventaires.
- Documentation GLiNER2
- Article GLiNER-Relex - extraction conjointe d’entités et de relations.
- Article ZeroNER - évaluation zero-shot stricte avec des descriptions de types.
- Article OpenNER 1.0 - évaluation NER multilingue et multi-ontologies.
- LangExtract - extraction LLM reliée à la source.
- NuExtract - extraction multimodale auto-hébergée.
- Presidio - framework de détection et d’anonymisation de la PII.
- Article GLiNER2-PII - modèle candidat PII multilingue.
- Documentation des entités nommées de spaCy
- Guide de classification de tokens de Hugging Face
- Guide des structured outputs d’OpenAI