GLiNER: Modello generalista per il riconoscimento delle entità nominate tramite Transformer bidirezionale
Riconoscimento di entità nominate (NER) è un importante compito di elaborazione del linguaggio naturale (NLP) che identifica e classifica entità come nomi, luoghi e organizzazioni nel testo. Ciò consente l’estrazione di informazioni strutturate per varie applicazioni. Il NER può anche gestire attività come la costruzione di grafi della conoscenza, la ricerca di informazioni e l’analisi dei contenuti.
I modelli NER tradizionali sono efficaci nell’identificare entità predefinite. Al contrario, i Large Language Models (LLM) possono gestire entità più complesse e varie. Tuttavia, gli LLM sono spesso ad alta intensità di risorse, ponendo sfide per l’implementazione pratica. Gli LLM open-source fine-tuned esistenti per il riconoscimento di entità nominate (NER), come InstructUIE, UniNER e GoLLIE, sono efficaci ma affrontano sfide come grandi dimensioni, generazione lenta di token ed estrazione parallela limitata delle entità. Per affrontare questi problemi, i ricercatori hanno sviluppato GLiNER, un modello NER compatto ed efficiente progettato per migliorare efficienza, scalabilità e prestazioni multilingue mantenendo l’accuratezza.
GLiNER è un modello NER open-source che utilizza un encoder transformer bidirezionale. Consente l’estrazione parallela delle entità e affronta i limiti sia degli approcci NER tradizionali sia di quelli basati su LLM. Nelle valutazioni zero-shot su vari benchmark NER, inclusi quelli in più lingue, supera sia ChatGPT sia LLM fine-tuned come UniNER. Anche la versione più piccola di GLiNER supera modelli di grandi dimensioni come InstructUIE in contesti zero-shot.
Figura: BiLM per open NER
Figura: BiLM per open NER | Fonte
Questo blog discuterà GLiNER, il suo approccio al NER e il suo impatto sul dominio NLP. Ulteriori dettagli sono disponibili nel paper GLiNER.
Panoramica del riconoscimento di entità nominate
Il riconoscimento di entità nominate (NER) è un compito fondamentale nell’elaborazione del linguaggio naturale (NLP) che identifica e classifica entità nominate all’interno di un testo. Queste entità rappresentano oggetti del mondo reale come persone, organizzazioni, luoghi, date, ecc.
Componenti chiave del NER
Rilevamento delle entità: Individuare i confini delle entità nominate nel testo (ad es., identificare "Albert Einstein" come uno span di interesse).
Classificazione delle entità: Assegnare l’etichetta corretta a ciascuna entità rilevata (ad es., etichettare "Albert Einstein" come Persona).
Comprendere l’architettura e la funzionalità di GLiNER
GLiNER utilizza modelli linguistici bidirezionali (BiLM) come BERT e DeBERTa. Questi modelli sono noti per catturare ricche rappresentazioni contestuali dal testo. Il concetto chiave alla base di GLiNER è inquadrare il compito NER come un problema di matching in cui gli embedding dei tipi di entità vengono confrontati con le rappresentazioni degli span testuali in uno spazio latente condiviso. Ciò contrasta con gli approcci tradizionali che trattano il NER come un compito di generazione.
GLiNER è composto da tre componenti principali:
Encoder testuale preaddestrato: La base di GLiNER è un BiLM preaddestrato, come DeBERTa, che funge da encoder testuale. Il BiLM elabora la sequenza di input, catturando le relazioni contestuali tra le parole e generando rappresentazioni contestualizzate (embedding) per ciascun token.
Modulo di rappresentazione degli span: Questo componente è responsabile del calcolo di una rappresentazione per ogni possibile span (una sequenza contigua di parole) all'interno del testo di input. La rappresentazione dello span deriva dalla combinazione degli output del BiLM per i token iniziale e finale di ciascuno span. Questi embedding sono ottimizzati per allinearsi strettamente con le rappresentazioni dei tipi di entità rilevanti.
Modulo di rappresentazione delle entità: Questo componente genera embedding per ciascun tipo di entità che il modello mira a estrarre. Token speciali che rappresentano i tipi di entità vengono passati attraverso il BiLM e i loro output vengono perfezionati utilizzando una rete feedforward. Questi embedding delle entità vengono quindi confrontati con gli embedding degli span per determinare le corrispondenze.
Figura: architettura GLiNER
Figura: architettura GLiNER | Fonte
Ecco come funziona GLiNER.
Formattazione dell'input
GLiNER riceve come input sia il testo da cui devono essere estratte le entità sia un elenco di potenziali tipi di entità. Questi elementi vengono combinati in un'unica sequenza unificata. Token speciali, tra cui [ENT] e [SEP], svolgono un ruolo importante in questa sequenza:
Il token
[ENT]precede ciascun tipo di entità nell'elenco.Il token
[SEP]funge da separatore tra l'elenco dei tipi di entità e il testo di input.Entrambi i token
[ENT]e[SEP]vengono inizializzati casualmente all'inizio del processo di addestramento.
Figura: esempio di formato di input
Figura: esempio di formato di input | Fonte
Rappresentazione dei token con i BiLM
Un BiLM pre-addestrato elabora quindi la sequenza di input unificata. Il BiLM analizza l'intera sequenza, comprende le relazioni tra tutti i token e produce rappresentazioni vettoriali contestualizzate per ciascun token.
- L'output per i token dei tipi di entità (quelli associati a
[ENT]) è rappresentato come p.
- L'output per ciascuna parola nel testo di input è rappresentato come h.
- Per le parole suddivise in sottoparole durante la tokenizzazione, GLiNER utilizza la rappresentazione della prima sottoparola, una pratica comune nella NER.
Generazione degli embedding di entità e span
GLiNER mira a codificare sia i tipi di entità sia gli span di testo in uno spazio latente unificato in cui possano essere confrontati efficacemente. Ciò include quanto segue:
- Perfezionamento della rappresentazione delle entità: La rappresentazione iniziale dei tipi di entità (p) viene perfezionata utilizzando una rete feedforward (FFN) a due livelli. Ciò produce una nuova rappresentazione, indicata come q, che mappa i tipi di entità nello spazio latente.
- Calcolo della rappresentazione degli span: Uno span è una sequenza di parole consecutive all'interno del testo di input. GLiNER calcola un embedding per ciascun possibile span utilizzando un'altra FFN a due livelli. Questa FFN opera sulle rappresentazioni concatenate dei token iniziale e finale dello span. Questo processo consente a GLiNER di catturare il significato di uno span nel suo insieme.
Abbinamento dei tipi di entità agli span
Dopo aver codificato sia i tipi di entità sia gli span nello stesso spazio latente, GLiNER determina la probabilità che uno span appartenga a un tipo di entità specifico calcolando un punteggio di corrispondenza tra i rispettivi embedding. Il punteggio di corrispondenza viene calcolato utilizzando il prodotto scalare dell'embedding dello span Sij e dell'embedding dell'entità qt, seguito da una funzione di attivazione sigmoid. Il punteggio risultante (i, j, t) può essere interpretato come la probabilità che lo span (i, j) sia di tipo t.
Durante l'addestramento, utilizzando la perdita di entropia incrociata binaria, il modello massimizza i punteggi di corrispondenza per le coppie span-entità corrette (positive) e li minimizza per le coppie errate (negative).
Le coppie positive sono quelle in cui lo span è effettivamente etichettato con il tipo di entità nei dati di addestramento.
Le coppie negative vengono generate campionando casualmente entità da altri esempi all'interno dello stesso batch. Questo aiuta il modello a discriminare efficacemente tra assegnazioni di entità vere e false.
La perdita di addestramento per un singolo esempio è definita come:
La perdita di addestramento per un singolo esempio
Decodifica con selezione greedy degli span
GLiNER utilizza un algoritmo di selezione greedy degli span per estrarre le entità più probabili dal testo di input nella fase di decodifica. Questo algoritmo dà priorità agli span non sovrapposti con i punteggi di corrispondenza più alti. Supporta due modalità di NER:
NER piatto: Questa modalità seleziona solo span non sovrapposti, dando priorità a quelli con i punteggi più alti.
NER annidato: Questa modalità consente la selezione di span annidati (span completamente contenuti all'interno di altre entità) evitando al contempo sovrapposizioni parziali.
Questo approccio greedy garantisce che GLiNER rispetti i vincoli specifici del compito estraendo al contempo in modo efficiente le entità rilevanti.
Impostazioni sperimentali e degli iperparametri di GLiNER
È stata implementata una configurazione sperimentale attentamente progettata e una solida configurazione degli iperparametri per valutare l'efficacia di GLiNER. Il modello viene addestrato sul dataset Pile-NER, una raccolta di 44.889 passaggi con 240.000 span di entità e 13.000 tipi di entità unici. Questo dataset è stato derivato dal corpus Pile, con 50.000 testi campionati e annotati utilizzando ChatGPT. Le annotazioni sono state generate senza vincoli di tipo predefiniti, consentendo al dataset di catturare entità diverse.
Prompting di ChatGPT per l'estrazione di entità
Figura: Prompting di ChatGPT per l'estrazione di entità | Fonte
GLiNER impiega il modello deBERTa-v3 come backbone grazie alla sua comprovata forza empirica. Il modello incorpora layer non preaddestrati con una larghezza dimensionale di 768 e applica un tasso di dropout di 0,4 per mitigare l'overfitting.
Il processo di addestramento continua per un massimo di 30.000 step, iniziando con una fase di warmup del 10% seguita da una fase di decadimento governata da uno scheduler coseno. I tipi di entità negative vengono campionati casualmente da altri esempi nello stesso batch durante l'addestramento per migliorare la capacità del modello di gestire casi in cui determinati tipi di entità sono assenti.
Diverse strategie di regolarizzazione vengono implementate per migliorare la robustezza del modello e prevenire l'overfitting. Queste strategie includono:
Mescolare l'ordine delle entità: Questo aiuta il modello a identificare le entità indipendentemente dalla loro posizione all'interno dell'input.
Eliminare casualmente le entità: Questo costringe il modello a gestire istanze in cui le informazioni sono mancanti o incomplete.
Viene imposto un vincolo sul numero di tipi di entità elaborati per frase per gestire la complessità computazionale durante l'addestramento. Questo limite è impostato a 25.
Analisi delle prestazioni di GLiNER
Una volta addestrato, le prestazioni di GLiNER sono state testate su diversi benchmark NER e sono stati analizzati i fattori che contribuiscono alla sua efficacia.
Prestazioni zero-shot su dataset inglesi
GLiNER è stato valutato in un contesto zero-shot, il che significa che è stato addestrato sul dataset Pile-NER e poi testato direttamente su dataset non visti senza ulteriore fine-tuning.
Benchmark NER OOD
Il benchmark NER OOD (Out-of-Domain), composto da sette diversi dataset NER, è stato utilizzato per valutare la capacità di GLiNER di generalizzare a domini diversi. GLiNER, in tutte le sue varianti di dimensione (small, medium e large), ha mostrato prestazioni impressionanti, superando modelli come ChatGPT, Vicuna e persino il molto più grande InstructUIE.
In particolare, GLiNER di medie dimensioni ha ottenuto risultati paragonabili al modello UniNER 13B pur essendo 140 volte più piccolo. Il modello GLiNER più grande ha costantemente superato i suoi concorrenti, inclusi GoLLIE (l’LLM con le migliori prestazioni) e USM.
Figura: punteggi Zero-Shot sul benchmark NER Out-of-Domain
Figura: punteggi Zero-Shot sul benchmark NER Out-of-Domain | Fonte
20 benchmark NER
GLiNER è stato ulteriormente valutato su un benchmark di 20 dataset NER che coprono vari domini. Ha superato sia ChatGPT sia UniNER sulla maggior parte di questi dataset, dimostrando la sua robustezza e adattabilità a domini diversi. Tuttavia, ha ottenuto prestazioni inferiori rispetto a UniNER sui dataset NER basati su tweet, evidenziando una potenziale area di miglioramento nella gestione di testi informali e rumorosi.
Prestazioni zero-shot su 20 dataset NER
Prestazioni zero-shot su 20 dataset NER | Fonte
Valutazione multilingue Zero-Shot
Per valutare la generalizzabilità di GLiNER a lingue non viste, è stato valutato sul dataset Multiconer, che contiene dati in 11 lingue. Sono state utilizzate due varianti di GLiNER:
Una con un backbone DeBERTa inglese (GLiNER-En).
Una con un backbone DeBERTa multilingue (GLiNER-Multi).
GLiNER-Multi ha ottenuto risultati notevoli, superando ChatGPT nella maggior parte delle lingue. Ha
dimostrato capacità di trasferimento cross-linguale anche se non era stato addestrato in quelle lingue. Ha persino ottenuto prestazioni leggermente migliori in spagnolo che in inglese.
Punteggi Zero-Shot in diverse lingue
Punteggi Zero-Shot in diverse lingue | Fonte
Fine-tuning supervisionato In-Domain
GLiNER è stato anche sottoposto a fine-tuning sui 20 dataset NER per confrontare le sue prestazioni con quelle degli LLM in un contesto supervisionato. Sono state testate le sue due varianti, una inizializzata con i pesi del modello zero-shot (pre-addestrato su Pile-NER) e una addestrata da zero. La variante pre-addestrata ha costantemente superato la variante non pre-addestrata, mostrando i vantaggi del pre-addestramento su un dataset diversificato.
Prestazioni supervisionate su diverse dimensioni di dataset
Prestazioni supervisionate su diverse dimensioni di dataset | Fonte
Il GLiNER pre-addestrato ha anche superato il molto più grande InstructUIE, evidenziando l’efficienza dell’architettura di GLiNER. Sebbene abbia ottenuto risultati inferiori rispetto a UniNER, GLiNER ha comunque raggiunto i punteggi più alti su 7 dataset su 20.
Figura: fine-tuning supervisionato in-domain
Figura: fine-tuning supervisionato in-domain | Fonte
L’abbreviazione w/ sta per "with" e indica che il modello GLiNER è stato prima addestrato sul dataset Pile-NER prima del fine-tuning sui 20 dataset NER.
L’abbreviazione w/o sta per "without" e indica che il modello GLiNER non è stato pre-addestrato sul dataset Pile-NER.
Scelte architetturali e strategie di addestramento varie
Sono state esplorate diverse strategie architetturali e di addestramento per ottimizzare le prestazioni di GLiNER e garantire adattabilità in scenari diversi.
Valutazione di diversi backbone
GLiNER è stato ulteriormente analizzato utilizzando diversi backbone BiLM per vedere come influenzano le sue prestazioni. Sono stati testati vari modelli, come BERT, RoBERTa, ALBERT ed ELECTRA, con DeBERTa-v3 che ha mostrato costantemente le migliori prestazioni. Tuttavia, tutti i backbone hanno mostrato risultati solidi rispetto ai modelli esistenti. Ciò ha suggerito che l'architettura di GLiNER è efficace su diversi BiLM.
Figura: Prestazioni zero-shot per diversi backbone
Figura: Prestazioni zero-shot per diversi backbone | Fonte
Valutare l'impatto del campionamento di entità negative
Il campionamento di entità negative viene introdotto durante l'addestramento per riconoscere che i dati del mondo reale spesso mancano di determinati tipi di entità. Le prestazioni del modello vengono quindi valutate utilizzando diversi rapporti di campionamento negativo (0%, 50% e 75%), e un rapporto del 50% offre il miglior equilibrio tra precisione e richiamo. L'addestramento con sole entità positive porta a più falsi positivi (precisione inferiore), mentre un rapporto elevato di campionamento negativo rende il modello eccessivamente cauto, con conseguente mancata individuazione di entità (richiamo inferiore).
Figura: Effetto del campionamento dei tipi di entità negative
Figura: Effetto del campionamento dei tipi di entità negative | Fonte
Valutare i benefici dell'eliminazione casuale dei tipi di entità
Eliminare casualmente i prompt dei tipi di entità durante l'addestramento migliora la robustezza e l'adattabilità di un modello a numeri variabili di entità negli scenari del mondo reale. Questa tecnica produce un miglioramento medio di 1,4 punti nella valutazione fuori dominio.
Figura: Eliminazione casuale dei tipi di entità
Figura: Eliminazione casuale dei tipi di entità | Fonte
Implicazioni dello sviluppo di GLiNER
Lo sviluppo di GLiNER ha implicazioni significative per il campo del riconoscimento di entità nominate (Named Entity Recognition, NER):
Efficienza delle risorse per il NER: GLiNER fa progredire il NER ottenendo prestazioni elevate con dimensioni del modello inferiori rispetto ai grandi LLM. Questa efficienza è vantaggiosa in ambienti con risorse limitate, rendendo il NER più accessibile per varie applicazioni. GLiNER utilizza efficacemente i BiLM senza il sovraccarico computazionale degli LLM, formulando il NER come un compito di matching tra embedding dei tipi di entità e rappresentazioni di span testuali in uno spazio latente.
Generalizzazione zero-shot tra domini e lingue: GLiNER offre prestazioni eccezionali in contesti zero-shot, ottenendo risultati allo stato dell'arte sui benchmark NER senza fine-tuning specifico per il compito. La sua capacità di generalizzare tra vari domini e lingue lo rende una soluzione promettente per scenari con dati etichettati limitati.
Prestazioni migliorate con il pretraining: Il pretraining sul dataset Pile-NER prima del fine-tuning per compiti in-domain porta a notevoli miglioramenti delle prestazioni. Questo è particolarmente vero quando la quantità di dati supervisionati è limitata. Il guadagno è più significativo con dataset più piccoli. Ciò suggerisce che il pretraining facilita un efficace trasferimento di conoscenza, migliorando la capacità del modello di generalizzare e adattarsi a nuovi domini e tipi di entità.
Direzioni future della ricerca
Si possono esplorare diverse strade di ricerca per migliorare ulteriormente le capacità di GLiNER:
Esplorare architetture alternative: Sebbene l'attuale architettura di GLiNER sia efficace, c'è spazio per miglioramenti sperimentando diverse varianti di BiLM (Bidirectional Language Models) o introducendo nuove tecniche di rappresentazione degli span. Tali innovazioni potrebbero portare a ulteriori miglioramenti delle prestazioni e consentire a GLiNER di affrontare compiti più complessi con maggiore efficienza.
Gestione di testo rumoroso e informale: Sebbene GLiNER funzioni bene in molti contesti, la sua capacità di gestire testo rumoroso e informale necessita di miglioramenti. I contenuti dei social media spesso includono slang, abbreviazioni e grammatica non standard, che pongono sfide uniche. Il lavoro futuro potrebbe concentrarsi sul perfezionamento di GLiNER per cogliere meglio queste sfumature e migliorarne la robustezza nell’elaborazione di tale testo non strutturato.
Integrazione di conoscenza esterna: L’integrazione di fonti di conoscenza esterne, come grafi della conoscenza o gazetteer specifici di dominio, potrebbe migliorare l’accuratezza di GLiNER nella disambiguazione delle entità. Incorporando queste risorse nell’architettura del modello, i ricercatori potrebbero sviluppare rappresentazioni più precise e consapevoli del contesto delle entità nominate, migliorando le prestazioni.
Fine-tuning per casi d’uso specifici di dominio: Sebbene le prestazioni zero-shot di GLiNER siano notevoli, esiste un potenziale per un ulteriore perfezionamento tramite fine-tuning specifico di dominio. Aree come il text mining biomedico o l’analisi di documenti legali potrebbero beneficiare di questo approccio. Ciò rende GLiNER più adattabile a campi specializzati in cui il riconoscimento delle entità deve cogliere schemi linguistici intricati e tecnici.
Conclusione
GLiNER rappresenta un significativo progresso nella NER. Attraverso i suoi compatti modelli transformer bidirezionali, combina efficienza, adattabilità e accessibilità. Ottiene solide prestazioni zero-shot e multilingue senza il costo computazionale dei modelli più grandi, superando alternative come ChatGPT e UniNER.
La ricerca futura potrebbe esplorare architetture alternative, migliorare la robustezza nel testo rumoroso e informale, integrare conoscenza esterna per una migliore disambiguazione delle entità, effettuare fine-tuning per dataset specifici di dominio e migliorare le prestazioni nelle lingue a basse risorse tramite trasferimento cross-linguale. Queste direzioni hanno un grande potenziale per migliorare ulteriormente l’efficacia di GLiNER in diversi compiti NER.
Ulteriori risorse
Continua a leggere
Stop Building AI Data Infra for the Wrong Stage
Learn how AI data infrastructure should evolve from prototype to enterprise scale, and when Vector Lakebase becomes the right architecture for AI apps.

Building RAG Pipelines for Real-Time Data with Cloudera and Milvus
explore how Cloudera can be integrated with Milvus to effectively implement some of the key functionalities of RAG pipelines.

Why Deepseek is Waking up AI Giants Like OpenAI And Why You Should Care
Discover how DeepSeek R1's open-source AI model with superior reasoning capabilities and lower costs is disrupting the AI landscape and challenging tech giants like OpenAI.



