BERT (language model) (NL)

From Systems analysis Wiki
Jump to navigation Jump to search

BERT (Bidirectional Encoder Representations from Transformers, bidirectionele encoder-representaties van transformers) — is een groot taalmodel (LLM) voor het begrijpen van natuurlijke taal, ontwikkeld door onderzoekers van Google en gepresenteerd in 2018. BERT luidde een nieuw tijdperk in voor de verwerking van natuurlijke taal (NLP) door ongekende prestaties te demonstreren op een breed spectrum van taken en de paradigma van "vooraf trainen + fine-tunen" (pre-train & fine-tune) als industriestandaard te vestigen.

De sleutelinnovatie van BERT is de diep bidirectionele architectuur, die het model in staat stelt de context van een woord gelijktijdig van links en rechts te verwerken in alle lagen van het netwerk. Dit wordt bereikt door middel van een nieuwe voortrainingstaak — Masked Language Modeling (MLM).

Naamgeving en werkingsprincipe

De afkorting BERT staat voor Bidirectional Encoder Representations from Transformers.

  • Bidirectional (Bidirectioneel): Verwijst naar de belangrijkste eigenschap van het model — de mogelijkheid om de context van een woord in beide richtingen (van links naar rechts en van rechts naar links) tegelijkertijd te verwerken. In tegenstelling tot unidirectionele modellen (zoals GPT), die bij het verwerken van een woord alleen de voorafgaande context zien, ziet BERT de volledige reeks in zijn geheel, waardoor het een dieper en nauwkeuriger begrip van de betekenis van een woord kan vormen.
  • Encoder (Encoder): Geeft aan dat BERT alleen het coderend deel van de Transformer-architectuur gebruikt. De taak van de encoder is het lezen van de invoerreeks tekst en het aanmaken van een rijke contextuele representatie (vector) voor elk token. BERT is niet bedoeld voor het vrij genereren van tekst, zoals decoder-modellen dat doen.
  • Representations (Representaties): Het model wordt getraind om hoogwaardige numerieke representaties (vectoren of embeddings) te creëren voor woorden en zinnen, die vervolgens kunnen worden gebruikt voor het oplossen van diverse NLP-taken.
  • from Transformers: Geeft aan dat de architectuur van het model volledig is gebaseerd op de Transformer.

Geschiedenis

De ontwikkeling van BERT was het resultaat van enkele sleuteldoorbraken in NLP:

  1. Contextuele embeddings: Modellen zoals Word2vec en GloVe maakten statische vectoren voor woorden zonder rekening te houden met de context. Het model ELMo (2018) was een stap vooruit door contextafhankelijke representaties te genereren via bidirectionele LSTM-netwerken, maar deze bidirectionaliteit was "oppervlakkig" (een samenvoeging van twee unidirectionele modellen).
  2. Transfer learning en GPT: In het midden van 2018 presenteerde OpenAI het model GPT, dat de effectiviteit aantoonde van het vooraf trainen van een groot transformer-model op ongelabelde data, gevolgd door fine-tuning op specifieke taken. GPT was echter strikt unidirectioneel (van links naar rechts), wat zijn mogelijkheden beperkte bij taken die begrip van de volledige context vereisen.

Zich bewust van deze beperkingen ontwikkelden Google-onderzoekers onder leiding van Jacob Devlin BERT om een werkelijk diep bidirectioneel model te creëren. Het artikel over BERT werd in oktober 2018 gepubliceerd op arXiv, en de code en vooraf getrainde modellen werden openbaar beschikbaar gesteld, wat een explosieve interesse in de wetenschappelijke gemeenschap opwekte. BERT verbrak records op 11 belangrijke NLP-benchmarks, waaronder GLUE en SQuAD, en werd het "ImageNet-moment" voor NLP genoemd, omdat één universeel model eenvoudig kon worden aangepast voor een groot aantal taken.

Architectuur

BERT is volledig gebaseerd op het coderend deel (encoder) van de Transformer-architectuur. Het bestaat uit meerdere identieke lagen die op elkaar gestapeld zijn. Er zijn twee hoofdversies:

  • BERT-Base: 12 lagen, 12 attention-hoofden, verborgen toestandsgrootte 768, totaal aantal parameters ~110 miljoen.
  • BERT-Large: 24 lagen, 16 attention-hoofden, verborgen toestandsgrootte 1024, totaal aantal parameters ~340 miljoen.

Elke laag bevat twee hoofdsublagen:

  1. Multi-Head Self-Attention-mechanisme: Stelt elk token in de invoerreeks in staat "aandacht te schenken" aan alle andere tokens, waarbij hun belang wordt gewogen om de eigen contextuele betekenis te bepalen.
  2. Volledig verbonden neuraal netwerk (Feed-Forward Network): Wordt afzonderlijk op elk token toegepast.

Invoergegevens

Voor een correcte werking vereist BERT een speciale opmaak van de invoergegevens. De reeks tokens die als invoer wordt aangeboden, begint altijd met het speciale token `[CLS]` (classification), dat wordt gebruikt voor classificatietaken van de gehele tekst. Als een paar zinnen als invoer wordt aangeboden (bijvoorbeeld bij vraag-en-antwoordsystemen), worden ze gescheiden door het token `[SEP]` (separator).

De uiteindelijke representatie van elk invoertoken is de som van drie embeddings:

  • Token-embedding: Een vector die overeenkomt met een specifiek token uit het woordenboek (BERT gebruikt WordPiece-tokenisatie).
  • Segment-embedding: Geeft aan tot welke zin (de eerste of de tweede) het token behoort.
  • Positionele embedding: Geeft de positie van het token in de reeks aan, omdat de Transformer-architectuur op zichzelf geen rekening houdt met de volgorde van woorden.

Voortrainingstaken

Om diepe bidirectionaliteit te garanderen, wordt BERT gelijktijdig op twee unieke taken getraind.

Masked Language Modeling (MLM)

Dit is de sleutelinnovatie van BERT. In plaats van het volgende woord te voorspellen, zoals bij standaard taalmodellen, voorspelt BERT willekeurig "gemaskeerde" woorden in een zin. Het proces ziet er als volgt uit:

  • Uit de invoerreeks wordt willekeurig 15% van de tokens geselecteerd.
  • Van deze 15%:
    • 80% wordt vervangen door het speciale token `[MASK]`.
    • 10% wordt vervangen door een willekeurig token uit het woordenboek.
    • 10% blijft ongewijzigd.
  • De taak van het model is om de oorspronkelijke waarden van deze 15% tokens te voorspellen op basis van de omringende (linker en rechter) context.

Dit schema dwingt het model om diepe semantische en syntactische verbanden tussen woorden te leren en stelt het in staat werkelijk bidirectioneel te zijn.

Next Sentence Prediction (NSP)

Deze taak werd ontwikkeld om BERT te leren de relaties tussen zinnen te begrijpen, wat cruciaal is voor taken zoals vraag-en-antwoordsystemen of de analyse van tekstuele implicatie (NLI). Het model krijgt een paar zinnen (A en B) als invoer en moet voorspellen of zin B een logisch vervolg is op zin A.

  • In 50% van de gevallen is B inderdaad de volgende zin uit de originele tekst.
  • In 50% van de gevallen is B een willekeurige zin die uit een ander deel van het corpus is gehaald.

Latere onderzoeken (bijvoorbeeld bij het model RoBERTa) toonden aan dat de NSP-taak minder belangrijk is dan MLM en dat ervan afgezien kan worden ten gunste van efficiëntere trainingsschema's, maar in de originele BERT speelde het een belangrijke rol.

Toepassing en fine-tuning

De kracht van BERT ligt in de transfer learning-paradigma. Na de omvangrijke en kostbare voortraining op enorme corpora (Wikipedia + BooksCorpus) kan het voorgetrainde model eenvoudig en snel fine-tuned worden voor het oplossen van een specifieke toepassingstaak.

Het fine-tuning-proces ziet er doorgaans als volgt uit: 1. Aan de architectuur van de voorgetrainde BERT wordt een kleine, niet-getrainde taakspecifieke laag toegevoegd (bijvoorbeeld een classifier voor sentimentanalyse). 2. Het volledige model (inclusief de gewichten van BERT en de nieuwe laag) wordt getraind op een kleine, gelabelde dataset voor die specifieke taak.

Voorbeelden van taken waarvoor BERT wordt aangepast:

  • Tekstclassificatie (sentimentanalyse, spamfilters): Aan de uitvoer van het `[CLS]`-token wordt een classifier toegevoegd.
  • Vraag-en-antwoordsystemen (bijvoorbeeld SQuAD): Het model wordt getraind om de begin- en eindtokens van het antwoord in een gegeven tekst te voorspellen.
  • Herkenning van benoemde entiteiten (NER): Aan de uitvoer van elk token wordt een classifier toegevoegd die bepaalt of het token deel uitmaakt van een naam, organisatie, datum, enzovoort.

Varianten en afgeleide modellen

Het succes van BERT leidde tot het ontstaan van een hele familie van modellen gebaseerd op zijn ideeën:

  • RoBERTa (van Facebook AI): "Robuust geoptimaliseerde BERT". Dit is geen nieuwe architectuur, maar eerder het resultaat van een zorgvuldiger en langduriger training van BERT: op meer data, zonder de NSP-taak en met dynamische maskering. RoBERTa toonde aan dat de originele BERT "ondergetraind" was en overtrof deze op alle belangrijke benchmarks.
  • DistilBERT (van Hugging Face): Een verkleinde versie van BERT, gecreëerd met behulp van de techniek van kennisdistillatie. DistilBERT is 40% kleiner, 60% sneller en behoudt 97% van de prestaties van BERT, waardoor het ideaal is voor gebruik in productieomgevingen en op apparaten met beperkte middelen.
  • ALBERT (A Lite BERT, van Google): Een versie die geoptimaliseerd is om het aantal parameters te verminderen. Maakt gebruik van twee sleuteltechnieken: factorisatie van embeddings en cross-layer parameter sharing. Dit maakt het mogelijk om veel grotere modellen te creëren met minder parameters.
  • mBERT (Multilingual BERT): Een versie van BERT die tegelijkertijd voorgetraind is op 104 talen. Toonde een opmerkelijk vermogen tot cross-linguïstische kennisoverdracht.
  • Domeinspecifieke modellen: Een groot aantal modellen, fine-tuned op data uit specifieke vakgebieden, zoals BioBERT (biomedicijn), SciBERT (wetenschappelijke teksten) en FinBERT (financiën).
  • ModernBERT (2024-2025): Een nieuwe generatie BERT-achtige modellen van de bedrijven Answer.AI en LightOn, met moderne architectuurverbeteringen zoals RoPE (Rotary Position Embeddings) en ondersteuning voor langere contexten (tot 8192 tokens), waarbij de basisprincipes van BERT behouden blijven.

Vergelijking met andere modellen

Vergelijking van BERT met andere belangrijke architecturen
Model Ontwikkelaar Architectuur Contextrichting Hoofdtaak
BERT Google Encoder Bidirectioneel Tekstbegrip, classificatie, extractie
GPT OpenAI Decoder Unidirectioneel (van links naar rechts) Tekstgeneratie, reeksvoortzetting
XLNet Google / CMU Autoregressief (permutatief) Bidirectioneel (in theorie) Tekstbegrip (alternatief voor MLM)
T5 Google Encoder-Decoder Bidirectioneel (encoder) + Unidirectioneel (decoder) Universele "tekst-naar-tekst"-transformatie

Invloed

BERT heeft een ware revolutie teweeggebracht in NLP en de basis gelegd voor vele daaropvolgende ontwikkelingen:

  1. Vestigde de paradigma van "vooraf trainen + fine-tunen" als de dominante aanpak in NLP.
  2. Bewees het belang van diepe bidirectionele context voor taalverstaan.
  3. Verlaagde de drempel voor het creëren van krachtige NLP-systemen, omdat onderzoekers en ontwikkelaars niet langer voor elke taak complexe architecturen vanaf nul hoefden te bouwen.
  4. Werd geïntegreerd in Google Zoeken, wat een van de grootste updates van de zoekmachine in haar geschiedenis was en op een tastbare manier het praktisch nut van het model aantoonde.
  5. Gaf aanleiding tot een heel ecosysteem van afgeleide modellen, hulpmiddelen en onderzoeken ("BERTology"), waardoor het een van de meest geciteerde werken op het gebied van AI werd.

Ondanks het feit dat nieuwere en grotere modellen, zoals GPT-3 en GPT-4, BERT op veel benchmarks hebben overtroffen (met name op generatieve taken), blijven BERT en zijn varianten tot op heden een krachtig en veelgebruikt instrument voor taken die diepgaand tekstbegrip vereisen.

Verwijzingen

  • Officiële BERT-repository op GitHub
  • Aankondiging van BERT op de Google AI-blog
  • The Illustrated BERT — visuele uitleg van de BERT-architectuur

Literatuur

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