Connect with us

NLPs opsving med Transformer-modeller | En omfattende analyse af T5, BERT og GPT

Kunstig intelligens

NLPs opsving med Transformer-modeller | En omfattende analyse af T5, BERT og GPT

mm
Guide on NLP

Naturlig sprogbehandling (NLP) har oplevet nogle af de mest betydningsfulde gennembrud i de seneste år, primært på grund af transformer-arkitekturen. Disse gennembrud har ikke kun forbedret maskiners evne til at forstå og generere menneskesprog, men har også omdefineret landskabet for en række anvendelser, fra søgemaskiner til konversationsbaseret AI.

For at fuldt ud nyde betydningen af transformatorer, må vi først kaste et blik på forgængerne og byggestenene, der lagde grundlaget for denne revolutionerende arkitektur.

Tidlige NLP-teknikker: Fundamentet før transformatorer

Word Embeddings: Fra One-Hot til Word2Vec

I traditionelle NLP-tilgange blev ord ofte repræsenteret på en litteral måde og manglede enhver form for semantisk eller syntaktisk forståelse. One-hot-kodning er et primært eksempel på denne begrænsning.

One-hot-kodning er en proces, hvor kategoriske variabler konverteres til en binær vektorrepræsentation, hvor kun ét bit er “varm” (sat til 1), mens alle andre er “kolde” (sat til 0). I NLP-sammenhæng repræsenteres hvert ord i en ordbog ved one-hot-vektorer, hvor hver vektor er størrelsen på ordbogen, og hvert ord repræsenteres af en vektor med alle 0’er og en 1 på den position, der svarer til ordet i ordbogens liste.

Eksempel på One-Hot-kodning

Antag, at vi har en lille ordbog med kun fem ord: [“konge”, “dronning”, “mand”, “kvinde”, “barn”]. One-hot-kodningsvektorerne for hvert ord ville se således ud:

  • “konge” -> [1, 0, 0, 0, 0]
  • “dronning” -> [0, 1, 0, 0, 0]
  • “mand” -> [0, 0, 1, 0, 0]
  • “kvinde” -> [0, 0, 0, 1, 0]
  • “barn” -> [0, 0, 0, 0, 1]

Matematisk repræsentation

Hvis vi betegner V som størrelsen på vores ordbog og wi som one-hot-vektorrepræsentationen af det i’te ord i ordbogen, kan wi repræsenteres som:

wi=[0,0,,1,,0,0] hvor den i’te position er 1 og alle andre positioner er 0.hvor den i’te position er 1 og alle andre positioner er 0.

Den største ulempe ved one-hot-kodning er, at den behandler hvert ord som en isoleret enhed, uden nogen relation til andre ord. Det resulterer i sparsomme og højdimensionelle vektorer, der ikke kan fange nogen semantisk eller syntaktisk information om ordene.

Introduktionen af word embeddings, især Word2Vec, var et afgørende øjeblik i NLP. Udviklet af et hold hos Google ledet af Tomas Mikolov i 2013, repræsenterede Word2Vec ord i et tæt vektorrum, der fanget syntaktiske og semantiske ordrelationer baseret på deres kontekst inden for store korpus af tekst.

I modsætning til one-hot-kodning producerer Word2Vec tætte vektorer, typisk med hundredvis af dimensioner. Ord, der optræder i lignende kontekster, som “konge” og “dronning”, vil have vektorrepræsentationer, der er tættere på hinanden i vektorrummet.

For illustration, lad os antage, at vi har trænet en Word2Vec-model og nu repræsenterer ord i et hypotetisk 3-dimensionelt rum. Embeddingerne (der normalt er mere end 3D, men reduceret her til simplicity) kunne se således ud:

  • “konge” -> [0,2, 0,1, 0,9]
  • “dronning” -> [0,21, 0,13, 0,85]
  • “mand” -> [0,4, 0,3, 0,2]
  • “kvinde” -> [0,41, 0,33, 0,27]
  • “barn” -> [0,5, 0,5, 0,1]

Selvom disse tal er fiktive, illustrerer de, hvordan lignende ord har lignende vektorer.

Matematisk repræsentation

Hvis vi repræsenterer Word2Vec-embedding af et ord som vw, og vores embedding-rum har d dimensioner, kan vw repræsenteres som:

vw=[v1,v2,,vd] hvor hver vi er et flyttal, der repræsenterer en funktion af ordet i embedding-rummet.

Semantiske relationer

Word2Vec kan endda fange komplekse relationer, såsom analogier. For eksempel, den berømte relation, der er fanget af Word2Vec-embeddings, er:

vektor(“konge”) – vektor(“mand”) + vektor(“kvinde”)≈vektor(“dronning”)vektor(“konge”) – vektor(“mand”) + vektor(“kvinde”)vektor(“dronning”)

Dette er muligt, fordi Word2Vec justerer ordvektorerne under træning, så ord, der deler fælles kontekster i korpus, placeres tæt på hinanden i vektorrummet.

Word2Vec bruger to hovedarkitekturer til at producere en distribueret repræsentation af ord: Continuous Bag-of-Words (CBOW) og Skip-Gram. CBOW forudsiger et mål-ord fra dets omgivende kontekstord, mens Skip-Gram gør det omvendte, hvor kontekstord forudsiger fra et mål-ord. Dette tillod maskiner at begynde at forstå ordbrug og betydning på en mere nuanceret måde.

Sequensmodellering: RNN’er og LSTM’er

Da feltet udviklede sig, skiftede fokus mod at forstå sekvenser af tekst, hvilket var afgørende for opgaver som maskinoversættelse, tekstsummering og sentimentanalyse. Recurrent Neural Networks (RNN’er) blev hjørnestenen for disse anvendelser på grund af deres evne til at håndtere sekventiel data ved at opretholde en form for hukommelse.

Men RNN’er var ikke uden begrænsninger. De kæmpede med langsigtede afhængigheder på grund af det forsvindende gradientproblem, hvor information går tabt over lange sekvenser, og det blev svært at lære korrelationer mellem fjerne begivenheder.

Long Short-Term Memory-netværk (LSTM’er), introduceret af Sepp Hochreiter og Jürgen Schmidhuber i 1997, adresserede dette problem med en mere sofistikeret arkitektur. LSTM’er har porte, der kontrollerer informationsflow: input-porten, forget-porten og output-porten. Disse porte bestemmer, hvilken information der gemmes, opdateres eller kasseres, og tillod netværket at bevare langsigtede afhængigheder og forbedrede betydeligt præstationen på en bred vifte af NLP-opgaver.

Transformer-arkitekturen

Landskabet for NLP undergik en dramatisk forandring med introduktionen af transformer-modellen i den banebrydende artikel “Attention is All You Need” af Vaswani et al. i 2017. Transformer-arkitekturen afviger fra den sekventielle behandling af RNN’er og LSTM’er og bruger i stedet en mekanisme kaldet ‘self-attention’ til at vægte betydningen af forskellige dele af inputdataen.

Kernen i transformer-arkitekturen er, at den kan behandle hele inputdataen på én gang, i stedet for sekventielt. Dette tillader en langt større parallelisering og, som følge heraf, betydelige forbedringer af træningstiden. Self-attention-mekanismen giver modellen mulighed for at fokusere på forskellige dele af teksten, mens den behandles, hvilket er afgørende for at forstå konteksten og relationerne mellem ord, uanset deres position i teksten.

Kodér og dekodér i transformatorer:

I den oprindelige Transformer-model, som beskrevet i artiklen “Attention is All You Need” af Vaswani et al., er arkitekturen inddelt i to hoveddele: kodéren og dekodéren. Begge dele består af lag, der har samme generelle struktur, men tjener forskellige formål.

Kodér:

  • Rolle: Kodérens rolle er at behandle inputdataen og oprette en repræsentation, der fanget relationerne mellem elementerne (som ord i en sætning). Denne del af transformer-modellen genererer ikke nogen ny indhold; den transformerer blot input til en tilstand, som dekodéren kan bruge.
  • Funktionalitet: Hver kodér-lag har self-attention-mekanismer og feed-forward neurale netværk. Self-attention-mekanismen giver hver position i kodéren mulighed for at fokusere på alle positioner i den forrige lag af kodéren—derved kan den lære konteksten omkring hvert ord.
  • Kontekstuelle embedinger: Output fra kodéren er en række vektorer, der repræsenterer inputsekvensen i et højdimensionelt rum. Disse vektorer kaldes ofte kontekstuelle embedinger, fordi de ikke kun repræsenterer de enkelte ord, men også deres kontekst inden for sætningen.

Dekodér:

  • Rolle: Dekodérens rolle er at generere outputdata sekventielt, ét stykke ad gangen, baseret på input fra kodéren og hvad den har genereret hidtil. Den er designet til opgaver som tekstgenerering, hvor genereringsrækkefølgen er afgørende.
  • Funktionalitet: Dekodér-lagene indeholder også self-attention-mekanismer, men de er maskeret for at forhindre positioner i at fokusere på efterfølgende positioner. Dette sikrer, at forudsigelsen for en bestemt position kun kan afhænge af kendte outputs på positioner før den. Yderligere indeholder dekodér-lagene en anden attention-mekanisme, der fokuserer på output fra kodéren, og integrerer konteksten fra input i genereringsprocessen.
  • Sekventiel generering: Dette refererer til dekodérens evne til at generere en sekvens ét element ad gangen, bygget på hvad den allerede har produceret. For eksempel, når der genereres tekst, forudsiger dekodéren det næste ord baseret på konteksten leveret af kodéren og sekvensen af ord, den allerede har genereret.

Hver af disse under-lag i både kodér og dekodér er afgørende for modellens evne til at håndtere komplekse NLP-opgaver. Den multi-hovedede attention-mekanisme giver modellen mulighed for at fokusere på forskellige dele af sekvensen, og giver en rig forståelse af konteksten.

Populære modeller, der udnytter transformatorer

Efter den oprindelige succes med transformer-modellen, var der en eksplosion af nye modeller bygget på denne arkitektur, hver med deres egne innovationer og optimeringer til forskellige opgaver:

BERT (Bidirectional Encoder Representations from Transformers): Introduceret af Google i 2018, revolutionerede BERT måden, hvorpå kontekstuelle informationer integreres i sprogrepræsentationer. Ved at fortræne på en stor korpus af tekst med en maskeret sprogmodel og næste-sætningsforudsigelse, fangede BERT rig bidirectional kontekst og opnåede state-of-the-art-resultater på en bred vifte af NLP-opgaver.

BERT

BERT

T5 (Text-to-Text Transfer Transformer): Introduceret af Google i 2020, omdefinerede T5 alle NLP-opgaver som et tekst-til-tekst-problem, ved at bruge en samlet tekstbaseret format. Denne tilgang simplificerer processen med at anvende modellen på en bred vifte af opgaver, herunder oversættelse, sammenfattelse og spørgsmålssvar.

t5 Architecture

T5 Architecture

GPT (Generative Pre-trained Transformer): Udviklet af OpenAI, startede GPT-linjen af modeller med GPT-1 og nåede GPT-4 i 2023. Disse modeller er fortrænet ved hjælp af usuperviseret læring på enorme mængder af tekstdata og finjusteret for forskellige opgaver. Deres evne til at generere kohærent og kontekstuel relevant tekst har gjort dem meget indflydelsesrige i både akademiske og kommercielle AI-anvendelser.

GPT

GPT Architecture

Her er en mere detaljeret sammenligning af T5-, BERT- og GPT-modellerne på tværs af forskellige dimensioner:

1. Tokenisering og Vokabular

  • BERT: Bruger WordPiece-tokenisering med et vokabular på omkring 30.000 token.
  • GPT: Anvender Byte Pair Encoding (BPE) med et stort vokabular (f.eks. har GPT-3 et vokabular på 175.000).
  • T5: Udnytter SentencePiece-tokenisering, som behandler teksten som rå og ikke kræver forudgående ordsegmentering.

2. Pre-træningsobjektiver

  • BERT: Masked Language Modeling (MLM) og Next Sentence Prediction (NSP).
  • GPT: Kausalt Sprogmodel (CLM), hvor hvert token forudsiger det næste token i sekvensen.
  • T5: Bruger en støjende objekt, hvor tilfældige dele af teksten erstattes med en vagabond-token, og modellen lærer at genskabe den originale tekst.

3. Inddatarepræsentation

  • BERT: Token-, segment- og positions-embedinger kombineres til at repræsentere input.
  • GPT: Token- og positions-embedinger kombineres (ingen segment-embedinger, da det ikke er designet til sætningspar-opgaver).
  • T5: Kun token-embedinger med tilføjede relative positionskodninger under attention-operationer.

4. Attention-mekanisme

  • BERT: Bruger absolutte positionskodninger og giver hver position i kodéren mulighed for at fokusere på alle positioner til venstre og højre (bidirectional attention).
  • GPT: Bruger også absolutte positionskodninger, men begrænser attention til forrige token (unidirectional attention).
  • T5: Implementerer en variant af transformer, der bruger relative positionsbias i stedet for positions-embedinger.

5. Modelarkitektur

  • BERT: Kun kodér-arkitektur med flere lag af transformer-blokke.
  • GPT: Kun dekodér-arkitektur, også med flere lag, men designet til generative opgaver.
  • T5: Kodér-dekodér-arkitektur, hvor både kodér og dekodér består af transformer-lag.

6. Finjusteringsmetode

  • BERT: Tilpasser de sidste skjulte tilstande af den fortrænede model til downstream-opgaver med ekstra output-lag, hvis nødvendigt.
  • GPT: Tilføjer et lineært lag på toppen af transformer og finjusterer på downstream-opgaven ved hjælp af samme kausale sprogmodel-objekt.
  • T5: Omdefinerer alle opgaver til en tekst-til-tekst-format, hvor modellen finjusteres til at generere målsekvensen fra inputsekvensen.

7. Træningsdata og Skala

  • BERT: Trænet på BooksCorpus og den engelske Wikipedia.
  • GPT: GPT-2 og GPT-3 er trænet på diverse datasæt udtrukket fra internettet, med GPT-3 trænet på et endnu større korpus kaldet Common Crawl.
  • T5: Trænet på “Colossal Clean Crawled Corpus”, der er en stor og ren version af Common Crawl.

8. Håndtering af Kontekst og Bidirectionalitet

  • BERT: Designet til at forstå kontekst i begge retninger samtidigt.
  • GPT: Trænet til at forstå kontekst i en fremadrettet retning (venstre til højre).
  • T5: Kan modelere bidirectional kontekst i kodéren og unidirectional i dekodéren, passende for sekvens-til-sekvens-opgaver.

9. Tilpasning til Downstream-opgaver

  • BERT: Kræver opgave-specifikke hovedlag og finjustering for hver downstream-opgave.
  • GPT: Er generativ af natur og kan fremkaldes til at udføre opgaver med minimale ændringer i sin struktur.
  • T5: Behandler alle opgaver som et “tekst-til-tekst”-problem, hvilket gør den indreibt til at tilpasse sig nye opgaver.

10. Fortolkning og Forklarbarhed

  • BERT: Den bidirectionale natur giver rig kontekstuelle embedinger, men kan være sværere at fortolke.
  • GPT: Den unidirectionale kontekst kan være mere direkte at følge, men mangler dybden af bidirectional kontekst.
  • T5: Kodér-dekodér-rammen giver en klar adskillelse af behandlingsstadier, men kan være kompleks at analysere på grund af sin generative natur.

Transformatorernes Indvirkning på NLP

Transformatorer har revolutioneret feltet NLP ved at give modeller mulighed for at behandle sekvenser af data i parallel, hvilket dramatisk øgede hastigheden og effektiviteten af træning af store neurale netværk. De introducerede self-attention-mekanismen, der giver modeller mulighed for at vægte betydningen af hver del af inputdataen, uanset afstand inden for sekvensen. Dette førte til uhørt forbedringer på en bred vifte af NLP-opgaver, herunder oversættelse, spørgsmålssvar og tekstsummering.

Forskning fortsætter med at udvide grænserne for, hvad transformer-baserede modeller kan opnå. GPT-4 og dets samtidige er ikke kun større i skala, men også mere effektive og kapable på grund af fremskridt i arkitektur og træningsmetoder. Teknikker som few-shot learning, hvor modeller udfører opgaver med minimale eksempler, og metoder til mere effektiv overføring af læring er i centrum for nuværende forskning.

Sprogmodeller som dem baseret på transformatorer lærer fra data, der kan indeholde fordomme. Forskere og praktikere arbejder aktivt på at identificere, forstå og mindske disse fordomme. Teknikker spænder fra kuraterede træningsdatasæt til justeringer efter træning, der sigter mod fairhed og neutralitet.

Jeg har brugt de sidste fem år på at dykke ned i den fascinerende verden af Machine Learning og Deep Learning. Min passion og ekspertise har ført til, at jeg har bidraget til over 50 forskellige software-udviklingsprojekter, med særlig fokus på AI/ML. Min vedvarende nysgerrighed har også ført mig i retning af Natural Language Processing, et felt jeg er ivrig efter at udforske yderligere.