GLiNER : Modèle généraliste pour la reconnaissance d’entités nommées utilisant un Transformer bidirectionnel
La reconnaissance d’entités nommées (NER) est une tâche importante du traitement du langage naturel (NLP) qui identifie et classe des entités comme les noms, les lieux et les organisations dans un texte. Cela permet l’extraction d’informations structurées pour diverses applications. La NER peut également gérer des tâches comme la création de graphes de connaissances, la recherche d’informations et l’analyse de contenu.
Les modèles de NER traditionnels sont efficaces pour identifier des entités prédéfinies. En revanche, les grands modèles de langage (LLMs) peuvent traiter des entités plus complexes et variées. Cependant, les LLMs sont souvent gourmands en ressources, ce qui pose des défis pour un déploiement pratique. Les LLMs open source fine-tunés existants pour la reconnaissance d’entités nommées (NER), comme InstructUIE, UniNER et GoLLIE, sont efficaces mais rencontrent des difficultés telles qu’une grande taille, une génération de tokens lente et une extraction parallèle d’entités limitée. Pour résoudre ces problèmes, des chercheurs ont développé GLiNER, un modèle NER compact et efficace conçu pour améliorer l’efficacité, l’évolutivité et les performances multilingues tout en maintenant la précision.
GLiNER est un modèle NER open source utilisant un encodeur transformer bidirectionnel. Il permet l’extraction parallèle d’entités et répond aux limites des approches NER traditionnelles comme de celles basées sur les LLMs. Dans des évaluations zero-shot sur divers benchmarks NER, y compris dans plusieurs langues, il surpasse à la fois ChatGPT et des LLMs fine-tunés comme UniNER. Même la plus petite version de GLiNER dépasse de grands modèles comme InstructUIE dans des contextes zero-shot.
Figure : BiLM pour la NER ouverte
Figure : BiLM pour la NER ouverte | Source
Ce blog abordera GLiNER, son approche de la NER et son impact sur le domaine du NLP. Des détails supplémentaires sont disponibles dans l’article GLiNER.
Aperçu de la reconnaissance d’entités nommées
La reconnaissance d’entités nommées (NER) est une tâche fondamentale du traitement du langage naturel (NLP) qui identifie et classe les entités nommées dans un texte. Ces entités représentent des objets du monde réel comme des personnes, des organisations, des lieux, des dates, etc.
Composants clés de la NER
Détection des entités : Localiser les limites des entités nommées dans un texte (par exemple, identifier "Albert Einstein" comme un segment d’intérêt).
Classification des entités : Attribuer la bonne étiquette à chaque entité détectée (par exemple, étiqueter "Albert Einstein" comme une Personne).
Comprendre l’architecture et le fonctionnement de GLiNER
GLiNER utilise des modèles de langage bidirectionnels (BiLMs) comme BERT et DeBERTa. Ces modèles sont connus pour capturer de riches représentations contextuelles à partir du texte. Le concept clé derrière GLiNER consiste à formuler la tâche NER comme un problème d’appariement où les embeddings de types d’entités sont comparés aux représentations de segments textuels dans un espace latent partagé. Cela contraste avec les approches traditionnelles qui traitent la NER comme une tâche de génération.
GLiNER se compose de trois composants principaux :
Encodeur textuel préentraîné : Le fondement de GLiNER est un BiLM préentraîné, tel que DeBERTa, qui sert d’encodeur textuel. Le BiLM traite la séquence d’entrée, capture les relations contextuelles entre les mots et génère des représentations contextualisées (embeddings) pour chaque token.
Module de représentation des spans : Ce composant est responsable du calcul d’une représentation pour chaque span possible (une séquence contiguë de mots) dans le texte d’entrée. La représentation du span est dérivée en combinant les sorties du BiLM pour les tokens de début et de fin de chaque span. Ces embeddings sont optimisés pour s’aligner étroitement avec les représentations des types d’entités pertinents.
Module de représentation des entités : Ce composant génère des embeddings pour chaque type d’entité que le modèle vise à extraire. Des tokens spéciaux représentant les types d’entités sont passés dans le BiLM, et leurs sorties sont affinées à l’aide d’un réseau feedforward. Ces embeddings d’entités sont ensuite comparés aux embeddings de spans afin de déterminer les correspondances.
Figure : architecture de GLiNER
Figure : architecture de GLiNER | Source
Voici comment fonctionne GLiNER.
Formatage de l’entrée
GLiNER reçoit en entrée à la fois le texte dont les entités doivent être extraites et une liste de types d’entités potentiels. Ces éléments sont combinés en une seule séquence unifiée. Des tokens spéciaux, notamment [ENT] et [SEP], jouent un rôle important dans cette séquence :
Le token
[ENT]précède chaque type d’entité dans la liste.Le token
[SEP]agit comme un séparateur entre la liste des types d’entités et le texte d’entrée.Les tokens
[ENT]et[SEP]sont tous deux initialisés aléatoirement au début du processus d’entraînement.
Figure : exemple de format d’entrée
Figure : exemple de format d’entrée | Source
Représentation des tokens avec les BiLM
Un BiLM pré-entraîné traite ensuite la séquence d’entrée unifiée. Le BiLM analyse toute la séquence, comprend les relations entre tous les tokens et produit des représentations vectorielles contextualisées pour chaque token.
- La sortie pour les tokens de type d’entité (ceux associés à
[ENT]) est représentée par p.
- La sortie pour chaque mot dans le texte d’entrée est représentée par h.
- Pour les mots décomposés en sous-mots lors de la tokenisation, GLiNER utilise la représentation du premier sous-mot, une pratique courante en NER.
Génération des embeddings d’entités et de spans
GLiNER vise à encoder à la fois les types d’entités et les spans de texte dans un espace latent unifié où ils peuvent être comparés efficacement. Cela inclut les éléments suivants :
- Affinement de la représentation des entités : La représentation initiale des types d’entités (p) est affinée à l’aide d’un réseau feedforward (FFN) à deux couches. Il en résulte une nouvelle représentation, notée q, qui projette les types d’entités dans l’espace latent.
- Calcul de la représentation des spans : Un span est une séquence de mots consécutifs dans le texte d’entrée. GLiNER calcule un embedding pour chaque span possible à l’aide d’un autre FFN à deux couches. Ce FFN opère sur les représentations concaténées des tokens de début et de fin du span. Ce processus permet à GLiNER de capturer le sens d’un span dans son ensemble.
Association des types d’entités aux spans
Après avoir encodé à la fois les types d’entités et les spans dans le même espace latent, GLiNER détermine la probabilité qu’un span appartienne à un type d’entité spécifique en calculant un score de correspondance entre leurs embeddings respectifs. Le score de correspondance est calculé à l’aide du produit scalaire de l’embedding du span Sij et de l’embedding de l’entité qt, suivi d’une fonction d’activation sigmoïde. Le score résultant (i, j, t) peut être interprété comme la probabilité que le span (i, j) soit de type t.
Pendant l’entraînement, en utilisant la perte d’entropie croisée binaire, le modèle maximise les scores de correspondance pour les paires segment-entité correctes (positives) et les minimise pour les paires incorrectes (négatives).
Les paires positives sont celles où le segment est effectivement étiqueté avec le type d’entité dans les données d’entraînement.
Les paires négatives sont générées en échantillonnant aléatoirement des entités à partir d’autres exemples au sein du même lot. Cela aide le modèle à distinguer efficacement les attributions d’entités vraies et fausses.
La perte d’entraînement pour un exemple individuel est définie comme suit :
La perte d’entraînement pour un exemple individuel
Décodage avec sélection gloutonne des segments
GLiNER utilise un algorithme de sélection gloutonne des segments pour extraire les entités les plus probables du texte d’entrée lors de la phase de décodage. Cet algorithme privilégie les segments non chevauchants ayant les scores de correspondance les plus élevés. Il prend en charge deux modes de NER :
NER plat : Ce mode sélectionne uniquement des segments non chevauchants, en privilégiant ceux qui obtiennent les scores les plus élevés.
NER imbriqué : Ce mode permet la sélection de segments imbriqués (segments entièrement contenus dans d’autres entités) tout en évitant les chevauchements partiels.
Cette approche gloutonne garantit que GLiNER respecte les contraintes propres à la tâche tout en extrayant efficacement les entités pertinentes.
Paramètres expérimentaux et hyperparamètres de GLiNER
Une configuration expérimentale soigneusement conçue et une configuration robuste des hyperparamètres ont été mises en œuvre pour évaluer l’efficacité de GLiNER. Le modèle est entraîné sur le jeu de données Pile-NER, une collection de 44 889 passages contenant 240 000 segments d’entités et 13 000 types d’entités uniques. Ce jeu de données a été dérivé du corpus Pile, avec 50 000 textes échantillonnés et annotés à l’aide de ChatGPT. Les annotations ont été générées sans contraintes de type prédéfinies, permettant au jeu de données de capturer des entités diverses.
Sollicitation de ChatGPT pour l’extraction d’entités
Figure : Sollicitation de ChatGPT pour l’extraction d’entités | Source
GLiNER emploie le modèle deBERTa-v3 comme ossature en raison de sa solidité empirique avérée. Le modèle intègre des couches non préentraînées avec une largeur dimensionnelle de 768 et applique un taux de dropout de 0,4 afin d’atténuer le surapprentissage.
Le processus d’entraînement se poursuit pendant un maximum de 30 000 étapes, en commençant par une phase d’échauffement de 10 %, suivie d’une phase de décroissance régie par un planificateur cosinus. Les types d’entités négatifs sont échantillonnés aléatoirement à partir d’autres exemples du même lot pendant l’entraînement afin d’améliorer la capacité du modèle à gérer les cas où certains types d’entités sont absents.
Plusieurs stratégies de régularisation sont mises en œuvre pour améliorer la robustesse du modèle et prévenir le surapprentissage. Ces stratégies incluent :
Mélange de l’ordre des entités : Cela aide le modèle à identifier les entités indépendamment de leur position dans l’entrée.
Suppression aléatoire d’entités : Cela oblige le modèle à gérer les cas où l’information est manquante ou incomplète.
Une contrainte est imposée sur le nombre de types d’entités traités par phrase afin de gérer la complexité computationnelle pendant l’entraînement. Cette limite est fixée à 25.
Analyse des performances de GLiNER
Une fois entraîné, les performances de GLiNER ont été testées sur différents benchmarks de NER, et les facteurs contribuant à son efficacité ont été analysés.
Performances zero-shot sur des jeux de données anglais
GLiNER a été évalué dans un cadre zero-shot, ce qui signifie qu’il a été entraîné sur le jeu de données Pile-NER puis directement testé sur des jeux de données non vus sans ajustement fin supplémentaire.
Benchmark NER OOD
Le benchmark NER OOD (Out-of-Domain), composé de sept jeux de données NER diversifiés, a été utilisé pour évaluer la capacité de GLiNER à généraliser à différents domaines. GLiNER, dans toutes ses variantes de taille (petit, moyen et grand), a affiché des performances impressionnantes, surpassant des modèles comme ChatGPT, Vicuna, et même InstructUIE, beaucoup plus grand.
Notamment, le GLiNER de taille moyenne a obtenu des résultats comparables à ceux du modèle UniNER 13B tout en étant 140 fois plus petit. Le plus grand modèle GLiNER a systématiquement surpassé ses concurrents, notamment GoLLIE (le LLM le plus performant) et USM.
Figure : scores Zero-Shot sur le benchmark NER Out-of-Domain
Figure : scores Zero-Shot sur le benchmark NER Out-of-Domain | Source
Benchmark de 20 jeux de données NER
GLiNER a ensuite été évalué sur un benchmark de 20 jeux de données NER couvrant divers domaines. Il a surpassé à la fois ChatGPT et UniNER sur la plupart de ces jeux de données, démontrant sa robustesse et son adaptabilité à travers différents domaines. Cependant, il a sous-performé par rapport à UniNER sur les jeux de données NER basés sur des tweets, mettant en évidence un axe d’amélioration potentiel dans le traitement du texte informel et bruité.
Performance zero-shot sur 20 jeux de données NER
Performance zero-shot sur 20 jeux de données NER | Source
Évaluation multilingue Zero-Shot
Pour évaluer la capacité de généralisation de GLiNER à des langues non vues, il a été évalué sur le jeu de données Multiconer, qui contient des données dans 11 langues. Deux variantes de GLiNER ont été utilisées :
Une avec une architecture de base DeBERTa anglaise (GLiNER-En).
Une avec une architecture de base DeBERTa multilingue (GLiNER-Multi).
GLiNER-Multi a obtenu des performances remarquables, surpassant ChatGPT dans la plupart des langues. Il
a démontré des capacités de transfert interlingue, même s’il n’avait pas été entraîné dans ces langues. Il a même obtenu des performances légèrement meilleures en espagnol qu’en anglais.
Scores Zero-Shot dans différentes langues
Scores Zero-Shot dans différentes langues | Source
Fine-tuning supervisé dans le domaine
GLiNER a également été affiné sur les 20 jeux de données NER afin de comparer ses performances à celles des LLMs dans un cadre supervisé. Ses deux variantes ont été testées, l’une initialisée avec les poids du modèle zero-shot (préentraîné sur Pile-NER) et l’autre entraînée à partir de zéro. La variante préentraînée a systématiquement surpassé la variante non préentraînée, illustrant les avantages du préentraînement sur un jeu de données diversifié.
Performance supervisée selon différentes tailles de jeux de données
Performance supervisée selon différentes tailles de jeux de données | Source
Le GLiNER préentraîné a également surpassé InstructUIE, beaucoup plus grand, soulignant l’efficacité de l’architecture de GLiNER. Bien qu’il soit resté en deçà d’UniNER, GLiNER a tout de même obtenu les meilleurs scores sur 7 des 20 jeux de données.
Figure : fine-tuning supervisé dans le domaine
Figure : fine-tuning supervisé dans le domaine | Source
L’abréviation w/ signifie "with" et indique que le modèle GLiNER a d’abord été entraîné sur le jeu de données Pile-NER avant le fine-tuning sur les 20 jeux de données NER.
L’abréviation w/o signifie "without" et indique que le modèle GLiNER n’a pas été préentraîné sur le jeu de données Pile-NER.
Choix architecturaux et stratégies d’entraînement variés
Plusieurs stratégies architecturales et d’entraînement ont été explorées afin d’optimiser les performances de GLiNER et d’assurer son adaptabilité à divers scénarios.
Évaluation de différentes architectures de base
GLiNER a été étudié plus en détail à l’aide de différents backbones BiLM afin de voir comment ils affectent ses performances. Divers modèles, tels que BERT, RoBERTa, ALBERT et ELECTRA, ont été testés, DeBERTa-v3 affichant systématiquement les meilleures performances. Cependant, tous les backbones ont montré de solides résultats par rapport aux modèles existants. Cela suggère que l’architecture de GLiNER est efficace avec différents BiLM.
Figure : Performance zero-shot pour différents backbones
Figure : Performance zero-shot pour différents backbones | Source
Évaluer l’impact de l’échantillonnage d’entités négatives
L’échantillonnage d’entités négatives est introduit pendant l’entraînement afin de reconnaître que les données du monde réel ne contiennent souvent pas certains types d’entités. Les performances du modèle sont ensuite évaluées à l’aide de différents ratios d’échantillonnage négatif (0 %, 50 % et 75 %), et un ratio de 50 % offre le meilleur équilibre entre précision et rappel. L’entraînement avec uniquement des entités positives entraîne davantage de faux positifs (précision plus faible), tandis qu’un ratio élevé d’échantillonnage négatif rend le modèle trop prudent, ce qui se traduit par des entités manquées (rappel plus faible).
Figure : Effet de l’échantillonnage des types d’entités négatives
Figure : Effet de l’échantillonnage des types d’entités négatives | Source
Évaluer les avantages de la suppression aléatoire des types d’entités
La suppression aléatoire des prompts de types d’entités pendant l’entraînement améliore la robustesse et l’adaptabilité d’un modèle à des nombres variables d’entités dans des scénarios réels. Cette technique entraîne une amélioration moyenne de 1,4 point dans l’évaluation hors domaine.
Figure : Suppression aléatoire des types d’entités
Figure : Suppression aléatoire des types d’entités | Source
Implications du développement de GLiNER
Le développement de GLiNER a des implications importantes pour le domaine de la reconnaissance d’entités nommées (NER) :
Efficacité des ressources pour la NER : GLiNER fait progresser la NER en obtenant de solides performances avec des tailles de modèle plus petites que celles des grands LLM. Cette efficacité est bénéfique dans les environnements aux ressources limitées, rendant la NER plus accessible pour diverses applications. GLiNER utilise efficacement les BiLM sans la surcharge computationnelle des LLM en formulant la NER comme une tâche de correspondance entre les embeddings de types d’entités et les représentations de segments textuels dans un espace latent.
Généralisation zero-shot entre domaines et langues : GLiNER offre des performances exceptionnelles dans les contextes zero-shot, obtenant des résultats à l’état de l’art sur les benchmarks de NER sans fine-tuning spécifique à la tâche. Sa capacité à généraliser à travers divers domaines et langues en fait une solution prometteuse pour les scénarios disposant de peu de données étiquetées.
Performances améliorées avec le préentraînement : Le préentraînement sur le jeu de données Pile-NER avant le fine-tuning pour des tâches dans le domaine entraîne des améliorations notables des performances. Cela est particulièrement vrai lorsque la quantité de données supervisées est limitée. Le gain est le plus significatif avec les jeux de données plus petits. Cela suggère que le préentraînement facilite un transfert efficace des connaissances, améliorant la capacité du modèle à généraliser et à s’adapter à de nouveaux domaines et types d’entités.
Orientations futures de recherche
Plusieurs pistes de recherche peuvent être explorées afin d’améliorer davantage les capacités de GLiNER :
Explorer des architectures alternatives : Bien que l’architecture actuelle de GLiNER soit efficace, il existe une marge d’amélioration en expérimentant différentes variantes de BiLM (Bidirectional Language Models) ou en introduisant de nouvelles techniques de représentation des segments. De telles innovations pourraient conduire à des gains de performance supplémentaires et permettre à GLiNER de traiter des tâches plus complexes avec une plus grande efficacité.
Gestion du texte bruité et informel : Bien que GLiNER soit performant dans de nombreux contextes, sa capacité à gérer le texte bruité et informel doit être améliorée. Le contenu des réseaux sociaux inclut souvent de l’argot, des abréviations et une grammaire non standard, ce qui pose des défis uniques. Les travaux futurs pourraient se concentrer sur l’affinement de GLiNER afin de mieux saisir ces nuances et d’améliorer sa robustesse dans le traitement de ce type de texte non structuré.
Intégration de connaissances externes : L’intégration de sources de connaissances externes, telles que des graphes de connaissances ou des répertoires spécialisés par domaine, pourrait améliorer la précision de GLiNER dans la désambiguïsation des entités. En intégrant ces ressources dans l’architecture du modèle, les chercheurs pourraient développer des représentations plus précises et sensibles au contexte des entités nommées, améliorant ainsi les performances.
Fine-tuning pour des cas d’utilisation spécifiques à un domaine : Bien que les performances zero-shot de GLiNER soient impressionnantes, il existe un potentiel d’amélioration supplémentaire grâce au fine-tuning spécifique à un domaine. Des domaines comme l’exploration de textes biomédicaux ou l’analyse de documents juridiques pourraient bénéficier de cette approche. Cela rend GLiNER plus adaptable aux domaines spécialisés où la reconnaissance d’entités doit saisir des schémas linguistiques complexes et techniques.
Conclusion
GLiNER représente une avancée significative dans la NER. Grâce à ses modèles transformers bidirectionnels compacts, il combine efficacité, adaptabilité et accessibilité. Il atteint de solides performances zero-shot et multilingues sans le coût computationnel des modèles plus grands, surpassant des alternatives comme ChatGPT et UniNER.
Les recherches futures pourraient explorer des architectures alternatives, améliorer la robustesse dans le texte bruité et informel, intégrer des connaissances externes pour une meilleure désambiguïsation des entités, effectuer un fine-tuning pour des jeux de données spécifiques à un domaine, et améliorer les performances dans les langues à faibles ressources grâce au transfert interlinguistique. Ces orientations présentent un grand potentiel pour améliorer encore l’efficacité de GLiNER dans diverses tâches de NER.
Ressources complémentaires
Continuer à lire

3 Easiest Ways to Use Claude Code on Your Mobile Phone
Run Claude Code from your phone with Remote Control, Happy Coder, or SSH + Tailscale. Comparison table, setup steps, and tools for typing, memory, and parallel tasks.

Zilliz Cloud BYOC Now Available Across AWS, GCP, and Azure
Zilliz Cloud BYOC is now generally available on all three major clouds. Deploy fully managed vector search in your own AWS, GCP, or Azure account — your data never leaves your VPC.

Data Deduplication at Trillion Scale: How to Solve the Biggest Bottleneck of LLM Training
Explore how MinHash LSH and Milvus handle data deduplication at the trillion-scale level, solving key bottlenecks in LLM training for improved AI model performance.



