stub Hvad er transformatorneurale netværk? - Unite.AI
Følg os

AI 101

Hvad er transformatorneurale netværk?

mm
Opdateret on

Transformer neurale netværk beskrevet

transformers er en type maskinlæringsmodel, der har specialiseret sig i at behandle og fortolke sekventielle data, hvilket gør dem optimale til naturlige sprogbehandlingsopgaver. For bedre at forstå, hvad en maskinlæringstransformator er, og hvordan de fungerer, lad os se nærmere på transformermodeller og de mekanismer, der driver dem.

Denne artikel vil dække:

  • Sekvens-til-sekvens-modeller
  • Transformers neurale netværksarkitektur
  • Opmærksomhedsmekanismen
  • Forskelle mellem transformere og RNN'er/LSTM'er

Sekvens-til-sekvens-modeller

Sekvens-til-sekvens-modeller er en type NLP-model, der bruges til at konvertere sekvenser af en type til en sekvens af en anden type. Der findes forskellige typer sekvens-til-sekvens-modeller, som f.eks Tilbagevendende neuralt netværk modeller og Langtidshukommelse (LSTM) modeller.

Traditionelle sekvens-til-sekvens-modeller som RNN'er og LSTMS er ikke fokus i denne artikel, men en forståelse af dem er nødvendig for at forstå, hvordan transformermodeller fungerer, og hvorfor de er overlegne i forhold til traditionelle sekvens-til-sekvens-modeller.

Kort fortalt består RNN-modeller og LSTM-modeller af encoder- og dekodernetværk, der analyserer inputdata på forskellige tidspunkter. Indkodermodellen er ansvarlig for at danne en kodet repræsentation af ordene i inputdataene. Ved hvert tidstrin tager indkodernetværket en inputsekvens og en skjult tilstand fra det forrige tidstrin i serien. De skjulte tilstandsværdier opdateres, efterhånden som dataene fortsætter gennem netværket, indtil det sidste tidstrin, hvor en "kontekstvektor" genereres. Kontekstvektoren sendes derefter til dekodernetværket, som bruges til at generere en målsekvens ved at forudsige det mest sandsynlige ord, der parres med inputordet for de respektive tidstrin.

Disse modeller kan udvides ved at bruge en "opmærksomhedsmekanisme”. En opmærksomhedsmekanisme definerer, hvilke dele af inputvektoren netværket skal fokusere på for at generere det korrekte output. For at sige det på en anden måde, lader en opmærksomhedsmekanisme transformatormodellen behandle ét inputord, mens den også tager hensyn til den relevante information indeholdt i de andre inputord. Opmærksomhedsmekanismer maskerer også ord, der ikke indeholder relevant information.

Transformer neural netværksarkitektur

Vi vil gå ind på opmærksomhedsmekanismen mere detaljeret senere, men lad os nu tage et kig på arkitekturen af ​​et transformatorneuralt netværk på et højere niveau.

Generelt ser et transformatorneuralt netværk nogenlunde sådan ud:

Selvom denne generelle struktur kan ændre sig mellem netværk, vil kernestykkerne forblive de samme: positionelle kodninger, ordvektorer, opmærksomhedsmekanisme, feed-forward neurale netværk.

Positionelle kodninger og ordvektorer

En transformer neurale netværk fungerer ved at tage en sekvens af input og konvertere disse input til to andre sekvenser. Transformatoren producerer en sekvens af ordvektorindlejringer og positionskodninger.

Word vektor indlejringer er blot teksten repræsenteret i et numerisk format, som det neurale netværk kan behandle. I mellemtiden er positionskodningerne vektoriserede repræsentationer, der indeholder information om positionen af ​​det aktuelle ord var i inputsætningen i forhold til andre ord.

Andre tekstbaserede neurale netværksmodeller som RNN'er og LSTM'er bruger vektorer til at repræsentere ordene i inputdata. Disse vektorindlejringer kortlægger ord til konstante værdier, men dette er begrænsende, fordi ord kan bruges i forskellige sammenhænge. Et transformatornetværk løser dette problem ved at gøre ordværdier mere fleksible ved at bruge sinusformede funktioner til at lade ordvektorerne antage forskellige værdier afhængigt af ordets position i sætningen.

Dette gør det muligt for den neurale netværksmodel at bevare information om den relative position af inputordene, selv efter at vektorerne bevæger sig gennem lagene i transformatornetværket.

Positionskodningerne og ordvektorindlejringerne summeres sammen og sendes derefter til både indkoder- og dekodernetværket. Mens transformatorneurale netværk bruger encoder/decoder-skemaer ligesom RNN'er og LSTM'er, er en stor forskel mellem dem, at alle inputdata føres ind i netværket på samme tid, hvorimod dataene i RNN'er/LSTM'er sendes sekventielt.

Indkodernetværkene er ansvarlige for at konvertere inputs til repræsentationer netværket kan lære af, mens dekodernetværkene gør det modsatte og konverterer kodningerne til en sandsynlighedsfordeling, der bruges til at generere de mest sandsynlige ord i outputsætningen. Det er afgørende, at både koder- og dekodernetværket har en opmærksomhedsmekanisme.

Fordi GPU'er er i stand til parallel behandling, bruges flere opmærksomhedsmekanismer parallelt, der beregner den relevante information for alle inputordene. Denne evne til at være opmærksom på flere ord, kaldet "multi-head" opmærksomhed, ad gangen hjælper det neurale netværk med at lære konteksten af ​​et ord i en sætning, og det er en af ​​de primære fordele, som transformatornetværk har i forhold til RNN'er og LSTM'er.

Opmærksomhedsmekanismen

Opmærksomhedsmekanismen er den vigtigste del af et transformatornetværk. Opmærksomhedsmekanismen er det, der gør det muligt for transformatormodeller at gå ud over opmærksomhedsgrænsen for en typisk RNN- eller LSTM-model. Traditionelle sekvens-til-sekvens-modeller kasserer alle de mellemliggende tilstande og bruger kun den endelige tilstand/kontekstvektor ved initialisering af dekodernetværket til at generere forudsigelser om en inputsekvens.

At kassere alt undtagen den endelige kontekstvektor fungerer okay, når inputsekvenserne er ret små. Men efterhånden som længden af ​​en inputsekvens øges, vil modellens ydeevne forringes, mens denne metode bruges. Dette skyldes, at det bliver ret svært at opsummere en lang inputsekvens som en enkelt vektor. Løsningen er at øge modellens "opmærksomhed" og udnytte de mellemliggende indkodertilstande til at konstruere kontekstvektorer til dekoderen.

Opmærksomhedsmekanismen definerer, hvor vigtige andre input-tokens er for modellen, når der oprettes kodninger for et givet token. For eksempel er "det" et generelt pronomen, der ofte bruges til at henvise til dyr, når deres køn ikke er kendt. En opmærksomhedsmekanisme ville lade en transformatormodel bestemme, at "det" i den aktuelle sammenhæng refererer til et egern, fordi det kan undersøge alle de relevante ord i inputsætningen.

En opmærksomhedsmekanisme kan bruges på tre forskellige måder: encoder-to-decoder, encoder-only, decoder-only.

Encoder-decoder-opmærksomhed lader dekoderen overveje inputsekvenser, når den genererer et output, mens opmærksomhedsmekanismerne kun for encoder og dekoder-only lader netværkene overveje alle dele af henholdsvis den tidligere og den aktuelle sekvens.

Konstruktionen af ​​en opmærksomhedsmekanisme kan opdeles i fem trin:

  1. Udregning af en score for alle indkodertilstande.
  2. Beregning af opmærksomhedsvægte
  3. Beregning af kontekstvektorer
  4. Opdatering af kontekstvektor med tidligere tidstrinsoutput
  5. Generering af output med dekoder

Det første trin er at få dekoderen til at beregne en score for alle indkodertilstandene. Dette gøres ved at træne dekodernetværket, som er et grundlæggende feed-forward neuralt netværk. Når dekoderen trænes på det første ord i inputsekvensen, er der endnu ikke oprettet nogen intern/skjult tilstand, så koderens sidste tilstand bruges typisk som dekoderens tidligere tilstand.

For at beregne opmærksomhedsvægtene bruges en softmax funktion til at generere en sandsynlighedsfordeling for opmærksomhedsvægtene.

Når opmærksomhedsvægtene er blevet beregnet, skal kontekstvektoren beregnes. Dette gøres ved at gange opmærksomhedsvægtene og den skjulte tilstand sammen for hvert tidstrin.

Efter at kontekstvektoren er beregnet, bruges den sammen med det ord, der blev genereret i det foregående tidstrin, til at generere det næste ord i outputsekvensen. Fordi dekoderen ikke har noget tidligere output at referere til i det første tidstrin, bruges der ofte et særligt "start"-token i stedet for.

Forskelle mellem transformere og RNN'er/LSTM'er

Lad os hurtigt dække nogle af forskellene mellem RNN'er og LSTM'er.

RNN'er behandler input sekventielt, mens en skjult tilstandsvektor opretholdes og ændres af inputordene, når de bevæger sig gennem netværket. De skjulte tilstande af en RNN indeholder typisk meget lidt relevant information vedrørende de tidligere input. Nye input overskriver ofte den aktuelle tilstand, hvilket medfører tab af information og forringer ydeevnen over tid.

I modsætning hertil behandler transformatormodeller hele inputsekvensen på én gang. Opmærksomhedsmekanismen gør det muligt for hvert outputord at blive informeret ved hver input og skjult tilstand, hvilket gør netværket mere pålideligt til lange tekststykker.

LSTM'er er en modificeret version af RNN'er, justeret til at håndtere længere inputsekvenser. LSTM-arkitekturen bruger en struktur kaldet "gates", med "input gates", "output gates" og "glem gates". Det gatede design omhandler det informationstab, der er fælles for RNN-modeller. Data behandles stadig sekventielt, og arkitekturens tilbagevendende design gør LSTM-modeller svære at træne ved hjælp af parallel computing, hvilket gør træningstiden samlet set længere.

LSTM-ingeniører tilføjede ofte opmærksomhedsmekanismer til netværket, som var kendt for at forbedre modellens ydeevne. Det blev dog til sidst opdaget, at opmærksomhedsmekanismen alene forbedrede nøjagtigheden. Denne opdagelse førte til oprettelsen af ​​transformatornetværk, der brugte opmærksomhedsmekanismer og parallel computing takket være GPU'er.