BERT (language model) (IT)

From Systems analysis Wiki
Jump to navigation Jump to search

BERT (Bidirectional Encoder Representations from Transformers, rappresentazioni bidirezionali del codificatore dai transformer) — è un grande modello linguistico (LLM) per la comprensione del linguaggio naturale, sviluppato dai ricercatori di Google e presentato nel 2018. BERT ha segnato una nuova era nell'elaborazione del linguaggio naturale (NLP), dimostrando prestazioni senza precedenti su un'ampia gamma di compiti e stabilendo il paradigma «pre-training + fine-tuning» (pre-train & fine-tune) come standard nel settore.

L'innovazione chiave di BERT è l'architettura profondamente bidirezionale, che consente al modello di considerare il contesto di una parola simultaneamente da sinistra e da destra in tutti gli strati della rete. Ciò viene ottenuto grazie a un nuovo compito di pre-addestramento — il Masked Language Modeling (MLM).

Denominazione e principio di funzionamento

L'acronimo BERT sta per Bidirectional Encoder Representations from Transformers.

  • Bidirectional (Bidirezionale): Indica la caratteristica principale del modello — la capacità di elaborare il contesto di una parola in entrambe le direzioni (da sinistra a destra e da destra a sinistra) simultaneamente. A differenza dei modelli unidirezionali (come GPT), che nell'elaborare una parola vedono solo il contesto precedente, BERT vede l'intera sequenza nel suo complesso, il che gli consente di formare una comprensione più profonda e precisa del significato della parola.
  • Encoder (Codificatore): Significa che BERT utilizza solo la parte codificatrice dell'architettura Transformer. Il compito del codificatore è leggere la sequenza di testo in ingresso e creare per ogni token una ricca rappresentazione contestuale (vettore). BERT non è progettato per generare testo in forma libera, come i modelli decoder.
  • Representations (Rappresentazioni): Il modello è addestrato a creare rappresentazioni numeriche di alta qualità (vettori o embedding) per parole e frasi, che possono poi essere utilizzate per risolvere diversi compiti NLP.
  • from Transformers: Indica che l'architettura del modello è completamente basata sul Transformer.

Storia della creazione

Lo sviluppo di BERT è stato il risultato di alcune innovazioni chiave nell'NLP:

  1. Embedding contestuali: Modelli come Word2vec e GloVe creavano vettori statici per le parole, senza tener conto del contesto. Il modello ELMo (2018) è stato un passo avanti, generando rappresentazioni dipendenti dal contesto tramite reti LSTM bidirezionali; tuttavia, questa bidirezionalità era «superficiale» (concatenazione di due modelli unidirezionali).
  2. Transfer learning e GPT: A metà del 2018, OpenAI ha presentato il modello GPT, che ha dimostrato l'efficacia del pre-addestramento di un grande modello transformer su dati non etichettati con successivo fine-tuning su compiti specifici. Tuttavia, GPT era strettamente unidirezionale (da sinistra a destra), il che ne limitava le capacità nei compiti che richiedono la comprensione del contesto completo.

Rendendosi conto di queste limitazioni, i ricercatori di Google guidati da Jacob Devlin hanno sviluppato BERT per creare un modello profondamente bidirezionale in senso autentico. L'articolo su BERT è stato pubblicato su arXiv nell'ottobre 2018 e il codice e i modelli pre-addestrati sono stati resi disponibili al pubblico, suscitando un interesse esplosivo nella comunità scientifica. BERT ha battuto i record su 11 benchmark NLP fondamentali, tra cui GLUE e SQuAD, ed è stato definito il «momento ImageNet» per l'NLP, poiché un unico modello universale poteva essere facilmente adattato a molteplici compiti.

Architettura

BERT è interamente basato sulla parte codificatrice (encoder) dell'architettura Transformer. È composto da diversi strati identici sovrapposti. Esistono due versioni principali:

  • BERT-Base: 12 strati, 12 teste di attenzione, dimensione dello stato nascosto 768, numero totale di parametri ~110 milioni.
  • BERT-Large: 24 strati, 16 teste di attenzione, dimensione dello stato nascosto 1024, numero totale di parametri ~340 milioni.

Ogni strato contiene due principali sottostrati:

  1. Meccanismo di auto-attenzione multi-testa (Multi-Head Self-Attention): Consente a ogni token nella sequenza di input di «prestare attenzione» a tutti gli altri token, pesandone l'importanza per determinare il proprio significato contestuale.
  2. Rete neurale completamente connessa (Feed-Forward Network): Viene applicata separatamente a ogni token.

Dati di ingresso

Per un corretto funzionamento, BERT richiede una formattazione speciale dei dati di ingresso. La sequenza di token fornita in input inizia sempre con il token speciale `[CLS]` (classification), utilizzato per i compiti di classificazione dell'intero testo. Se in input viene fornita una coppia di frasi (ad esempio, nei compiti di question answering), queste vengono separate dal token `[SEP]` (separator).

La rappresentazione finale di ogni token in ingresso è la somma di tre embedding:

  • Token embedding: Vettore corrispondente al token specifico del vocabolario (BERT utilizza la tokenizzazione WordPiece).
  • Segment embedding: Indica a quale frase (prima o seconda) appartiene il token.
  • Positional embedding: Indica la posizione del token nella sequenza, poiché l'architettura Transformer di per sé non tiene conto dell'ordine delle parole.

Compiti di pre-addestramento

Per garantire una profonda bidirezionalità, BERT viene addestrato su due compiti unici simultaneamente.

Masked Language Modeling (MLM)

Questa è l'innovazione chiave di BERT. Invece di prevedere la parola successiva, come nei modelli linguistici standard, BERT prevede parole «mascherate» casualmente nella frase. Il processo si svolge come segue:

  • Dalla sequenza di input viene selezionato casualmente il 15% dei token.
  • Di questo 15%:
    • L'80% viene sostituito con il token speciale `[MASK]`.
    • Il 10% viene sostituito con un token casuale del vocabolario.
    • Il 10% rimane invariato.
  • Il compito del modello è prevedere i valori originali di questi 15% di token, basandosi sul contesto circostante (sinistro e destro).

Questo schema obbliga il modello a imparare relazioni semantiche e sintattiche profonde tra le parole e gli consente di essere autenticamente bidirezionale.

Next Sentence Prediction (NSP)

Questo compito è stato sviluppato per insegnare a BERT a comprendere le relazioni tra le frasi, il che è fondamentale per compiti come i sistemi di question answering o l'analisi dell'implicazione testuale (NLI). Al modello viene fornita una coppia di frasi (A e B) e deve prevedere se la frase B è una continuazione logica della frase A.

  • Nel 50% dei casi B è effettivamente la frase successiva nel testo originale.
  • Nel 50% dei casi B è una frase casuale presa da un altro punto del corpus.

Successive ricerche (ad esempio nel modello RoBERTa) hanno mostrato che il compito NSP è meno importante di MLM e che se ne può fare a meno a favore di schemi di addestramento più efficaci; tuttavia, nel BERT originale svolgeva un ruolo importante.

Applicazione e fine-tuning

La forza di BERT risiede nel paradigma del transfer learning. Dopo un pre-addestramento su vasta scala e costoso su enormi corpus (Wikipedia + BooksCorpus), il modello pre-addestrato può essere facilmente e rapidamente messo a punto (fine-tuned) per risolvere uno specifico compito applicativo.

Il processo di fine-tuning si svolge tipicamente come segue: 1. All'architettura del BERT pre-addestrato viene aggiunto un piccolo strato non addestrato, specifico per il compito (ad esempio, un classificatore per l'analisi del sentiment). 2. L'intero modello (inclusi i pesi di BERT e il nuovo strato) viene addestrato su un piccolo dataset etichettato per quel compito specifico.

Esempi di compiti per i quali BERT viene adattato:

  • Classificazione del testo (analisi del sentiment, filtri antispam): Al output del token `[CLS]` viene aggiunto un classificatore.
  • Sistemi di question answering (ad esempio, SQuAD): Il modello viene addestrato a prevedere i token iniziale e finale della risposta nel testo fornito.
  • Riconoscimento di entità nominate (NER): All'output di ogni token viene aggiunto un classificatore che determina se il token fa parte di un nome, un'organizzazione, una data, ecc.

Varianti e modelli derivati

Il successo di BERT ha portato alla nascita di un'intera famiglia di modelli basati sulle sue idee:

  • RoBERTa (da Facebook AI): «BERT ottimizzato in modo robusto». Non è una nuova architettura, ma piuttosto il risultato di un addestramento di BERT più accurato e prolungato: su una maggiore quantità di dati, senza il compito NSP e con mascheramento dinamico. RoBERTa ha dimostrato che il BERT originale era «sotto-addestrato» e lo ha superato su tutti i principali benchmark.
  • DistilBERT (da Hugging Face): Una versione ridotta di BERT creata con la tecnica della distillazione della conoscenza. DistilBERT è il 40% più piccolo, il 60% più veloce e conserva il 97% delle prestazioni di BERT, il che lo rende ideale per l'uso in produzione e su dispositivi con risorse limitate.
  • ALBERT (A Lite BERT, da Google): Una versione ottimizzata per ridurre il numero di parametri. Utilizza due tecniche chiave: la fattorizzazione degli embedding e la condivisione dei parametri tra strati (cross-layer parameter sharing). Ciò consente di creare modelli molto più grandi con un numero inferiore di parametri.
  • mBERT (Multilingual BERT): Una versione di BERT pre-addestrata su 104 lingue simultaneamente. Ha mostrato una sorprendente capacità di trasferimento cross-linguistico della conoscenza.
  • Modelli specifici per dominio: Numerosi modelli messi a punto su dati di specifici settori, come BioBERT (biomedicina), SciBERT (testi scientifici) e FinBERT (finanza).
  • ModernBERT (2024-2025): Una nuova generazione di modelli simili a BERT sviluppata dalle aziende Answer.AI e LightOn, che include miglioramenti architetturali moderni come RoPE (Rotary Position Embeddings) e il supporto di contesti più lunghi (fino a 8192 token), mantenendo al contempo i principi fondamentali di BERT.

Confronto con altri modelli

Confronto di BERT con altre architetture chiave
Modello Sviluppatore Architettura Direzione del contesto Compito principale
BERT Google Encoder Bidirezionale Comprensione del testo, classificazione, estrazione
GPT OpenAI Decoder Unidirezionale (da sinistra a destra) Generazione di testo, completamento di sequenze
XLNet Google / CMU Autoregressivo (con permutazione) Bidirezionale (in teoria) Comprensione del testo (alternativa a MLM)
T5 Google Encoder-Decoder Bidirezionale (encoder) + Unidirezionale (decoder) Trasformazione universale «testo-in-testo»

Impatto

BERT ha prodotto una vera rivoluzione nell'NLP e ha posto le basi per molti sviluppi successivi:

  1. Ha consolidato il paradigma «pre-addestramento + fine-tuning» come approccio dominante nell'NLP.
  2. Ha dimostrato l'importanza del contesto bidirezionale profondo per la comprensione del linguaggio.
  3. Ha abbassato la soglia di accesso alla creazione di sistemi NLP ad alte prestazioni, poiché ricercatori e sviluppatori non dovevano più creare architetture complesse da zero per ogni compito.
  4. È stato integrato in Google Search, diventando uno degli aggiornamenti più importanti del motore di ricerca nella sua intera storia e dimostrando concretamente l'utilità pratica del modello.
  5. Ha generato un intero ecosistema di modelli derivati, strumenti e ricerche («BERTology»), diventando uno dei lavori più citati nel campo dell'IA.

Nonostante modelli più recenti e di maggiori dimensioni, come GPT-3 e GPT-4, abbiano superato BERT su molti benchmark (in particolare nei compiti generativi), BERT e le sue varianti rimangono tuttora uno strumento potente e ampiamente utilizzato per i compiti che richiedono una profonda comprensione del testo.

Riferimenti

  • Repository ufficiale di BERT su GitHub
  • Annuncio di BERT sul blog di Google AI
  • The Illustrated BERT — spiegazione visiva dell'architettura di BERT

Bibliografia

  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
  • Peters, M. E. et al. (2018). Deep Contextualized Word Representations. arXiv:1802.05365.
  • Liu, Y. et al. (2019). RoBERTa: A Robustly Optimized BERT Pretraining Approach. arXiv:1907.11692.
  • Lan, Z. et al. (2020). ALBERT: A Lite BERT for Self-supervised Learning of Language Representations. arXiv:1909.11942.
  • Sanh, V. et al. (2020). DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter. arXiv:1910.01108.
  • Yang, Z. et al. (2019). XLNet: Generalized Autoregressive Pretraining for Language Understanding. arXiv:1906.08237.
  • Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
  • Lee, J. et al. (2020). BioBERT: a pre-trained biomedical language representation model for biomedical text mining. arXiv:1901.08746.
  • Warner, B. et al. (2024). Smarter, Better, Faster, Longer: A Modern Bidirectional Encoder for Fast, Memory Efficient, and Long Context Finetuning and Inference. arXiv:2412.13663.