AI-mallit ja alustat

NLP:n nousu transformer-malleilla | T5:n, BERT:n ja GPT:n kattava analyysi

mm
Lisää Unite.AI suosikkilähteisiisi Google-palvelussa

Luonnollisen kielen prosessointi (NLP) on kokenut merkittäviä läpimurtoja viime vuosina, ja transformer-arkkitehtuuri on ollut avainasemassa tässä kehityksessä. Nämä läpimurrot eivät vain parantaneet koneiden kykyä ymmärtää ja generoida ihmisen kieltä, vaan ne ovat myös muuttaneet useiden sovellusten maiseman, aina hakukoneista conversational AI:hin.

Jotta voisimme täysin arvostaa transformerien merkitystä, on syytä katsoa taaksepäin edeltäjiin ja perusrakenteisiin, jotka loivat pohjan tälle vallankumoukselliselle arkkitehtuurille.

Varhaiset NLP-tekniikat: Perustukset ennen transformatoreja

Sanaupotukset: One-Hotista Word2Veciin

Perinteisissä NLP-lähestymistapoissa sanojen edustus oli usein kirjaimellinen ja puuttui semanttista tai syntaktista ymmärrystä. One-hot-koodaus on tämän rajoituksen esimerkki.

One-hot-koodaus on prosessi, jossa kategoriset muuttujat muunnetaan binaariseen vektoriedustukseen, jossa vain yksi bitti on “kuuma” (asettuu 1) ja kaikki muut ovat “kylmiä” (asettuu 0). NLP:n kontekstissa jokainen sana sanastossa edustetaan one-hot-vektoreilla, joissa jokainen vektori on sanaston kokoinen, ja jokainen sana edustetaan vektorilla, jossa on kaikki nollat ja yksi ykkönen sanan mukaisessa indeksissä sanastossa.

Esimerkki one-hot-koodauksesta

Oletetaan, että meillä on pieni sanasto, jossa on vain viisi sanaa: [“king”, “queen”, “man”, “woman”, “child”]. One-hot-koodausvektorit kullekin sanalle näyttäisivät tältä:

  • “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]

Matemaattinen edustus

Jos merkitsemme sanaston koosta ja one-hot-vektori edustusta i:nnestä sanasta sanastossa, matemaattinen edustus olisi:

jossa i-positio on 1 ja kaikki muut positiot ovat 0.

One-hot-koodauksen suurin haitta on, että se kohdeltaa jokaisen sanan erillisenä yksikkönä, ilman mitään suhdetta muihin sanoihin. Se johtaa harvoihin ja korkean dimensionaalisuuksiin vektoreihin, jotka eivät sisällä mitään semanttista tai syntaktista tietoa sanoista.

Sanaupotusten, erityisesti Word2Vecin, esittely oli ratkaiseva hetki NLP:ssä. Word2Vec edustaa sanoja tiheässä vektoritilassa, joka sisältää syntaktisia ja semanttisia sana-suhdeita perustuen niiden kontekstiin suurissa tekstikorporeissa.

Toisin kuin one-hot-koodaus, Word2Vec tuottaa tiheitä vektoreita, tyypillisesti satoja ulottuvuuksia. Sanat, jotka esiintyvät samankaltaisissa konteksteissa, kuten “king” ja “queen”, ovat lähempänä toisiaan vektoritilassa.

Oletetaan, että meillä on koulutettu Word2Vec-malli ja edustamme sanoja hypoteettisessa 3-ulotteisessa tilassa (joka on yleensä useampiulotteinen, mutta on yksinkertaisuuden vuoksi 3D). Upotukset (joita on yleensä enemmän kuin 3D, mutta on yksinkertaisuuden vuoksi 3D) voivat näyttää tältä:

  • “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]

Nämä luvut ovat kuvitteellisia, mutta ne osoittavat, miten samankaltaiset sanat ovat lähempänä toisiaan.

Matemaattinen edustus

Jos edustamme Word2Vec-sanupotusta sanalla , ja upotusavaruudella on ulottuvuutta, niin voidaan edustaa seuraavasti:

Semanttiset suhteet

Word2Vec voi jopa havaita monimutkaisia suhteita, kuten analogioita. Esimerkiksi, Word2Vec-upotusten kuuluisa suhde on:

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

Tämä on mahdollista, koska Word2Vec säätää sana-vektoreita koulutuksen aikana siten, että sanat, jotka jakavat yhteisiä konteksteja korpuksessa, sijoittuvat lähelle toisiaan vektoritilassa.

Word2Vec käyttää kahta pääarkkitehtuuria tuottamaan jakautunut sanaedustus: Continuous Bag-of-Words (CBOW) ja Skip-Gram. CBOW ennustaa kohdesanan ympäröivien kontekstisanojen perusteella, kun taas Skip-Gram tekee päinvastaisen, ennustaa kontekstisanat kohdesanan perusteella. Tämä mahdollisti koneiden ymmärtää sana käytön ja merkityksen monimutkaisemmin.

Järjestelmien mallinnus: RNN:t ja LSTMit

Kun ala eteni, fokus siirtyi ymmärtämään tekstijonoja, mikä oli ratkaisevaa tehtäville kuten konekäännös, tekstien yhteenveto ja mielipidetutkimus. Toistuvat neuroverkkorakenteet (RNN) tulivat kulmakiveksi näille sovelluksille niiden kyvyn vuoksi käsitellä järjestelmällisiä tietoja ylläpitämällä tietynlaista muistia.

RNN:illä oli kuitenkin rajoituksia. Ne kamppailivat pitkän aikavälin riippuvuuksilla häviävän gradientin ongelman vuoksi, jossa tieto häviää pitkien jonojen yli, mikä tekee vaikeaksi oppia korrelaatioita etäisten tapahtumien välillä.

Lyhyen aikavälin muistiverkkorakenteet (LSTM), jotka esiteltiin Sepp Hochreiterin ja Jürgen Schmidhuberin toimesta vuonna 1997, ratkaisivat tämän ongelman monimutkaisemmalla arkkitehtuurilla. LSTMit sisältävät portteja, jotka ohjaavat tiedon virtausta: sisääntuloportti, unohdusportti ja ulostulopportti. Nämä portit määrittävät, mitä tietoa säilytetään, päivitetään tai hylätään, mikä mahdollistaa verkolle ylläpitää pitkän aikavälin riippuvuuksia ja parantaa merkittävästi suorituskykyä laajalla valikoimalla NLP-tehtäviä.

Transformer-arkkitehtuuri

NLP:n maisema koki dramaattisen muutoksen transformer-mallin esittelyssä “Attention is All You Need” -tutkimuksessa vuonna 2017. Transformer-arkkitehtuuri poikkeaa RNN:ien ja LSTMIen järjestelmällisestä prosessoinnista ja käyttää itsehuomio-mekanismia painottamaan eri osien merkitystä syötteessä.

Transformerin ydinajatus on, että se voi prosessoida koko syötteen kerran, ei järjestelmällisesti. Tämä mahdollistaa enemmän rinnakkaisuutta ja nopeuttaa merkittävästi koulutuksen nopeutta. Itsehuomio-mekanismi mahdollistaa mallille keskittyä eri osiin tekstiä prosessoidessaan, mikä on ratkaisevaa ymmärtääessä kontekstia ja sana-suhdeita, riippumatta sanan sijainnista tekstissä.

Encoder ja decoder transformatoreissa:

Alkuperäisessä Transformer-mallissa, kuten tutkimuksessa “Attention is All You Need” kuvaillaan, arkkitehtuuri on jaettu kahteen pääosaan: encoderiin ja decoderiin. Molemmat osat koostuvat kerroksista, joilla on sama yleinen rakenne, mutta eri tarkoitus.

Encoder:

  • Roole: Encoderin tehtävä on prosessoida syöte ja luoda edustus, joka sisältää suhteet elementtien välillä (kuten sanojen välillä lauseessa). Tämä osa transformatoreista ei tuota uutta sisältöä; se muuttaa syötteen tilaan, jota decoderi voi käyttää.
  • Toiminto: Jokaisella encoder-kerroksella on itsehuomio-mekanismit ja eteenpäin syötettävät neuroverkkorakenteet. Itsehuomio-mekanismi mahdollistaa jokaiselle sijainnille encoderissa keskittyä kaikkiin sijainteihin edellisessä kerroksessa — se oppii kontekstin ympärillä olevan sanan.
  • Kontekstuaaliset upotukset: Encoderin tuloste on joukko vektoreita, jotka edustavat syötejonoa korkeaulotteisessa tilassa. Nämä vektorit ovat usein kutsuttu kontekstuaalisiksi upotuksiksi, koska ne koodaavat ei vain yksittäisiä sanoja vaan myös niiden kontekstin lauseessa.

Decoder:

  • Roole: Decoderin tehtävä on tuottaa syöte dataa järjestelmällisesti, yksi osa kerrallaan, perustuen syötteen, jonka se saa encoderilta ja siihen, mitä se on jo tuottanut. Se on suunniteltu tehtäville kuten tekstintuottaminen, jossa järjestys on ratkaiseva.
  • Toiminto: Decoderi-kerroksilla on myös itsehuomio-mekanismit, mutta ne on maskattu estämään sijainteja keskittymästä myöhempiin sijainteihin. Tämä varmistaa, että ennuste tietystä sijainnista voi riippua vain tunnetuista tulosteista aiemmissa sijainneissa. Lisäksi decoderi-kerroksilla on toinen huomio-mekanismi, joka keskittyy encoderin tulosteen, integroiden kontekstin syötteestä generointiprosessiin.
  • Järjestelmällinen generointi: Tämä viittaa decoderin kykyyn tuottaa jono yhden osan kerrallaan, rakentamalla siihen, mitä se on jo tuottanut. Esimerkiksi tekstintuottamisessa decoderi ennustaa seuraavan sanan kontekstin perusteella, jonka encoder tarjoaa, ja sanajonon, jonka se on jo tuottanut.

Nämä alikerrokset sekä encoderissa että decodessa ovat ratkaisevia mallin kyvyssä käsitellä monimutkaisia NLP-tehtäviä. Monipääomaisen huomio-mekanismin ansiosta malli voi valikoivasti keskittyä eri osiin syötteessä, tarjoamalla rikkaan ymmärryksen kontekstista ja sana-suhteista, riippumatta sanan sijainnista tekstissä.

Transformer-pohjaiset mallit

Transformer-mallin alkuperäisen menestyksen jälkeen syntyi uusia malleja, joissa oli omat innovaationsa ja optimoinnit eri tehtäville:

BERT (Bidirectional Encoder Representations from Transformers): Google (GOOGL ) esitteli BERTin vuonna 2018, ja se vallankumouski NLP:n tapaa integroida kontekstuaalista tietoa kielen edustuksiin. Koulutettuna suurella tekstikorpuksella maskattuna kielen mallina ja seuraavan lauseen ennustamisena, BERT sai kiinni rikkaat bidirektionaaliset kontekstit ja saavutti huipputuloksia laajalla valikoimalla NLP-tehtäviä.

BERT

BERT

T5 (Teksti-teksti-transfomator): Google esitteli T5:n vuonna 2020, ja se uudelleenmääritteli kaikki NLP-tehtävät teksti-teksti-ongelmana, käyttäen yhtenäistä tekstipohjaista muotoa. Tämä lähestymistapa yksinkertaa mallin soveltamista moniin tehtäviin, kuten kääntämiseen, yhteenvedon tekemiseen ja kysymyksiin vastaamiseen.

T5-arkkitehtuuri

T5-arkkitehtuuri

GPT (Generatiivinen esikoulutettu transformer): OpenAI kehitti GPT-mallin, joka alkoi GPT-1:stä ja saavutti GPT-4:n vuoteen 2023 mennessä. Nämä mallit on koulutettu valvomattomasti suurilla määrillä tekstidataa ja hienosäädetty eri tehtävillä. Niiden kyky tuottaa koherenttia ja kontekstuaalisesti relevanttia tekstiä on tehnyt niistä erittäin vaikutusvaltaisia sekä akateemisissa että kaupallisissa sovelluksissa.

GPT

GPT-arkkitehtuuri

Tässä on tarkempi vertailu T5-, BERT- ja GPT-malleista eri ulottuvuuksissa:

1. Tokenisointi ja sanasto

  • BERT: Käyttää WordPiece-tokenisointia, sanastokoolle 30 000 tokenia.
  • GPT: Käyttää Byte-pareja koodausta, suurella sanastokoolle (esim. GPT-3:llä on 175 000 tokenin sanasto).
  • T5: Käyttää lausepaloja, joka kohdeltaa tekstiä raakanaa eikä vaadi ennalta jaettuja sanoja.

2. Esikoulutusobjektiivit

  • BERT: Maskattu kielen malli ja seuraavan lauseen ennustaminen.
  • GPT: Kausaalinen kielen malli, jossa jokainen token ennustaa seuraavan tokenin jonossa.
  • T5: Käyttää häikäisevää objektiivia, jossa satunnaiset tekstijaksot korvataan vartijatokenilla, ja malli oppii palauttamaan alkuperäisen tekstin.

3. Syöte-edustus

  • BERT: Tokeni-, segmentti- ja paikalliset upotukset yhdistetään edustamaan syötettä.
  • GPT: Tokeni- ja paikalliset upotukset yhdistetään (ei segmentti-upotuksia, koska se ei ole suunniteltu lauseparitehtäville).
  • T5: Vain tokeni-upotukset, joissa on lisäksi suhteelliset paikalliset koodaukset huomio-oppimisessa.

4. Huomio-mekanismi

  • BERT: Käyttää absoluuttisia paikallisia koodauksia ja sallii jokaisen tokenin keskittyä kaikkiin tokeneihin vasemmalle ja oikealle (bidirektionaalinen huomio).
  • GPT: Käyttää myös absoluuttisia paikallisia koodauksia, mutta rajoittaa huomion edeltäviin tokeneihin (yksisuuntainen huomio).
  • T5: Toteuttaa transformer-variantin, joka käyttää suhteellisia paikallisia vinkejä paikallisten upotuksien sijaan.

5. Mallin arkkitehtuuri

  • BERT: Vain encoder-arkkitehtuuri, useita transformer-kerroksia.
  • GPT: Vain decoderi-arkkitehtuuri, myös useita kerroksia, mutta suunniteltu generatiivisille tehtäville.
  • T5: Encoder-decoder-arkkitehtuuri, jossa sekä encoderi että decoderi koostuvat transformer-kerroksista.

6. Hienosäätölähestymistapa

  • BERT: Soveltaa lopullisia piilotettuja tiloja esikoulutetusta mallista alitehtäville, lisäten tarvittaessa lisäulostuskerroksia.
  • GPT: Lisää lineaarisen kerroksen transformerin päälle ja hienosäätelee alitehtävillä samalla kausaalisella kielen mallinnuksen objektiivilla.
  • T5: Muuttaa kaikki tehtävät teksti-teksti-muotoon, jossa malli hienosäädetään generoimaan kohdejono syötejonoa vastaan.

7. Koulutusdata ja asteikko

  • BERT: Koulutettu Kirjastokorpuksesta ja englanninkielisestä Wikipediasta.
  • GPT: GPT-2 ja GPT-3 on koulutettu monipuolisilla internetistä poimittuilla aineistoilla, GPT-3:lla on vielä laajempi korpus, Common Crawl.
  • T5: Koulutettu “Colossal Clean Crawled Corpus” -aineistolla, joka on suuri ja puhdas versio Common Crawlista.

8. Kontekstin ja bidirektionaalisuuden käsittely

  • BERT: Suunniteltu ymmärtämään konteksti molempiin suuntiin samanaikaisesti.
  • GPT: Koulutettu ymmärtämään konteksti eteenpäin (vasemmasta oikeaan).
  • T5: Pystyy mallintamaan bidirektionaalista kontekstia encoderissa ja yksisuuntaista decodessa, sovellettavissa jono-jono-tehtäviin.

9. Soveltuvuus alitehtäviin

  • BERT: Vaatii tehtävikohtaisia päällyskerroksia ja hienosäätöä kullekin alitehtävälle.
  • GPT: On generatiivinen luonteeltaan ja voidaan ohjata suorittamaan tehtäviä vähäisin muutoksin sen rakenteessa.
  • T5: Käsittelee jokaisen tehtävän “teksti-teksti”-ongelmana, mikä tekee siitä luonnostaan joustavan ja soveltuvan uusiin tehtäviin.

10. Selitys- ja tulkitsevuus

  • BERT: Bidirektionaalinen luonne tarjoaa rikkaat kontekstuaaliset upotukset, mutta se voi olla haastavampi tulkita.
  • GPT: Yksisuuntainen konteksti voi olla suorempaa seurata, mutta se puuttuu bidirektionaalisen kontekstin syvyydestä.
  • T5: Encoder-decoder-kehyksessä on selkeä prosessointijaksojen erottelu, mutta se voi olla monimutkainen analyysin vuoksi sen generatiivisesta luonteesta.

Transformerien vaikutus NLP:hen

Transformerit ovat vallankumouskineet NLP-alan mahdollistamalla mallien prosessoida jonoja rinnakkain, mikä on dramaattisesti lisännyt suurten neuroverkkojen koulutusnopeutta. Ne esittelivät itsehuomio-mekanismin, joka mahdollistaa mallien painottaa kunkin osan merkitystä syötteessä, riippumatta etäisyydestä jonossa. Tämä johti ennennäkemättömiin parannuksiin laajalla valikoimalla NLP-tehtävissä, mukaan lukien käännös, kysymys-vastaus ja tekstien yhteenvedot.

Tutkimus jatkuu rajojen työntämistä siinä, mitä transformer-pohjaiset mallit voivat saavuttaa. GPT-4 ja sen samanaikaiset ovat ei vain suurempia mittakaavassa vaan myös tehokkaampia ja kykenevämpiä arkkitehtuurin ja koulutusmenetelmien edistymisen ansiosta. Tekniikat, kuten vähäinen koulutus ja tehokkaampi siirtymällinen oppiminen, ovat tutkimuksen eturintamassa.

Kielen mallit, kuten ne, jotka perustuvat transformatoreihin, oppivat datasta, joka voi sisältää harhaa. Tutkijat ja käytännön soveltajat työskentelevät aktiivisesti tunnistamaan, ymmärtämään ja lieventämään näitä harhoja. Tekniikat ulottuvat koulutusaineistojen kuraamisesta jälkikoulutuksen sopeutuksiin tasa-arvon ja puolueettomuuden suhteen.

Olen viettänyt viimeiset viisi vuotta uppoutumalla kiinnostavaan koneoppimisen ja syvän oppimisen maailmaan. Minun intohimoni ja asiantuntemukseni ovat johtaneet minun osallistumiseen yli 50:een monipuoliseen ohjelmistosuunnitteluhankkeeseen, joissa on erityisesti painottunut AI/ML. Minun jatkuva uteliaisuuteni on myös ohjannut minun luontaisen kielen prosessoinnin pariin, jota haluan tutkia tarkemmin.