BERT (language model) (RO)

From Systems analysis Wiki
Jump to navigation Jump to search

BERT (Bidirectional Encoder Representations from Transformers, reprezentări bidirecționale ale encoderului din transformers) — este un model lingvistic de mari dimensiuni (LLM) pentru înțelegerea limbajului natural, dezvoltat de cercetători de la Google și prezentat în anul 2018. BERT a marcat o nouă eră în procesarea limbajului natural (NLP), demonstrând performanțe fără precedent pe o gamă largă de sarcini și stabilind paradigma „pre-antrenare + fine-tuning" (pre-train & fine-tune) ca standard în industrie.

Innovația cheie a BERT este arhitectura profund bidirecțională, care permite modelului să țină cont de contextul unui cuvânt atât din stânga, cât și din dreapta, simultan, în toate straturile rețelei. Aceasta se realizează cu ajutorul unei noi sarcini de pre-antrenare — Masked Language Modeling (MLM).

Denumire și principiu de funcționare

Acronimul BERT înseamnă Bidirectional Encoder Representations from Transformers.

  • Bidirectional (Bidirecțional): Indică principala caracteristică a modelului — capacitatea de a procesa contextul unui cuvânt în ambele direcții (de la stânga la dreapta și de la dreapta la stânga) simultan. Spre deosebire de modelele unidirecționale (cum ar fi GPT), care la procesarea unui cuvânt văd doar contextul precedent, BERT vede întreaga secvență în ansamblu, ceea ce îi permite să formeze o înțelegere mai profundă și mai precisă a sensului cuvântului.
  • Encoder (Encoder): Înseamnă că BERT utilizează doar partea de encodare a arhitecturii Transformer. Sarcina encoderului este de a citi secvența de intrare a textului și de a crea pentru fiecare token o reprezentare contextuală bogată (vector). BERT nu este destinat generării de text în formă liberă, precum modelele de tip decoder.
  • Representations (Reprezentări): Modelul este antrenat să creeze reprezentări numerice de înaltă calitate (vectori sau embedding-uri) pentru cuvinte și propoziții, care pot fi ulterior utilizate pentru rezolvarea diverselor sarcini NLP.
  • from Transformers: Indică faptul că arhitectura modelului se bazează în întregime pe Transformer.

Istoricul creării

Dezvoltarea BERT a fost rezultatul mai multor descoperiri cheie în NLP:

  1. Embedding-uri contextuale: Modele precum Word2vec și GloVe creau vectori statici pentru cuvinte, fără a ține cont de context. Modelul ELMo (2018) a reprezentat un pas înainte, generând reprezentări dependente de context cu ajutorul rețelelor LSTM bidirecționale, însă această bidirecționalitate era „superficială" (concatenarea a două modele unidirecționale).
  2. Învățare prin transfer și GPT: La mijlocul anului 2018, OpenAI a prezentat modelul GPT, care a demonstrat eficiența pre-antrenării unui model transformer de mari dimensiuni pe date neanotate, urmată de fine-tuning pe sarcini specifice. Cu toate acestea, GPT era strict unidirecțional (de la stânga la dreapta), ceea ce îi limita capacitățile în sarcinile care necesitau înțelegerea contextului complet.

Conștientizând aceste limitări, cercetătorii Google condusi de Jacob Devlin au dezvoltat BERT pentru a crea un model cu adevărat profund bidirecțional. Articolul despre BERT a fost publicat pe arXiv în octombrie 2018, iar codul și modelele pre-antrenate au fost puse la dispoziția publicului, ceea ce a generat un interes exploziv în comunitatea științifică. BERT a doborât recorduri pe 11 benchmark-uri cheie NLP, inclusiv GLUE și SQuAD, și a fost numit „momentul ImageNet" pentru NLP, deoarece un singur model universal putea fi ușor adaptat pentru numeroase sarcini.

Arhitectură

BERT se bazează în întregime pe partea de encodare (encoder) a arhitecturii Transformer. Este alcătuit din mai multe straturi identice suprapuse. Există două versiuni principale:

  • BERT-Base: 12 straturi, 12 capete de atenție, dimensiunea stării ascunse 768, număr total de parametri ~110 milioane.
  • BERT-Large: 24 de straturi, 16 capete de atenție, dimensiunea stării ascunse 1024, număr total de parametri ~340 milioane.

Fiecare strat conține două sub-straturi principale:

  1. Mecanismul de auto-atenție multi-cap (Multi-Head Self-Attention): Permite fiecărui token din secvența de intrare să „acorde atenție" tuturor celorlalte token-uri, ponderând importanța acestora pentru determinarea propriei valori contextuale.
  2. Rețea neuronală complet conectată (Feed-Forward Network): Se aplică fiecărui token separat.

Date de intrare

Pentru funcționarea corectă, BERT necesită o formatare specială a datelor de intrare. Secvența de token-uri furnizată la intrare începe întotdeauna cu token-ul special `[CLS]` (classification), care este utilizat pentru sarcinile de clasificare a întregului text. Dacă la intrare este furnizată o pereche de propoziții (de exemplu, în sarcinile sistemelor de întrebări și răspunsuri), acestea sunt separate prin token-ul `[SEP]` (separator).

Reprezentarea finală a fiecărui token la intrare este suma a trei embedding-uri:

  • Token-embedding: Vectorul corespunzător unui anumit token din vocabular (BERT utilizează tokenizarea WordPiece).
  • Segment-embedding: Indică la care propoziție (prima sau a doua) aparține token-ul.
  • Embedding pozițional: Indică poziția token-ului în secvență, deoarece arhitectura Transformer în sine nu ține cont de ordinea cuvintelor.

Sarcini de pre-antrenare

Pentru a asigura o bidirecționalitate profundă, BERT este antrenat simultan pe două sarcini unice.

Masked Language Modeling (MLM)

Aceasta este inovația cheie a BERT. În loc să prezică cuvântul următor, ca în modelele lingvistice standard, BERT prezice cuvintele „mascate" aleatoriu dintr-o propoziție. Procesul se desfășoară astfel:

  • Din secvența de intrare sunt selectate aleatoriu 15% dintre token-uri.
  • Din aceste 15%:
    • 80% sunt înlocuite cu token-ul special `[MASK]`.
    • 10% sunt înlocuite cu un token aleatoriu din vocabular.
    • 10% rămân nemodificate.
  • Sarcina modelului este de a prezice valorile originale ale acestor 15% token-uri, bazându-se pe contextul înconjurător (stâng și drept).

Această schemă obligă modelul să învețe conexiuni semantice și sintactice profunde între cuvinte și îi permite să fie cu adevărat bidirecțional.

Next Sentence Prediction (NSP)

Această sarcină a fost dezvoltată pentru a-l învăța pe BERT să înțeleagă relațiile dintre propoziții, ceea ce este esențial pentru sarcini precum sistemele de întrebări și răspunsuri sau analiza implicației textuale (NLI). Modelului i se furnizează la intrare o pereche de propoziții (A și B), iar acesta trebuie să prezică dacă propoziția B este o continuare logică a propoziției A.

  • În 50% dintre cazuri, B este într-adevăr propoziția următoare din textul original.
  • În 50% dintre cazuri, B este o propoziție aleatorie extrasă din altă parte din corpus.

Ulterior, cercetările (de exemplu, în modelul RoBERTa) au arătat că sarcina NSP este mai puțin importantă decât MLM și că se poate renunța la ea în favoarea unor scheme de antrenare mai eficiente, dar în BERT original ea juca un rol important.

Aplicare și fine-tuning

Forța BERT constă în paradigma de învățare prin transfer. După pre-antrenarea amplă și costisitoare pe corpusuri uriașe (Wikipedia + BooksCorpus), modelul pre-antrenat poate fi ușor și rapid fine-tunat pentru rezolvarea unei sarcini aplicative specifice.

Procesul de fine-tuning arată de obicei astfel: 1. La arhitectura BERT pre-antrenat se adaugă un strat mic, neantrenat, specific sarcinii (de exemplu, un clasificator pentru analiza sentimentelor). 2. Întregul model (inclusiv ponderile BERT și noul strat) este antrenat pe un set de date mic, adnotat, pentru acea sarcină specifică.

Exemple de sarcini pentru care se adaptează BERT:

  • Clasificarea textului (analiza sentimentelor, filtre de spam): La ieșirea token-ului `[CLS]` se adaugă un clasificator.
  • Sisteme de întrebări și răspunsuri (de exemplu, SQuAD): Modelul este antrenat să prezică token-urile de început și de sfârșit ale răspunsului dintr-un text dat.
  • Recunoașterea entităților denumite (NER): La ieșirea fiecărui token se adaugă un clasificator care determină dacă token-ul face parte dintr-un nume, organizație, dată etc.

Variante și modele derivate

Succesul BERT a condus la apariția unei întregi familii de modele bazate pe ideile sale:

  • RoBERTa (de la Facebook AI): „BERT optimizat în mod robust". Nu este o arhitectură nouă, ci mai degrabă rezultatul unei antrenări mai atente și mai îndelungate a BERT: pe mai multe date, fără sarcina NSP și cu mascare dinamică. RoBERTa a demonstrat că BERT original era „sub-antrenat" și l-a depășit pe toate benchmark-urile principale.
  • DistilBERT (de la Hugging Face): O versiune redusă a BERT, creată cu ajutorul tehnicii de distilare a cunoștințelor. DistilBERT este cu 40% mai mic, cu 60% mai rapid și păstrează 97% din performanța BERT, ceea ce îl face ideal pentru utilizarea în producție și pe dispozitive cu resurse limitate.
  • ALBERT (A Lite BERT, de la Google): O versiune optimizată pentru reducerea numărului de parametri. Folosește două tehnici cheie: factorizarea embedding-urilor și partajarea parametrilor între straturi (cross-layer parameter sharing). Aceasta permite crearea de modele mult mai mari cu un număr mai mic de parametri.
  • mBERT (Multilingual BERT): O versiune a BERT pre-antrenată simultan pe 104 limbi. A demonstrat o capacitate surprinzătoare de transfer cross-lingvistic al cunoștințelor.
  • Modele specifice unui domeniu: Numeroase modele fine-tunate pe date din domenii specifice, cum ar fi BioBERT (biomedicină), SciBERT (texte științifice) și FinBERT (finanțe).
  • ModernBERT (2024-2025): O nouă generație de modele de tip BERT de la companiile Answer.AI și LightOn, incluzând îmbunătățiri arhitecturale moderne, cum ar fi RoPE (Rotary Position Embeddings) și suport pentru contexte mai lungi (până la 8192 de token-uri), păstrând în același timp principiile de bază ale BERT.

Comparație cu alte modele

Comparație între BERT și alte arhitecturi cheie
Model Dezvoltator Arhitectură Direcția contextului Sarcina principală
BERT Google Encoder Bidirecțional Înțelegerea textului, clasificare, extragere
GPT OpenAI Decoder Unidirecțional (de la stânga la dreapta) Generarea textului, continuarea secvenței
XLNet Google / CMU Autoregresiv (prin permutare) Bidirecțional (în teorie) Înțelegerea textului (alternativă la MLM)
T5 Google Encoder-Decoder Bidirecțional (encoder) + Unidirecțional (decoder) Transformare universală „text-în-text\"

Influență

BERT a produs o adevărată revoluție în NLP și a pus bazele multor dezvoltări ulterioare:

  1. A consacrat paradigma „pre-antrenare + fine-tuning\" ca abordare dominantă în NLP.
  2. A demonstrat importanța contextului profund bidirecțional pentru înțelegerea limbajului.
  3. A scăzut pragul de intrare pentru crearea de sisteme NLP de înaltă performanță, deoarece cercetătorii și dezvoltatorii nu mai trebuiau să creeze arhitecturi complexe de la zero pentru fiecare sarcină.
  4. A fost integrat în Google Search, ceea ce a reprezentat una dintre cele mai mari actualizări ale motorului de căutare din întreaga sa istorie și a demonstrat în mod concret utilitatea practică a modelului.
  5. A generat un întreg ecosistem de modele derivate, instrumente și cercetări („BERTology"), devenind una dintre cele mai citate lucrări din domeniul IA.

Deși modele mai noi și mai mari, precum GPT-3 și GPT-4, au depășit BERT pe multe benchmark-uri (în special în sarcinile generative), BERT și variantele sale rămân și în prezent instrumente puternice și utilizate pe scară largă pentru sarcinile care necesită o înțelegere profundă a textului.

Referințe

  • Depozitul oficial BERT pe GitHub
  • Anunțul BERT pe blogul Google AI
  • The Illustrated BERT — explicație vizuală a arhitecturii BERT

Bibliografie

  • 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.