Artificiell intelligens
Avkodarbaserade stora språkmodeller: En komplett guide
Stora språkmodeller (LLMs) har revolutionerat området för naturlig språkbehandling (NLP) genom att visa anmärkningsvärda möjligheter att generera mänsklig text, svara på frågor och hjälpa till med ett brett utbud av språkrelaterade uppgifter. Kärnan i dessa kraftfulla modeller ligger transformatorarkitektur endast avkodare, en variant av den ursprungliga transformatorarkitekturen som föreslagits i tidningen "Uppmärksamhet är allt du behöver” av Vaswani et al.
I den här omfattande guiden kommer vi att utforska det inre arbetet hos avkodarbaserade LLM:er, gräva ner oss i de grundläggande byggstenarna, arkitektoniska innovationer och implementeringsdetaljer som har drivit dessa modeller till framkanten av NLP-forskning och -applikationer.
The Transformer Architecture: A Refresher
Innan du dyker in i detaljerna hos dekoderbaserade LLM:er är det viktigt att återvända till transformatorarkitekturen, grunden på vilken dessa modeller är byggda. Transformatorn introducerade ett nytt tillvägagångssätt för sekvensmodellering, som enbart förlitar sig på uppmärksamhetsmekanismer för att fånga långväga beroenden i data, utan behov av återkommande eller faltningslager.
Den ursprungliga transformatorarkitekturen består av två huvudkomponenter: en kodare och en avkodare. Kodaren bearbetar inmatningssekvensen och genererar en kontextualiserad representation, som sedan konsumeras av avkodaren för att producera utmatningssekvensen. Denna arkitektur designades ursprungligen för maskinöversättningsuppgifter, där kodaren bearbetar den inmatade meningen på källspråket och avkodaren genererar motsvarande mening på målspråket.
Självuppmärksamhet: Nyckeln till Transformers framgång
I hjärtat av transformator ligger självuppmärksamhetsmekanismen, en kraftfull teknik som gör att modellen kan väga och aggregera information från olika positioner i inmatningssekvensen. Till skillnad från traditionella sekvensmodeller, som behandlar inmatningstokens sekventiellt, gör självuppmärksamhet det möjligt för modellen att fånga beroenden mellan vilket par av token som helst, oavsett deras position i sekvensen.
Självuppmärksamhetsoperationen kan delas upp i tre huvudsteg:
- Fråge-, nyckel- och värdeprognoser: Inmatningssekvensen projiceras i tre separata representationer: sökfrågor (Q), nycklar (K), och värden (V). Dessa projektioner erhålls genom att multiplicera inmatningen med inlärda viktmatriser.
- Beräkning av uppmärksamhetspoäng: För varje position i inmatningssekvensen beräknas uppmärksamhetspoäng genom att ta punktprodukten mellan motsvarande frågevektor och alla nyckelvektorer. Dessa poäng representerar relevansen av varje position för den aktuella positionen som bearbetas.
- Vägd summa av värden: Uppmärksamhetspoängen normaliseras med hjälp av en softmax-funktion, och de resulterande uppmärksamhetsvikterna används för att beräkna en viktad summa av värdevektorerna, vilket ger utmatningsrepresentationen för den aktuella positionen.
Multi-head uppmärksamhet, en variant av självuppmärksamhetsmekanismen, tillåter modellen att fånga olika typer av relationer genom att beräkna uppmärksamhetspoäng över flera "huvuden” parallellt, var och en med sin egen uppsättning av fråge-, nyckel- och värdeprojektioner.
Arkitektoniska varianter och konfigurationer
Medan kärnprinciperna för dekoderbaserade LLM:er förblir konsekventa, har forskare utforskat olika arkitektoniska varianter och konfigurationer för att förbättra prestanda, effektivitet och generaliseringsförmåga. I det här avsnittet kommer vi att fördjupa oss i de olika arkitektoniska valen och deras konsekvenser.
Arkitekturtyper
Avkodarbaserade LLM:er kan brett klassificeras i tre huvudtyper: kodare-avkodare, kausal avkodare och prefixavkodare. Varje arkitekturtyp uppvisar distinkta uppmärksamhetsmönster.
Encoder-Decoder Architecture
Baserat på vanilla Transformer-modellen består kodar-avkodararkitekturen av två staplar: en kodare och en avkodare. Kodaren använder staplade självuppmärksamhetsskikt med flera huvuden för att koda inmatningssekvensen och generera latenta representationer. Avkodaren utför sedan korsuppmärksamhet på dessa representationer för att generera målsekvensen. Även om de är effektiva i olika NLP-uppgifter, är det få LLM:er, som t.ex Flan-T5, anta den här arkitekturen.
Causal Decoder Architecture
Den kausala avkodararkitekturen innehåller en enkelriktad uppmärksamhetsmask, vilket gör att varje inmatningstoken endast kan ta hänsyn till tidigare tokens och sig själv. Både ingångs- och utmatningstoken bearbetas i samma avkodare. Anmärkningsvärda modeller som GPT-1, GPT-2 och GPT-3 är byggda på denna arkitektur, med GPT-3 som visar upp anmärkningsvärda inlärningsmöjligheter i sammanhanget. Många LLMs, inklusive OPT, BLOOM och Gopher, har allmänt antagit kausala avkodare.
Prefix Decoder Architecture
Även känd som den icke-kausala avkodaren, modifierar prefixavkodararkitekturen maskeringsmekanismen för kausala avkodare för att möjliggöra dubbelriktad uppmärksamhet över prefixtokens och enkelriktad uppmärksamhet på genererade tokens. Precis som kodar-avkodararkitekturen kan prefixavkodare koda prefixsekvensen dubbelriktat och förutsäga utdatatokens autoregressivt med hjälp av delade parametrar. LLM:er baserade på prefixavkodare inkluderar GLM130B och U-PaLM.
Alla tre arkitekturtyperna kan utökas med hjälp av blandning av experter (MoE) skalningsteknik, som sparsamt aktiverar en delmängd av neurala nätverksvikter för varje ingång. Detta tillvägagångssätt har använts i modeller som Switch Transformer och GLaM, med ett ökat antal experter eller total parameterstorlek som visar betydande prestandaförbättringar.
Transformator med endast dekoder: Omfamna den autoregressiva naturen
Medan den ursprungliga transformatorarkitekturen designades för sekvens-till-sekvens-uppgifter som maskinöversättning, kan många NLP-uppgifter, såsom språkmodellering och textgenerering, ramas in som autoregressiva problem, där modellen genererar en token i taget, beroende på tidigare genererade tokens.
Ange transformatorn endast för avkodare, en förenklad variant av transformatorarkitekturen som bara behåller avkodarkomponenten. Den här arkitekturen är särskilt väl lämpad för autoregressiva uppgifter, eftersom den genererar utdatatoken en efter en, och utnyttjar de tidigare genererade tokens som indatakontext.
Den viktigaste skillnaden mellan transformatorn med endast avkodare och den ursprungliga transformatoravkodaren ligger i självuppmärksamhetsmekanismen. I inställningen endast för avkodare, modifieras självuppmärksamhetsoperationen för att förhindra att modellen tar hand om framtida tokens, en egenskap som kallas kausalitet. Detta uppnås genom en teknik som kallas "maskerad självuppmärksamhet", där uppmärksamhetspoäng som motsvarar framtida positioner sätts till negativ oändlighet, vilket effektivt maskerar dem under softmax-normaliseringssteget.
Arkitektoniska komponenter i dekoderbaserade LLM:er
Medan kärnprinciperna för självuppmärksamhet och maskerad självuppmärksamhet förblir desamma, har moderna dekoderbaserade LLM:er introducerat flera arkitektoniska innovationer för att förbättra prestanda, effektivitet och generaliseringsmöjligheter. Låt oss utforska några av nyckelkomponenterna och teknikerna som används i toppmoderna LLM:er.
Input representation
Innan inmatningssekvensen bearbetas använder avkodarbaserade LLM:er tokeniserings- och inbäddningstekniker för att konvertera den råa texten till en numerisk representation som är lämplig för modellen.
tokenization: Tokeniseringsprocessen omvandlar den inmatade texten till en sekvens av tokens, som kan vara ord, underord eller till och med enskilda tecken, beroende på vilken tokeniseringsstrategi som används. Populära tokeniseringstekniker för LLM inkluderar Byte-Pair Encoding (BPE), SentencePiece och WordPiece. Dessa metoder syftar till att hitta en balans mellan ordförrådsstorlek och representationsgranularitet, vilket gör att modellen kan hantera sällsynta ord eller ord utanför ordförrådet effektivt.
Tokeninbäddningar: Efter tokenisering mappas varje token till en tät vektorrepresentation som kallas en token-inbäddning. Dessa inbäddningar lärs in under träningsprocessen och fångar semantiska och syntaktiska relationer mellan tokens.
Positionella inbäddningar: Transformatormodeller bearbetar hela inmatningssekvensen samtidigt, utan den inneboende uppfattningen om tokenpositioner som finns i återkommande modeller. För att införliva positionsinformation läggs positionsinbäddningar till i tokeninbäddningarna, vilket gör att modellen kan skilja mellan tokens baserat på deras positioner i sekvensen. Tidiga LLM:er använde fasta positionsinbäddningar baserade på sinusformade funktioner, medan nyare modeller har utforskat inlärbara positionsinbäddningar eller alternativa positionskodningstekniker som roterande positionsinbäddningar.
Uppmärksamhetsblock med flera huvuden
De centrala byggstenarna i avkodarbaserade LLM:er är uppmärksamhetslager med flera huvuden, som utför den maskerade självuppmärksamhetsoperationen som beskrivits tidigare. Dessa lager staplas flera gånger, där varje lager tar hand om resultatet från det föregående lagret, vilket gör att modellen kan fånga allt mer komplexa beroenden och representationer.
Uppmärksamhetshuvud: Varje uppmärksamhetslager med flera huvuden består av flera "uppmärksamhetshuvuden", var och en med sin egen uppsättning av fråge-, nyckel- och värdeprojektioner. Detta gör att modellen kan ta hänsyn till olika aspekter av input samtidigt, och fånga olika relationer och mönster.
Resterande anslutningar och lagernormalisering: För att underlätta träningen av djupa nätverk och mildra problemet med försvinnande gradienter, använder avkodarbaserade LLM:er kvarvarande anslutningar och skiktnormaliseringstekniker. Resterande anslutningar lägger till ingången av ett lager till dess utdata, vilket gör att gradienter kan flyta lättare under backpropagation. Lagernormalisering hjälper till att stabilisera aktiveringarna och gradienterna, vilket ytterligare förbättrar träningens stabilitet och prestation.
Frammatningslager
Förutom multi-head uppmärksamhetslager, innehåller dekoderbaserade LLM:er frammatningslager, som applicerar ett enkelt frammatningsneuralt nätverk på varje position i sekvensen. Dessa lager introducerar icke-linjäriteter och gör det möjligt för modellen att lära sig mer komplexa representationer.
Aktiveringsfunktioner: Valet av aktiveringsfunktion i frammatningsskikten kan avsevärt påverka modellens prestanda. Medan tidigare LLM:er förlitade sig på den allmänt använda ReLU-aktiveringen, har nyare modeller antagit mer sofistikerade aktiveringsfunktioner som Gaussian Error Linear Unit (GELU) eller SwiGLU-aktiveringen, som har visat förbättrad prestanda.
Sparsam uppmärksamhet och effektiva transformatorer
Även om självuppmärksamhetsmekanismen är kraftfull, kommer den med en kvadratisk beräkningskomplexitet med avseende på sekvenslängden, vilket gör den beräkningsmässigt dyr för långa sekvenser. För att möta denna utmaning har flera tekniker föreslagits för att minska beräknings- och minneskraven för självuppmärksamhet, vilket möjliggör effektiv bearbetning av längre sekvenser.
Gles uppmärksamhet: Spara uppmärksamhetstekniker, som den som används i GPT-3-modellen, tar selektivt hänsyn till en undergrupp av positioner i inmatningssekvensen, snarare än att beräkna uppmärksamhetspoäng för alla positioner. Detta kan avsevärt minska beräkningskomplexiteten samtidigt som rimlig prestanda bibehålls.
Skjutfönster Uppmärksamhet: Introducerad i Mistral 7B-modellen, är skjutfönster uppmärksamhet (SWA) en enkel men effektiv teknik som begränsar uppmärksamhetsintervallet för varje token till en fast fönsterstorlek. Detta tillvägagångssätt utnyttjar transformatorskiktens förmåga att överföra information över flera lager, vilket effektivt ökar uppmärksamhetsspannet utan den kvadratiska komplexiteten av full självuppmärksamhet.
Rolling Buffer Cache: För att ytterligare minska minneskraven, särskilt för långa sekvenser, använder Mistral 7B-modellen en rullande buffertcache. Denna teknik lagrar och återanvänder de beräknade nyckel- och värdevektorerna för en fast fönsterstorlek, vilket undviker redundanta beräkningar och minimerar minnesanvändningen.
Uppmärksamhet på grupperad fråga: Introducerad i LLaMA 2-modellen, grouped query attention (GQA) är en variant av multi-query uppmärksamhetsmekanismen som delar upp uppmärksamhetshuvuden i grupper, där varje grupp delar en gemensam nyckel- och värdematris. Detta tillvägagångssätt uppnår en balans mellan effektiviteten av uppmärksamhet med flera frågor och prestanda för standard självuppmärksamhet, vilket ger förbättrade slutledningstider samtidigt som resultat av hög kvalitet bibehålls.