Connect with us

AI 101

Mitkä ovat Transformer-Neuroverkkomallit?

mm

Transformer-Neuroverkkomallit Kuvaus

Transformers ovat tietyn tyyppisiä koneoppimismalleja, jotka erikoistuvat järjestelmällisen ja tulkinnan datan prosessointiin, mikä tekee niistä optimaalisia luonnollisen kielen prosessointitehtäviin. Jotta voimme paremmin ymmärtää, mitä koneoppimisen transformer on ja miten ne toimivat, tarkastellaan transformer-malleja ja niiden mekanismeja tarkemmin.

Tässä artikkelissa käsitellään:

  • Järjestelmä-järjestelmä-mallit
  • Transformer-Neuroverkon Arkkitehtuuri
  • Huomio-mekanismi
  • Eroavaisuudet Transformers ja RNNs/LSTMs välillä

Järjestelmä-järjestelmä-mallit

Järjestelmä-järjestelmä-mallit ovat tietyn tyyppisiä NLP-malleja, joita käytetään muuttamaan yhden tyyppisiä järjestelmiä toiseen tyyppiseen järjestelmään. On olemassa erilaisia järjestelmä-järjestelmä-malleja, kuten Recurrent Neural Network -mallit ja Long Short-Term Memory (LSTM) -mallit.

Perinteiset järjestelmä-järjestelmä-mallit, kuten RNN- ja LSTM-mallit, eivät ole tämän artikkelin keskipisteenä, mutta ymmärtäminen niistä on välttämätöntä, jotta voidaan arvostaa, miten transformer-mallit toimivat ja miksi ne ovat parempia kuin perinteiset järjestelmä-järjestelmä-mallit.

Lyhyesti, RNN- ja LSTM-mallit koostuvat koodaus- ja dekoodausverkoista, jotka analysoivat syötteen aikana eri aikakausina. Koodausverkko on vastuussa muodostamasta koodatusta edustuksesta syötteen sanoista. Jokaisessa aikakaudessa koodausverkko ottaa syötteen ja piilotilan edellisestä aikakaudesta. Piilotilan arvot päivitetään, kun data etenee verkossa, kunnes viimeinen aikakausi, jossa “kontekstivektori” luodaan. Kontekstivektori välitetään dekoodausverkolle, jota käytetään luomaan kohdesanajono ennustamalla todennäköisin sana, joka parittaa syötteen sanan kunkin aikakauden osalta.

Nämä mallit voidaan täydentää “huomio-mekanismin” avulla. Huomio-mekanismi määrittää, mitkä osat syötteen vektoria verkko pitäisi keskittyä luomaan oikean tuloksen. Toisin sanoen huomio-mekanismi antaa transformer-mallille prosessoida yhtä syötteen sanaa ja samalla huomioida muiden syötteen sanojen merkityksellistä tietoa. Huomio-mekanismit myös peittävät sanat, jotka eivät sisällä merkityksellistä tietoa.

Transformer-Neuroverkon Arkkitehtuuri

Tarkastellaan huomio-mekanismia tarkemmin myöhemmin, mutta nyt katsotaan transformer-neuroverkon arkkitehtuuri yleisellä tasolla.

Yleisesti ottaen transformer-neuroverkko näyttää jotain seuraavaa:

Vaikka tämä yleinen rakenne voi muuttua verkkojen välillä, ydinpalat säilyvät samoina: positioluvut, sanavektorit, huomio-mekanismi, eteenpäin suuntautuva neuroverkko.

Positioluvut ja Sanavektorit

Transformer-neuroverkko toimii ottamalla syötteen järjestelmän ja muuttamalla ne kahteen muuhun järjestelmään. Transformer tuottaa sanavektori-upotusten ja positioluvuisten järjestelmien.

Sanavektori-upotukset ovat vain teksti, joka on esitetty numeromuodossa, jota neuroverkko voi prosessoida. Sen sijaan positioluvut ovat vektoreiden edustukset, jotka sisältävät tietoa sanan sijainnista syötteen lauseessa suhteessa muihin sanoihin.

Muiden tekstipohjaisten neuroverkkomallien, kuten RNN- ja LSTM-mallien, käyttävät vektoreita sanojen edustamiseen syötteen datassa. Nämä vektori-upotukset kartoittavat sanat vakioarvoihin, mutta tämä on rajoittavaa, koska sanat voidaan käyttää eri konteksteissa. Transformer-verkko ratkaisee tämän ongelman tekemällä sanan arvot joustavammaksi käyttämällä sinusoidifunktioita, jotta sanavektorit voivat ottaa eri arvoja sanan sijainnin mukaan lauseessa.

Tämä mahdollistaa neuroverkon säilyttää tietoa syötteen sanojen suhteellisesta sijainnista, jopa kun vektorit siirtyvät transformer-verkon kerroksien läpi.

Positioluvut ja sanavektori-upotukset lasketaan yhteen ja välitetään sekä koodaus- ja dekoodausverkkoihin. Vaikka transformer-neuroverkkomallit käyttävät koodaus/dekoodaus-skeemoja samoin kuin RNN- ja LSTM-mallit, yksi suuri ero heidän välillä on, että kaikki syötteen data syötetään verkkoon samaan aikaan, kun taas RNN- ja LSTM-malleissa data syötetään järjestelmällisesti.

Koodausverkot ovat vastuussa muuttamasta syötteistä edustuksiksi, joita verkko voi oppia. Dekoodausverkot tekevät vastakkaisen ja muuttavat koodaukset todennäköisyysjakaumaksi, jota käytetään luomaan todennäköisimpiä sanoja tulosteessa. Olennaisesti sekä koodaus- ja dekoodausverkoissa on huomio-mekanismi.

Koska GPU:t pystyvät rinnakkaisprosessointiin, useita huomio-mekanismeja käytetään rinnakkain, laskemalla merkityksellistä tietoa kaikista syötteen sanoista. Tämä kyky keskittyä useisiin sanoihin, kutsutaan “monipäiseksi” huomioksi, auttaa neuroverkkoa oppimaan sanan kontekstia lauseessa, ja se on yksi transformer-verkkojen etuoikeuksista RNN- ja LSTM-malleihin verrattuna.

Huomio-mekanismi

Huomio-mekanismi on tärkein osa transformer-verkkoa. Huomio-mekanismi on se, mikä mahdollistaa transformer-malleille menemään traditional RNN- ja LSTM-mallien huomio-rajan yli. Perinteiset järjestelmä-järjestelmä-mallit hylkäävät kaikki välimuodot ja käyttävät vain lopullista tilaa/kontekstivektoria dekoodausverkon aloittamiseen tulosten ennustamiseksi syötteen järjestelmästä.

Hylkääminen kaikkea muuta kuin lopullista kontekstivektoria toimii kohtuullisesti, kun syötteen järjestelmät ovat melko pieniä. Kuitenkin kun syötteen järjestelmän pituus kasvaa, mallin suorituskyky heikkenee tämän menetelmän avulla. Tämä johtuu siitä, että on hyvin vaikea tiivistää pitkä syötteen järjestelmä yhteen vektoriin. Ratkaisu on lisätä “huomiota” malliin ja käyttää välimuodollisia koodaus-tiloja dekoodausverkon aloittamiseen kontekstivektoreiden muodostamiseksi.

Huomio-mekanismi määrittää, miten tärkeitä muut syötteen symbolit ovat mallille, kun koodaukset luodaan kullekin symbolille. Esimerkiksi “se” on yleinen pronominisana, jota usein käytetään eläimiin, kun niiden sukupuolta ei tiedetä. Huomio-mekanismi antaisi transformer-mallille mahdollisuuden määrittää, että kyseessä on esimerkiksi orava, koska se voi tarkastella kaikkia merkityksellisiä sanoja syötteen lauseessa.

Huomio-mekanismi voidaan käyttää kolmella eri tavalla: koodaus-dekoodaus, koodaus-vain, dekoodaus-vain.

Koodaus-dekoodaus huomio antaa dekoodausmahdollisuuden tarkastella syötteen järjestelmiä tulosteen luomiseksi, kun taas koodaus-vain ja dekoodaus-vain huomio-mekanismit antavat verkoille tarkastella kaikkia osia edellisistä ja nykyisistä järjestelmistä.

Huomio-mekanismin rakentaminen voidaan jakaa viiteen vaiheeseen:

  1. Laskemalla kaikkien koodaus-tilojen pisteytys.
  2. Laskemalla huomio-painot
  3. Laskemalla kontekstivektoreita
  4. Päivittämällä kontekstivektoria edellisen aikakauden tulosteen kanssa
  5. Luo tuloste dekoodauskäyttöliittymällä

Ensimmäinen vaihe on dekoodausmahdollisuuden laskeminen kaikille koodaus-tiloille. Tämä tehdään kouluttamalla dekoodausverkkoa, joka on perustein eteenpäin suuntautuva neuroverkko. Kun dekoodausverkko on koulutettu ensimmäiseen sanaan syötteen järjestelmässä, ei ole vielä luotu sisäistä/piilotilaa, joten koodausverkon viimeinen tila käytetään yleensä dekoodausverkon edellisenä tilana.

Jotta huomio-painot voidaan laskea, softmax-funktiota käytetään luomaan todennäköisyysjakauma huomio-painoille.

Kun huomio-painot on laskettu, kontekstivektori on laskettava. Tämä tehdään kertomalla huomio-painot ja piilotila yhteen jokaisessa aikakaudessa.

Kun kontekstivektori on laskettu, se käytetään yhdessä edellisen aikakauden tulosteen kanssa luomaan seuraava sana tulosteessa. Koska dekoodausverkolla ei ole edellistä tulostetta, jota se voisi viitata ensimmäisessä aikakaudessa, erityinen “aloitus”-sana käytetään usein sen sijaan.

Eroavaisuudet Transformers ja RNNs/LSTMs välillä

Käydään läpi joitakin eroavaisuuksia RNN- ja LSTM-mallien välillä.

RNN:t prosessoida syötteen järjestelmällisesti, kun taas piilotila pidetään ja muutetaan syötteen sanojen mukaan, kun ne siirtyvät verkossa. RNN:n piilotilat sisältävät yleensä vain vähän merkityksellistä tietoa aiemmista syötteistä. Uudet syötteet yleensä ylikirjoittavat nykyisen tilan, mikä aiheuttaa tietohävikin ja heikentää suorituskykyä ajan myötä.

Toisin sanoen, transformer-mallit prosessoida koko syötteen järjestelmän kerran. Huomio-mekanismi antaa jokaisen tulosteen sanan olla perustana jokaisesta syötteen sanasta ja piilotilasta, mikä tekee verkon luotettavammaksi pitkille teksteille.

LSTM on muunnelma RNN:stä, joka on muokattu käsittelemään pidempiä syötteen järjestelmiä. LSTM-arkkitehtuuri käyttää rakennetta, jota kutsutaan “porteiksi”, joissa on “syötteen portit”, “tulosteen portit” ja “unohdusportit”. Porteiden suunnittelu käsittelee tietohävikin, joka on yleinen RNN-malleissa. Data prosessoidaan edelleen järjestelmällisesti, ja arkkitehtuurin toistuva suunnittelu tekee LSTM-mallien kouluttamisesta vaikeaa rinnakkaislaskennan avulla, mikä tekee koulutusajan pitemmäksi yleensä.

LSTM-insinöörit lisäsivät usein huomio-mekanismin verkkoon, mikä paransi mallin suorituskykyä. Kuitenkin huomio-mekanismin itsessään havaittiin parantavan tarkin. Tämä löytö johti transformer-verkkojen luomiseen, jotka käyttivät huomio-mekanismeja ja rinnakkaislaskentaa GPU:n avulla.

Blogger ja ohjelmoija, jolla on erityisalat Machine Learning ja Deep Learning -aiheissa. Daniel toivoo pystyvänsä auttamaan muita käyttämään tekoälyn voimaa sosiaaliseen hyvään.