AI-modellen en platforms

NLP-opkomst met Transformer-modellen | Een uitgebreide analyse van T5, BERT en GPT

mm
Voeg Unite.AI toe aan je voorkeursbronnen op Google

Natuurlijke Taalverwerking (NLP) heeft in recente jaren enkele van de meest impactvolle doorbraken meegemaakt, voornamelijk dankzij de transformer-architectuur. Deze doorbraken hebben niet alleen de mogelijkheden van machines om menselijke taal te begrijpen en te genereren verbeterd, maar hebben ook het landschap van talloze toepassingen opnieuw gedefinieerd, van zoekmachines tot conversational AI.

Om de significantie van transformers volledig te waarderen, moeten we eerst naar de voorgangers en bouwstenen kijken die de basis legden voor deze revolutionaire architectuur.

Vroege NLP-technieken: De fundamenten voor Transformers

Woordembeddings: Van One-Hot naar Word2Vec

In traditionele NLP-benaderingen werd de weergave van woorden vaak letterlijk en ontbrak elke vorm van semantische of syntactische begrip. One-hot-codering is een voorbeeld van deze beperking.

One-hot-codering is een proces waarbij categorale variabelen worden omgezet in een binaire vectorweergave waarbij alleen één bit “heet” (ingesteld op 1) is en alle anderen “koud” (ingesteld op 0) zijn. In de context van NLP wordt elk woord in een vocabulaireir weergegeven door one-hot-vectoren waarbij elke vector de grootte van het vocabulaireir heeft en elk woord wordt weergegeven door een vector met alle 0’s en één 1 op de index die overeenkomt met dat woord in de vocabulaireirlijst.

Voorbeeld van One-Hot-Codering

Stel dat we een klein vocabulaireir hebben met slechts vijf woorden: [“king”, “queen”, “man”, “woman”, “child”]. De one-hot-coderingsvectoren voor elk woord zouden er zo uitzien:

  • “king” -> [1, 0, 0, 0, 0]
  • “queen” -> [0, 1, 0, 0, 0]
  • “man” -> [0, 0, 1, 0, 0]
  • “woman” -> [0, 0, 0, 1, 0]
  • “child” -> [0, 0, 0, 0, 1]

Wiskundige Weergave

Als we aanduiden als de grootte van ons vocabulaireir en als de one-hot-vectorweergave van het i-de woord in het vocabulaireir, dan is de wiskundige weergave van als volgt:

waarbij de i-de positie 1 is en alle andere posities 0.

De belangrijkste beperking van one-hot-codering is dat het elk woord behandelt als een geïsoleerd entiteit, zonder enige relatie tot andere woorden. Het resulteert in spaarzame en hoogdimensionale vectoren die geen semantische of syntactische informatie over de woorden vastleggen.

De introductie van woordembeddings, met name Word2Vec, was een cruciaal moment in NLP. Ontwikkeld door een team bij Google (GOOGL ) onder leiding van Tomas Mikolov in 2013, vertegenwoordigde Word2Vec woorden in een dichte vectorruimte, waarbij syntactische en semantische woordrelaties werden vastgelegd op basis van hun context binnen grote corpora van tekst.

In tegenstelling tot one-hot-codering produceert Word2Vec dichte vectoren, meestal met honderden dimensies. Woorden die in vergelijkbare contexten voorkomen, zoals “king” en “queen”, zullen vectorweergaven hebben die dichter bij elkaar in de vectorruimte liggen.

Voor illustratie laten we ervan uitgaan dat we een Word2Vec-model hebben getraind en nu woorden vertegenwoordigen in een hypothetische driedimensionale ruimte. De embeddings (die meestal meer dan 3D zijn, maar hier voor eenvoudigheid zijn gereduceerd) zouden er ongeveer zo uit kunnen zien:

  • “king” -> [0.2, 0.1, 0.9]
  • “queen” -> [0.21, 0.13, 0.85]
  • “man” -> [0.4, 0.3, 0.2]
  • “woman” -> [0.41, 0.33, 0.27]
  • “child” -> [0.5, 0.5, 0.1]

Hoewel deze getallen fictief zijn, illustreren ze hoe vergelijkbare woorden vergelijkbare vectoren hebben.

Wiskundige Weergave

Als we de Word2Vec-embedding van een woord aanduiden als , en onze embeddingruimte dimensies heeft, dan kan als volgt worden weergegeven:

Semantische Relaties

Word2Vec kan zelfs complexe relaties vastleggen, zoals analogieën. Bijvoorbeeld, de beroemde relatie die door Word2Vec-embeddings wordt vastgelegd, is:

vector(“king”) – vector(“man”) + vector(“woman”)≈vector(“queen”)

Dit is mogelijk omdat Word2Vec de woordvectoren tijdens de training aanpast, zodat woorden die in vergelijkbare contexten voorkomen, dicht bij elkaar in de vectorruimte worden geplaatst.

Word2Vec gebruikt twee hoofdarchitecturen om een gedistribueerde weergave van woorden te produceren: Continuous Bag-of-Words (CBOW) en Skip-Gram. CBOW voorspelt een doelwoord uit zijn omringende contextwoorden, terwijl Skip-Gram het omgekeerde doet, contextwoorden voorspelt uit een doelwoord. Dit stelde machines in staat om woordgebruik en -betekenis op een meer nuanceuze manier te begrijpen.

Sequentiële Modellering: RNN’s en LSTMs

Naarmate het veld vorderde, verschoof de focus naar het begrijpen van sequenties van tekst, wat cruciaal was voor taken zoals machinevertaling, tekstsamenvatting en sentimentanalyse. Recurrent Neural Networks (RNN’s) werden de hoeksteen voor deze toepassingen vanwege hun vermogen om sequentiële gegevens te verwerken door een vorm van geheugen te behouden.

Er waren echter beperkingen aan RNN’s. Ze worstelden met langetermijnafhankelijkheden vanwege het verdwijnende-gradiëntprobleem, waarbij informatie verloren gaat over lange sequenties, waardoor het moeilijk wordt om correlaties tussen verre gebeurtenissen te leren.

Long Short-Term Memory-netwerken (LSTMs), geïntroduceerd door Sepp Hochreiter en Jürgen Schmidhuber in 1997, losten dit probleem op met een meer geavanceerde architectuur. LSTMs hebben poorten die de stroom van informatie controleren: de invoerpoort, de vergetenpoort en de uitvoerpoort. Deze poorten bepalen welke informatie wordt opgeslagen, bijgewerkt of verwijderd, waardoor het netwerk langetermijnafhankelijkheden kan behouden en de prestaties op een breed scala aan NLP-taken aanzienlijk verbetert.

De Transformer-Architectuur

Het landschap van NLP onderging een dramatische transformatie met de introductie van het transformer-model in het baanbrekende artikel “Attention is All You Need” van Vaswani et al. in 2017. De transformer-architectuur wijkt af van de sequentiële verwerking van RNN’s en LSTMs en maakt in plaats daarvan gebruik van een mechanisme genaamd ‘zelf-aandacht’ om het belang van verschillende delen van de invoergegevens te wegen.

Het kernidee van de transformer is dat het de volledige invoergegevens in één keer kan verwerken, in plaats van sequentieel. Dit maakt veel meer parallelisatie mogelijk en resulteert in aanzienlijke toenames in trainingsnelheid. Het zelf-aandachtsmechanisme stelt het model in staat om zich te concentreren op verschillende delen van de tekst terwijl het deze verwerkt, wat essentieel is voor het begrijpen van de context en de relaties tussen woorden, ongeacht hun positie in de tekst.

Encoder en Decoder in Transformers:

In het originele Transformer-model, zoals beschreven in het artikel “Attention is All You Need” van Vaswani et al., is de architectuur verdeeld in twee hoofddelen: de encoder en de decoder. Beide delen bestaan uit lagen met dezelfde algemene structuur, maar dienen verschillende doelen.

Encoder:

  • Rol: De rol van de encoder is om de invoergegevens te verwerken en een weergave te creëren die de relaties tussen de elementen (zoals woorden in een zin) vastlegt. Dit deel van de transformer genereert geen nieuwe inhoud; het transformeert de invoer alleen in een staat die de decoder kan gebruiken.
  • Functie: Elke encoderlaag heeft zelf-aandachtsmechanismen en feed-forward neurale netwerken. Het zelf-aandachtsmechanisme stelt elke positie in de encoder in staat om aandacht te besteden aan alle posities in de vorige laag van de encoder—hierdoor kan het de context rond elk woord leren.
  • Contextuele Embeddings: De uitvoer van de encoder is een reeks vectoren die de invoersequentie in een hoogdimensionale ruimte vertegenwoordigen. Deze vectoren worden vaak aangeduid als contextuele embeddings omdat ze niet alleen de individuele woorden vertegenwoordigen, maar ook hun context binnen de zin.

Decoder:

  • Rol: De rol van de decoder is om uitvoergegevens sequentieel te genereren, één deel tegelijk, op basis van de invoer die het van de encoder ontvangt en wat het tot nu toe heeft gegenereerd. Het is ontworpen voor taken zoals tekstgeneratie, waar de volgorde van generatie cruciaal is.
  • Functie: Decoderlagen bevatten ook zelf-aandachtsmechanismen, maar deze zijn gemaskeerd om te voorkomen dat posities aandacht besteden aan latere posities. Dit zorgt ervoor dat de voorspelling voor een bepaalde positie alleen kan afhankelijk zijn van bekende uitvoer op posities ervoor. Bovendien bevatten de decoderlagen een tweede aandachtsmechanisme dat aandacht besteedt aan de uitvoer van de encoder, waardoor de context van de invoer wordt geïntegreerd in het generatieproces.
  • Sequentiële Generatiecapaciteiten: Dit verwijst naar de mogelijkheid van de decoder om een sequentie één element tegelijk te genereren, waarbij het voortbouwt op wat het al heeft gegenereerd. Bijvoorbeeld, bij het genereren van tekst, voorspelt de decoder het volgende woord op basis van de context die door de encoder wordt geleverd en de sequentie van woorden die het al heeft gegenereerd.

Elk van deze sublagen binnen de encoder en decoder is cruciaal voor het vermogen van het model om complexe NLP-taken aan te pakken. Het multi-head-aandachtsmechanisme stelt het model in staat om selectief aandacht te besteden aan verschillende delen van de sequentie, waardoor een rijke contextuele begrip ontstaat.

Populaire Modellen die Transformers Gebruiken

Na de initiële succes van het transformer-model, was er een explosie van nieuwe modellen gebaseerd op deze architectuur, elk met hun eigen innovaties en optimalisaties voor verschillende taken:

BERT (Bidirectionele Encoder-Representaties van Transformers): Geïntroduceerd door Google in 2018, revolutioneerde BERT de manier waarop contextuele informatie in taalrepresentaties wordt geïntegreerd. Door vooraf te trainen op een groot corpus van tekst met een gemaskeerd taalmodel en volgende-zin-predictie, legt BERT rijke bidirectionele contexten vast en heeft het state-of-the-art-resultaten behaald op een breed scala aan NLP-taken.

BERT

BERT

T5 (Tekst-naar-Tekst-Transfer-Transformer): Geïntroduceerd door Google in 2020, T5 ziet alle NLP-taken als een tekst-naar-tekst-probleem, met een uniforme tekstgebaseerde indeling. Deze benadering vereenvoudigt het proces van het toepassen van het model op een breed scala aan taken, waaronder vertaling, samenvatting en vraagbeantwoording.

T5-architectuur

T5-architectuur

GPT (Generatief Pre-getraind Transformer): Ontwikkeld door OpenAI, de GPT-lijn van modellen begon met GPT-1 en bereikte GPT-4 in 2023. Deze modellen worden voorafgetraind met ongezien leren op enorme hoeveelheden tekstgegevens en gefinetuned voor verschillende taken. Hun vermogen om coherente en contextueel relevante tekst te genereren heeft hen zeer invloedrijk gemaakt in zowel academische als commerciële AI-toepassingen.

GPT

GPT-architectuur

Hier volgt een meer diepgaande vergelijking van de T5-, BERT- en GPT-modellen over verschillende dimensies:

1. Tokenisatie en Vocabulaire

  • BERT: Gebruikt WordPiece-tokenisatie met een vocabulairegrootte van ongeveer 30.000 tokens.
  • GPT: Maakt gebruik van Byte Pair Encoding (BPE) met een grote vocabulairegrootte (bijv. GPT-3 heeft een vocabulairegrootte van 175.000).
  • T5: Gebruikt SentencePiece-tokenisatie, die de tekst als raw behandelt en geen vooraf gesegmenteerde woorden vereist.

2. Vooraftrainingsdoelen

  • BERT: Gemaskeerd Taalmodel (MLM) en Volgende Zin Predictie (NSP).
  • GPT: Causale Taalmodellering (CLM), waarbij elk token het volgende token in de sequentie voorspelt.
  • T5: Gebruikt een denoiserend doel, waarbij willekeurige tekstspannen worden vervangen door een sentinel-token en het model leert de oorspronkelijke tekst te reconstrueren.

3. Invoerweergave

  • BERT: Token-, Segment- en Positionele Embeddings worden gecombineerd om de invoer te vertegenwoordigen.
  • GPT: Token- en Positionele Embeddings worden gecombineerd (geen segment-embeddings, aangezien het niet is ontworpen voor zin-paar-taken).
  • T5: Alleen Token-Embeddings met toegevoegde Relative Positionele Encodings tijdens de aandachtsoperaties.

4. Aandachtsmechanisme

  • BERT: Gebruikt absolute positionele encodings en laat elk token toe om aandacht te besteden aan alle tokens links en rechts (bidirectionele aandacht).
  • GPT: Gebruikt ook absolute positionele encodings, maar beperkt de aandacht tot voorgaande tokens (unidirectionele aandacht).
  • T5: Implementeert een variant van de transformer die relative positionele biases gebruikt in plaats van positionele encodings.

5. Modelarchitectuur

  • BERT: Encoder-only-architectuur met meerdere lagen van transformer-blokken.
  • GPT: Decoder-only-architectuur, ook met meerdere lagen, maar ontworpen voor generatieve taken.
  • T5: Encoder-decoder-architectuur, waarbij zowel de encoder als de decoder bestaan uit transformer-lagen.

6. Fijnafstemmingsaanpak

  • BERT: Past de finale verborgen toestanden van het voorgetrainde model aan voor downstream-taken aan met extra uitvoerlagen als nodig.
  • GPT: Voegt een lineaire laag toe bovenop de transformer en fijnafstemt op de downstream-taak met hetzelfde causale taalmodelleringdoel.
  • T5: Converteert alle taken naar een tekst-naar-tekst-indeling, waarbij het model wordt gefinetuned om de doelsequentie te genereren vanuit de invoersequentie.

7. Trainingsgegevens en Schaal

  • BERT: Getraind op BookCorpus en de Engelse Wikipedia.
  • GPT: GPT-2 en GPT-3 zijn getraind op diverse datasets die van het internet zijn geëxtraheerd, waarbij GPT-3 is getraind op een nog grotere corpus genaamd de Common Crawl.
  • T5: Getraind op de “Colossal Clean Crawled Corpus”, een grote en schone versie van de Common Crawl.

8. Omgaan met Context en Bidirectionaliteit

  • BERT: Ontworpen om context in beide richtingen tegelijk te begrijpen.
  • GPT: Getraind om context in een voorwaartse richting (links-naar-rechts) te begrijpen.
  • T5: Kan bidirectionele context in de encoder en unidirectionele context in de decoder modelleren, geschikt voor sequentie-naar-sequentie-taken.

9. Aanpasbaarheid aan Downstream-taken

  • BERT: Vereist taakspecifieke koplagen en fijnafstemming voor elke downstream-taak.
  • GPT: Is generatief van aard en kan worden geprompt om taken uit te voeren met minimale wijzigingen in zijn structuur.
  • T5: Behandelt elke taak als een “tekst-naar-tekst”-probleem, waardoor het inherent flexibel en aanpasbaar is voor nieuwe taken.

10. Interpretatie en Verklaarbaarheid

  • BERT: De bidirectionele aard biedt rijke contextuele embeddings, maar kan moeilijker te interpreteren zijn.
  • GPT: De unidirectionele context kan eenvoudiger te volgen zijn, maar ontbeert de diepte van bidirectionele context.
  • T5: Het encoder-decoder-kader biedt een duidelijke scheiding van verwerkingstappen, maar kan complex zijn om te analyseren vanwege zijn generatieve aard.

De Impact van Transformers op NLP

Transformers hebben het veld van NLP gerevolutioneerd door modellen in staat te stellen om sequenties van gegevens parallel te verwerken, wat de trainingsnelheid van grote neurale netwerken aanzienlijk verhoogde. Ze introduceerden het zelf-aandachtsmechanisme, waardoor modellen het belang van elk deel van de invoergegevens konden wegen, ongeacht de afstand binnen de sequentie. Dit leidde tot ongekende verbeteringen in een breed scala aan NLP-taken, waaronder maar niet beperkt tot vertaling, vraagbeantwoording en tekstsamenvatting.

Onderzoek gaat door om de grenzen van wat transformer-gebaseerde modellen kunnen bereiken te verleggen. GPT-4 en zijn contemporaine modellen zijn niet alleen groter in schaal, maar ook efficiënter en capabeler dankzij vooruitgang in architectuur en trainingsmethoden. Technieken zoals few-shot learning, waarbij modellen taken uitvoeren met minimale voorbeelden, en methoden voor effectievere transfer learning staan aan de vooravond van het huidige onderzoek.

De taalmodellen, zoals die gebaseerd zijn op transformers, leren van gegevens die vooroordelen kunnen bevatten. Onderzoekers en beoefenaars werken actief aan het identificeren, begrijpen en mitigeren van deze vooroordelen. Technieken variëren van gecureerde trainingsdatasets tot post-trainingsaanpassingen gericht op eerlijkheid en neutraliteit.

Ik heb de afgelopen vijf jaar doorgebracht met het onderdompelen van mezelf in de fascinerende wereld van Machine Learning en Deep Learning. Mijn passie en expertise hebben me geleid om bij te dragen aan meer dan 50 diverse software-engineeringprojecten, met een bijzondere focus op AI/ML. Mijn voortdurende nieuwsgierigheid heeft me ook aangetrokken tot Natural Language Processing, een vakgebied dat ik graag verder wil verkennen.