Tekoäly
Dekooderiin perustuvat suuret kielimallit: täydellinen opas
Suuret kielimallit (LLM) ovat mullistaneet luonnollisen kielen käsittelyn (NLP) alan osoittamalla merkittäviä kykyjä luoda ihmismäistä tekstiä, vastata kysymyksiin ja auttaa monissa kieleen liittyvissä tehtävissä. Näiden tehokkaiden mallien ytimessä on Vain dekooderin muuntajaarkkitehtuuri, muunnos alkuperäisestä muuntajaarkkitehtuurista, jota ehdotettiin peruspaperissa "Huomio on kaikki mitä tarvitset” kirjoittaneet Vaswani et ai.
Tässä kattavassa oppaassa tutkimme dekooderipohjaisten LLM-yritysten sisäistä toimintaa ja syvennymme peruselementteihin, arkkitehtonisiin innovaatioihin ja toteutusyksityiskohtiin, jotka ovat nostaneet nämä mallit NLP-tutkimuksen ja -sovellusten eturintamaan.
Transformer-arkkitehtuuri: Virkistys
Ennen kuin sukeltaa dekooderipohjaisten LLM:ien erityispiirteisiin, on välttämätöntä tarkastella uudelleen muuntajan arkkitehtuuria, perustaa, jolle nämä mallit on rakennettu. Muuntaja esitteli uudenlaisen lähestymistavan sekvenssimallinnukseen, joka luottaa yksinomaan huomiomekanismeihin datan pitkän kantaman riippuvuuksien kaappaamiseksi ilman toistuvia tai konvoluutiokerroksia.
Alkuperäinen muuntajan arkkitehtuuri koostuu kahdesta pääkomponentista: kooderista ja dekooderista. Kooderi prosessoi tulosekvenssin ja muodostaa kontekstuaalisen esityksen, jonka dekooderi sitten kuluttaa tuottaakseen lähtösekvenssin. Tämä arkkitehtuuri on alun perin suunniteltu konekäännöstehtäviin, joissa enkooderi käsittelee syöttölauseen lähdekielellä ja dekooderi generoi vastaavan lauseen kohdekielellä.
Itsehuomio: avain Transformerin menestykseen
Ytimessä muuntaja piilee itsetarkkailumekanismi, tehokas tekniikka, jonka avulla malli voi punnita ja koota tietoa eri kohdista syöttösekvenssissä. Toisin kuin perinteiset sekvenssimallit, jotka käsittelevät syöttötunnisteita peräkkäin, itsetarkkailu mahdollistaa sen, että malli voi kaapata riippuvuuksia minkä tahansa merkkiparin välillä riippumatta niiden sijainnista sekvenssissä.
Itsehuomiotoiminto voidaan jakaa kolmeen päävaiheeseen:
- Kysely-, avain- ja arvoennusteet: Syöttösekvenssi projisoidaan kolmeen eri esitykseen: kyselyt (Q), avaimet (K) ja arvot (V). Nämä projektiot saadaan kertomalla syöte opituilla painomatriiseilla.
- Huomiopisteiden laskeminen: Jokaiselle syöttösekvenssin kohdalle huomiopisteet lasketaan ottamalla pistetulo vastaavan kyselyvektorin ja kaikkien avainvektorien välillä. Nämä pisteet edustavat kunkin sijainnin relevanssia nykyiseen käsiteltävään sijaintiin.
- Painotettu arvojen summa: Huomiopisteet normalisoidaan softmax-funktiolla, ja tuloksena saatuja huomiopainotuksia käytetään arvovektoreiden painotetun summan laskemiseen, jolloin saadaan tulosesitys nykyisestä sijainnista.
Monen pään huomio, muunnelma itsehuomiomekanismista, mahdollistaa sen, että malli voi vangita erityyppisiä suhteita laskemalla huomiopisteet useista "päät” rinnakkain, jokaisella on omat kysely-, avain- ja arvoennusteet.
Arkkitehtoniset vaihtoehdot ja kokoonpanot
Vaikka dekooderipohjaisten LLM:ien perusperiaatteet pysyvät johdonmukaisina, tutkijat ovat tutkineet erilaisia arkkitehtonisia muunnelmia ja kokoonpanoja parantaakseen suorituskykyä, tehokkuutta ja yleistysominaisuuksia. Tässä osiossa perehdymme erilaisiin arkkitehtonisiin valintoihin ja niiden vaikutuksiin.
Arkkitehtuurityypit
Dekooderiin perustuvat LLM:t voidaan luokitella kolmeen päätyyppiin: kooderi-dekooderi, kausaalinen dekooderi ja etuliitedekooderi. Jokaisella arkkitehtuurityypillä on omat huomionsa.
Enkooderi-dekooderi-arkkitehtuuri
Vanilla Transformer -malliin perustuva enkooderi-dekooderi-arkkitehtuuri koostuu kahdesta pinosta: enkooderista ja dekooderista. Kooderi käyttää pinottuja monen pään itsetarkkailukerroksia syöttösekvenssin koodaamiseen ja piilevien esitysten luomiseen. Sitten dekooderi suorittaa ristiin huomion näille esityksille kohdesekvenssin muodostamiseksi. Vaikka ne ovat tehokkaita erilaisissa NLP-tehtävissä, harvat LLM:t, kuten Flan-T5, omaksu tämä arkkitehtuuri.
Kausaalinen dekooderarkkitehtuuri
Kausaalisen dekooderin arkkitehtuuri sisältää yksisuuntaisen huomiomaskin, joka sallii jokaisen syötetunnisteen huomioida vain menneitä tokeneita ja itseään. Sekä tulo- että lähtötunnisteet käsitellään samassa dekooderissa. Merkittäviä malleja mm GPT-1, GPT-2 ja GPT-3 on rakennettu tälle arkkitehtuurille, ja GPT-3 esittelee merkittäviä kontekstin sisäisiä oppimisominaisuuksia. Monet LLM:t, mukaan lukien OPT, BLOOM ja Gopher, ovat ottaneet laajalti käyttöön kausaaliset dekooderit.
Etuliitedekooderin arkkitehtuuri
Etuliitteen dekooderin arkkitehtuuri, joka tunnetaan myös ei-syy-dekooderina, muokkaa kausaalisen dekooderin peittomekanismia mahdollistaakseen kaksisuuntaisen huomion etuliitetunnisteiden yli ja yksisuuntaisen huomion luomisen yhteydessä. Kuten enkooderi-dekooderi-arkkitehtuuri, etuliitedekooderit voivat koodata etuliitesekvenssin kaksisuuntaisesti ja ennustaa lähtötunnisteita autoregressiivisesti käyttämällä jaettuja parametreja. Etuliitedekooderiin perustuvia LLM-laitteita ovat GLM130B ja U-PaLM.
Kaikkia kolmea arkkitehtuurityyppiä voidaan laajentaa käyttämällä asiantuntijoiden yhdistelmä (MO) skaalaustekniikka, joka harvoin aktivoi joukon hermoverkkojen painotuksia jokaiselle tulolle. Tätä lähestymistapaa on käytetty malleissa, kuten Switch Transformer ja GLaM, ja asiantuntijoiden lukumäärän tai parametrien kokonaiskoon lisääntyminen on osoittanut merkittäviä suorituskyvyn parannuksia.
Vain dekooderille tarkoitettu muuntaja: Autoregressiivinen luonto
Vaikka alkuperäinen muuntaja-arkkitehtuuri on suunniteltu sekvenssistä sekvenssiin -tehtäviin, kuten konekääntämiseen, monet NLP-tehtävät, kuten kielen mallinnus ja tekstin luominen, voidaan kehystää autoregressiivisiksi ongelmiksi, joissa malli luo yhden tunnuksen kerrallaan, ehdolla aiemmin luodut tunnukset.
Syötä vain dekooderille tarkoitettu muuntaja, yksinkertaistettu muunnos muuntajaarkkitehtuurista, joka säilyttää vain dekooderikomponentin. Tämä arkkitehtuuri soveltuu erityisen hyvin autoregressiivisiin tehtäviin, koska se luo lähtötunnisteita yksitellen hyödyntäen aiemmin luotuja tokeneita syöttökontekstina.
Keskeinen ero vain dekooderin muuntajan ja alkuperäisen muuntajadekooderin välillä on itsehuomiomekanismissa. Vain dekooderi -asetuksissa itsehuomiotoimintoa on muokattu estämään mallia huomioimasta tulevia tokeneita. Tämä ominaisuus tunnetaan kausaalisuutena. Tämä saavutetaan tekniikalla, jota kutsutaan "naamioituneeksi itsehuomioksi", jossa tulevia asentoja vastaavat huomiopisteet asetetaan negatiiviseen äärettömyyteen, mikä peittää ne tehokkaasti softmax-normalisointivaiheen aikana.
Dekooderipohjaisten LLM-yritysten arkkitehtoniset komponentit
Vaikka itsetarkkailun ja naamioituneen itsehuomiollisuuden ydinperiaatteet pysyvät samoina, nykyaikaiset dekooderiin perustuvat LLM:t ovat ottaneet käyttöön useita arkkitehtonisia innovaatioita parantaakseen suorituskykyä, tehokkuutta ja yleistysominaisuuksia. Tutustutaanpa joihinkin uusimpien LLM-yritysten keskeisiin komponentteihin ja tekniikoihin.
Tuloesitys
Ennen syöttösekvenssin käsittelyä dekooderipohjaiset LLM:t käyttävät tokenointi- ja upotustekniikoita muuntaakseen raakatekstin mallille sopivaksi numeeriseksi esitykseksi.
tokenization: Tokenointiprosessi muuntaa syötetyn tekstin merkkijonoksi, joka voi olla sanoja, alisia tai jopa yksittäisiä merkkejä käytetystä tunnuksenmuodostusstrategiasta riippuen. LLM:ien suosittuja tokenisointitekniikoita ovat tavuparikoodaus (BPE), SentencePiece ja WordPiece. Näillä menetelmillä pyritään löytämään tasapaino sanaston koon ja esityksen tarkkuuden välillä, jolloin malli pystyy käsittelemään harvinaisia tai sanaston ulkopuolisia sanoja tehokkaasti.
Tokenin upotukset: Tokenisoinnin jälkeen jokainen merkki kartoitetaan tiheään vektoriesitykseen, jota kutsutaan tokenin upotukseksi. Nämä upotukset opitaan harjoitusprosessin aikana ja ne kaappaavat semanttisia ja syntaktisia suhteita merkkien välillä.
Positiiviset upotukset: Muuntajamallit käsittelevät koko syöttösekvenssin samanaikaisesti, mutta niistä puuttuu toistuvissa malleissa esiintyvä tunnusmerkkien asema. Sijaintitiedon sisällyttämiseksi tunnuksen upotuksiin lisätään sijainti upotuksia, jolloin malli pystyy erottamaan tunnukset niiden sijainnin perusteella sekvenssissä. Varhaiset LLM:t käyttivät sinimuotoisiin funktioihin perustuvia kiinteitä paikannusupotuksia, kun taas uudemmat mallit ovat tutkineet opittavia paikannusupotuksia tai vaihtoehtoisia paikannuskoodaustekniikoita, kuten pyöriviä paikannusupotuksia.
Multi-Head Attention Blocks
Dekooderipohjaisten LLM:ien ydinrakennuspalikoita ovat monen pään huomiokerrokset, jotka suorittavat aiemmin kuvatun maskatun itsetarkkailutoiminnon. Nämä tasot pinotaan useita kertoja, ja jokainen kerros huolehtii edellisen kerroksen tuotosta, jolloin malli voi kaapata yhä monimutkaisempia riippuvuuksia ja esityksiä.
Huomionpäät: Jokainen usean pään huomiotaso koostuu useista "huomiopäästä", joista jokaisella on omat kysely-, avain- ja arvoennusteet. Tämä antaa mallille mahdollisuuden käsitellä syötteen eri puolia samanaikaisesti ja vangita erilaisia suhteita ja malleja.
Jäännösliitokset ja kerroksen normalisointi: Dekooderipohjaiset LLM:t käyttävät jäännösyhteyksiä ja kerrosten normalisointitekniikoita helpottaakseen syväverkkojen koulutusta ja lieventääkseen katoavaa gradienttiongelmaa. Jäljellä olevat yhteydet lisäävät kerroksen tulon sen tuottoon, mikä mahdollistaa gradientin virrata helpommin takaisin leviämisen aikana. Tason normalisointi auttaa vakauttamaan aktivaatioita ja gradientteja parantaen entisestään harjoituksen vakautta ja suorituskykyä.
Eteenpäin syötettävät kerrokset
Monen pään huomiotasojen lisäksi dekooderipohjaiset LLM:t sisältävät myötäkytkentäkerroksia, jotka soveltavat yksinkertaista myötäkytkentäistä hermoverkkoa sekvenssin jokaiseen kohtaan. Nämä tasot tuovat esiin epälineaarisuutta ja mahdollistavat mallin oppia monimutkaisempia esityksiä.
Aktivointitoiminnot: Aktivointitoiminnon valinta eteenpäinsyöttötasoissa voi vaikuttaa merkittävästi mallin suorituskykyyn. Kun aikaisemmat LLM:t luottivat laajalti käytettyyn ReLU-aktivointiin, uudemmissa malleissa on otettu käyttöön kehittyneempiä aktivointitoimintoja, kuten Gaussian Error Linear Unit (GELU) tai SwiGLU-aktivointi, jotka ovat osoittaneet parempaa suorituskykyä.
Harva huomio ja tehokkaat muuntajat
Vaikka itsehuomiomekanismi on tehokas, siinä on neliöllinen laskennallinen monimutkaisuus suhteessa sekvenssin pituuteen, mikä tekee siitä laskennallisesti kallista pitkille sarjoille. Tämän haasteen ratkaisemiseksi on ehdotettu useita tekniikoita, jotka vähentävät itsetuntemuksen laskenta- ja muistivaatimuksia, mikä mahdollistaa pidempien sekvenssien tehokkaan käsittelyn.
Vähäinen huomio: Harva huomiotekniikat, kuten GPT-3-mallissa käytetty, huomioivat valikoivasti syöttösekvenssin asemien osajoukkoa sen sijaan, että laskettaisiin huomiopisteitä kaikille asemille. Tämä voi vähentää merkittävästi laskennan monimutkaisuutta säilyttäen samalla kohtuullisen suorituskyvyn.
Liukuikkuna Huomio: Mistral 7B -mallissa esitelty liukuikkunan huomiointi (SWA) on yksinkertainen mutta tehokas tekniikka, joka rajoittaa kunkin tunnuksen tarkkaavaisuuden kiinteään ikkunan kokoon. Tämä lähestymistapa hyödyntää muuntajakerrosten kykyä välittää tietoa useiden kerrosten yli, mikä lisää tehokkaasti huomion kestoa ilman täyden itsehuomiollisuuden neliöllistä monimutkaisuutta.
Pyörivä puskurivälimuisti: Muistivaatimusten vähentämiseksi entisestään, erityisesti pitkien sekvenssien kohdalla, Mistral 7B -malli käyttää liikkuvaa puskurivälimuistia. Tämä tekniikka tallentaa ja käyttää uudelleen lasketut avain- ja arvovektorit kiinteää ikkunakokoa varten välttäen redundantteja laskelmia ja minimoiden muistin käytön.
Ryhmitetty kysely Huomio: LLaMA 2 -mallissa esitelty GQA on muunnelma usean kyselyn huomiomekanismista, joka jakaa huomiopäät ryhmiin, joista jokaisella on yhteinen avain- ja arvomatriisi. Tämä lähestymistapa löytää tasapainon usean kyselyn huomioimisen tehokkuuden ja tavallisen itsetarkkailun suorituskyvyn välillä, mikä tarjoaa paremmat päättelyajat säilyttäen samalla korkealaatuiset tulokset.