
GLiNER: modello leggero per Named Entity Recognition zero-shot
Scheda tecnica su GLiNER, il modello encoder-based per estrarre entità arbitrarie dal testo in modo efficiente e open source.
Cos'è
GLiNER (acronimo di Generalist Model for Named Entity Recognition using Bidirectional Transformer) è un modello di intelligenza artificiale per il Named Entity Recognition (NER), cioè l'identificazione e la classificazione di entità nominate in testi non strutturati. È stato presentato nel 2023 da Urchade Zaratiana, Nadi Tomeh, Pierre Holat e Thierry Charnois, e pubblicato in via ufficiale nei proceedings di NAACL 2024.
A differenza dei modelli NER tradizionali, che richiedono un set fisso di etichette definite in fase di addestramento, GLiNER è progettato per operare in modalità zero-shot: l'utente può specificare al volo, in linguaggio naturale, quali tipologie di entità estrarre, senza dover riaddestrare il modello. Questo lo rende uno strumento flessibile per l'information extraction, posizionandosi a metà strada tra i classici modelli specializzati per NER e i grandi modelli linguistici (LLM).
Il cuore dell'idea è trattare l'estrazione delle entità come un problema di matching tra span di testo ed etichette, anziché come generazione sequenziale di token. Entrambi gli elementi vengono processati in parallelo dallo stesso encoder e proiettati in uno spazio latente condiviso, dove il modello calcola un punteggio di compatibilità.
A cosa serve / dove eccelle
GLiNER eccelle nel riconoscere entità in testi quando le categorie di interesse non sono note a priori o cambiano frequentemente. Esempi tipici sono l'estrazione di nomi di persona, organizzazioni, località, date o categorie specialistiche come prodotti farmaceutici, codici fiscali, riferimenti normativi o entità di dominio.
Il modello si distingue per la sua capacità di generalizzare a etichette mai viste durante l'addestramento, purché siano descritte in modo comprensibile. Questo lo rende utile in scenari in cui preparare dataset annotati per ogni nuova tipologia di entità sarebbe costoso o lento. Inoltre, essendo basato su un encoder compatto, GLiNER è adatto a contesti con risorse computazionali limitate, inclusa l'inferenza su CPU.
Caratteristiche e specifiche
Architettura. GLiNER utilizza un transformer encoder bidirezionale (come BERT o DeBERTa) come spina dorsale. L'input è costituito dalla concatenazione delle etichette di entità (ciascuna preceduta da un token speciale [ENT]) e del testo da analizzare, separate da un token [SEP]. Il modello calcola le rappresentazioni contestuali di tutti i token in parallelo, quindi genera rappresentazioni per ogni possibile span (sequenza contigua di parole) del testo e per ogni etichetta. Il matching avviene proiettando span ed etichette in uno spazio latente condiviso e calcolando un punteggio di similarità tramite prodotto scalare e funzione sigmoide. In fase di addestramento, il modello apprende a massimizzare il punteggio per le coppie span-etichetta corrette e a minimizzarlo per quelle errate, utilizzando una loss di entropia incrociata binaria.