Umelá inteligencia
Veľké jazykové modely založené na dekodéroch: Kompletný sprievodca
Veľké jazykové modely (LLM) spôsobili revolúciu v oblasti spracovania prirodzeného jazyka (NLP) tým, že preukázali pozoruhodné schopnosti pri vytváraní ľudského textu, odpovedaní na otázky a pomoci pri širokej škále úloh súvisiacich s jazykom. Jadrom týchto výkonných modelov je architektúra transformátora len s dekodérom, variant pôvodnej architektúry transformátora navrhovaný v seminárnej práci “Všetko, čo potrebujete, je pozornosťVaswani a kol.
V tejto komplexnej príručke preskúmame vnútorné fungovanie LLM založených na dekodéroch, ponoríme sa do základných stavebných blokov, architektonických inovácií a implementačných detailov, ktoré posunuli tieto modely do popredia výskumu a aplikácií NLP.
The Transformer Architecture: Osviežovač
Pred ponorením sa do špecifík LLM založených na dekodéroch je nevyhnutné prehodnotiť architektúru transformátora, základ, na ktorom sú tieto modely postavené. Transformátor zaviedol nový prístup k sekvenčnému modelovaniu, ktorý sa spolieha výlučne na mechanizmy pozornosti na zachytenie závislostí na veľké vzdialenosti v údajoch bez potreby opakujúcich sa alebo konvolučných vrstiev.
Pôvodná architektúra transformátora pozostáva z dvoch hlavných komponentov: kodéra a dekodéra. Kodér spracováva vstupnú sekvenciu a generuje kontextovú reprezentáciu, ktorú potom spotrebováva dekodér na vytvorenie výstupnej sekvencie. Táto architektúra bola pôvodne navrhnutá pre úlohy strojového prekladu, kde kodér spracováva vstupnú vetu v zdrojovom jazyku a dekodér generuje zodpovedajúcu vetu v cieľovom jazyku.
Sebapozornosť: Kľúč k úspechu Transformera
V srdci transformátor spočíva mechanizmus vlastnej pozornosti, výkonná technika, ktorá umožňuje modelu vážiť a agregovať informácie z rôznych pozícií vo vstupnej sekvencii. Na rozdiel od tradičných sekvenčných modelov, ktoré spracovávajú vstupné tokeny sekvenčne, sebapozornosť umožňuje modelu zachytiť závislosti medzi ľubovoľným párom tokenov bez ohľadu na ich pozíciu v sekvencii.
Operáciu samoupozornenia možno rozdeliť do troch hlavných krokov:
- Projekcie dopytov, kľúčov a hodnôt: Vstupná sekvencia sa premieta do troch samostatných zobrazení: otázky (Q), kľúče (K) a hodnoty (V). Tieto projekcie sa získajú vynásobením vstupu naučenými váhovými maticami.
- Výpočet skóre pozornosti: Pre každú pozíciu vo vstupnej sekvencii sa skóre pozornosti vypočíta tak, že sa zoberie bodový súčin medzi zodpovedajúci vektor dopytu a všetky kľúčové vektory. Tieto skóre predstavujú relevantnosť každej pozície vzhľadom na aktuálnu spracovávanú pozíciu.
- Vážený súčet hodnôt: Skóre pozornosti sa normalizujú pomocou funkcie softmax a výsledné váhy pozornosti sa používajú na výpočet váženého súčtu vektorov hodnôt, čím sa vytvorí výstupná reprezentácia pre aktuálnu pozíciu.
Pozornosť viacerých hláv, variant mechanizmu sebapozorovania, umožňuje modelu zachytiť rôzne typy vzťahov výpočtom skóre pozornosti naprieč viacerými „hlava“ paralelne, každý s vlastnou sadou projekcií dopytov, kľúčov a hodnôt.
Architektonické varianty a konfigurácie
Zatiaľ čo základné princípy LLM založených na dekodéroch zostávajú konzistentné, výskumníci preskúmali rôzne architektonické varianty a konfigurácie na zlepšenie výkonu, efektívnosti a možností zovšeobecnenia. V tejto časti sa ponoríme do rôznych architektonických možností a ich dôsledkov.
Typy architektúry
LLM založené na dekodéroch možno vo všeobecnosti rozdeliť do troch hlavných typov: kodér-dekodér, kauzálny dekodér a dekodér prefixov. Každý typ architektúry vykazuje odlišné vzorce pozornosti.
Architektúra kódovač-dekodér
Na základe modelu vanilla Transformer sa architektúra kódovača a dekodéra skladá z dvoch vrstiev: kódovača a dekodéra. Kódovač používa na seba naskladané viachlavové samopozorné vrstvy na kódovanie vstupnej sekvencie a generovanie latentných zobrazení. Dekodér potom vykoná krížovú pozornosť na tieto reprezentácie, aby vygeneroval cieľovú sekvenciu. Zatiaľ čo sú účinné pri rôznych úlohách NLP, máloktoré LLM, ako napr Flan-T5, prijať túto architektúru.
Architektúra kauzálneho dekodéra
Kauzálna architektúra dekodéra zahŕňa jednosmernú masku pozornosti, ktorá umožňuje každému vstupnému tokenu venovať sa iba minulým tokenom a sebe. Vstupné aj výstupné tokeny sa spracúvajú v rámci toho istého dekodéra. Pozoruhodné modely ako GPT-1, GPT-2 a GPT-3 sú postavené na tejto architektúre, pričom GPT-3 predstavuje pozoruhodné možnosti učenia sa v kontexte. Mnoho LLM, vrátane OPT, BLOOM a Gopher, široko prijalo kauzálne dekodéry.
Architektúra dekodéra prefixov
Architektúra prefixového dekodéra, ktorá je tiež známa ako nekauzálny dekodér, upravuje mechanizmus maskovania kauzálnych dekodérov, aby umožnila obojsmernú pozornosť na predponové tokeny a jednosmernú pozornosť na generované tokeny. Podobne ako architektúra kódovač-dekodér môžu dekodéry prefixov kódovať sekvenciu prefixov obojsmerne a predpovedať výstupné symboly autoregresívne pomocou zdieľaných parametrov. LLM založené na dekodéroch prefixov zahŕňajú GLM130B a U-PaLM.
Všetky tri typy architektúry je možné rozšíriť pomocou zmes odborníkov (MŽP) škálovacia technika, ktorá riedko aktivuje podmnožinu váh neurónovej siete pre každý vstup. Tento prístup bol použitý v modeloch ako Switch Transformer a GLaM, so zvyšujúcim sa počtom expertov alebo celkovou veľkosťou parametrov vykazujúcich výrazné zlepšenie výkonu.
Transformátor len s dekodérom: Prijatie autoregresívnej povahy
Zatiaľ čo pôvodná architektúra transformátora bola navrhnutá pre úlohy zo sekvencie na sekvenciu, ako je strojový preklad, mnohé úlohy NLP, ako je jazykové modelovanie a generovanie textu, môžu byť rámcované ako autoregresívne problémy, kde model generuje jeden token naraz, podmienený predtým vygenerované tokeny.
Zadajte transformátor iba pre dekodér, zjednodušený variant architektúry transformátora, ktorý zachováva iba komponent dekodéra. Táto architektúra je obzvlášť vhodná pre autoregresívne úlohy, pretože generuje výstupné tokeny jeden po druhom, pričom využíva predtým vygenerované tokeny ako vstupný kontext.
Kľúčový rozdiel medzi iba dekodérovým transformátorom a pôvodným transformátorovým dekodérom spočíva v samoobslužnom mechanizme. V nastavení len pre dekodér je operácia samoupozornenia upravená tak, aby zabránila modelu venovať sa budúcim tokenom, čo je vlastnosť známa ako kauzalita. Dosahuje sa to technikou nazývanou „maskovaná sebapozornosť“, kde sú skóre pozornosti zodpovedajúce budúcim pozíciám nastavené na záporné nekonečno, čím sa účinne maskujú počas kroku normalizácie softmax.
Architektonické komponenty LLM založených na dekodéroch
Zatiaľ čo základné princípy sebapozorovania a maskovanej sebapozornosti zostávajú rovnaké, moderné LLM založené na dekodéroch zaviedli niekoľko architektonických inovácií na zlepšenie výkonu, efektívnosti a možností zovšeobecnenia. Poďme preskúmať niektoré kľúčové komponenty a techniky používané v najmodernejších LLM.
Vstupné zastúpenie
Pred spracovaním vstupnej sekvencie využívajú LLM založené na dekodéroch techniky tokenizácie a vkladania na konverziu nespracovaného textu na číselnú reprezentáciu vhodnú pre model.
tokenizácia: Proces tokenizácie konvertuje vstupný text na sekvenciu tokenov, ktorými môžu byť slová, podslová alebo dokonca jednotlivé znaky, v závislosti od použitej stratégie tokenizácie. Populárne techniky tokenizácie pre LLM zahŕňajú Byte-Pair Encoding (BPE), SentencePiece a WordPiece. Cieľom týchto metód je dosiahnuť rovnováhu medzi veľkosťou slovnej zásoby a zrnitosťou reprezentácie, čo umožňuje modelu efektívne zaobchádzať so zriedkavými alebo mimo slovnú zásobu.
Vloženie tokenov: Po priradení tokenov sa každý token namapuje na hustú vektorovú reprezentáciu nazývanú vloženie tokenu. Tieto vloženia sa naučia počas tréningového procesu a zachytávajú sémantické a syntaktické vzťahy medzi tokenmi.
Polohové vloženia: Transformátorové modely spracovávajú celú vstupnú sekvenciu súčasne, pričom im chýba prirodzená predstava o pozíciách tokenov prítomná v opakujúcich sa modeloch. Na začlenenie informácií o polohe sa k vloženým prvkom tokenov pridávajú pozičné vloženia, čo umožňuje modelu rozlišovať medzi tokenmi na základe ich pozícií v sekvencii. Skoré LLM používali pevné polohové vloženia založené na sínusových funkciách, zatiaľ čo novšie modely skúmali naučiteľné pozičné vloženia alebo alternatívne techniky pozičného kódovania, ako je rotačné pozičné vloženie.
Viachlavové bloky pozornosti
Základnými stavebnými blokmi LLM založených na dekodéroch sú vrstvy pozornosti s viacerými hlavami, ktoré vykonávajú operáciu maskovanej samopozornosti opísanú vyššie. Tieto vrstvy sú naskladané viackrát, pričom každá vrstva sa stará o výstup predchádzajúcej vrstvy, čo umožňuje modelu zachytiť čoraz zložitejšie závislosti a reprezentácie.
Hlavy pozornosti: Každá vrstva pozornosti s viacerými hlavami pozostáva z viacerých „hlavov pozornosti“, pričom každá má vlastnú sadu dopytov, kľúčov a projekcií hodnôt. To umožňuje modelu venovať sa rôznym aspektom vstupu súčasne a zachytávať rôzne vzťahy a vzory.
Zvyškové pripojenia a normalizácia vrstiev: Na uľahčenie trénovania hlbokých sietí a zmiernenie problému miznúceho gradientu využívajú LLM založené na dekodéroch zvyškové spojenia a techniky normalizácie vrstiev. Zvyškové spojenia pridávajú vstup vrstvy k jej výstupu, čo umožňuje ľahší tok gradientov počas spätného šírenia. Normalizácia vrstiev pomáha stabilizovať aktivácie a gradienty, čím ďalej zlepšuje stabilitu a výkon tréningu.
Dopredné vrstvy
Okrem vrstiev pozornosti s viacerými hlavami obsahujú LLM na báze dekodéra dopredné vrstvy, ktoré aplikujú jednoduchú doprednú neurónovú sieť na každú pozíciu v sekvencii. Tieto vrstvy zavádzajú nelinearity a umožňujú modelu naučiť sa zložitejšie reprezentácie.
Aktivačné funkcie: Voľba aktivačnej funkcie v dopredných vrstvách môže výrazne ovplyvniť výkon modelu. Zatiaľ čo predchádzajúce LLM sa spoliehali na široko používanú aktiváciu ReLU, novšie modely prijali sofistikovanejšie aktivačné funkcie, ako je Gaussian Error Linear Unit (GELU) alebo aktivácia SwiGLU, ktoré preukázali lepší výkon.
Mierna pozornosť a efektívne transformátory
Aj keď je mechanizmus samoupozornenia výkonný, prichádza s kvadratickou výpočtovou zložitosťou vzhľadom na dĺžku sekvencie, čo ho robí výpočtovo nákladným pre dlhé sekvencie. Na vyriešenie tohto problému bolo navrhnutých niekoľko techník na zníženie výpočtových a pamäťových požiadaviek na vlastnú pozornosť, čo umožňuje efektívne spracovanie dlhších sekvencií.
Riedka pozornosť: Techniky riedkej pozornosti, ako je tá, ktorá sa používa v modeli GPT-3, sa selektívne venujú podskupine pozícií vo vstupnej sekvencii, namiesto toho, aby počítali skóre pozornosti pre všetky pozície. To môže výrazne znížiť výpočtovú náročnosť pri zachovaní primeraného výkonu.
Posuvné okno Pozor: Zavedenie pozornosti posuvného okna (SWA) v modeli Mistral 7B je jednoduchá, ale účinná technika, ktorá obmedzuje rozsah pozornosti každého tokenu na pevnú veľkosť okna. Tento prístup využíva schopnosť vrstiev transformátora prenášať informácie cez viacero vrstiev, čím sa efektívne zvyšuje rozsah pozornosti bez kvadratickej zložitosti plnej sebapozorovania.
Rolling Buffer Cache: Na ďalšie zníženie požiadaviek na pamäť, najmä pre dlhé sekvencie, model Mistral 7B využíva rolovaciu vyrovnávaciu pamäť. Táto technika ukladá a opakovane používa vypočítané vektory kľúčov a hodnôt pre pevnú veľkosť okna, čím sa zabráni nadbytočným výpočtom a minimalizuje sa využitie pamäte.
Pozornosť na zoskupený dopyt: Zavedený v modeli LLaMA 2, skupinová pozornosť dotazov (GQA) je variant mechanizmu pozornosti s viacerými dotazmi, ktorý rozdeľuje hlavy pozornosti do skupín, pričom každá skupina zdieľa spoločný kľúč a maticu hodnôt. Tento prístup dosahuje rovnováhu medzi efektívnosťou pozornosti s viacerými dotazmi a výkonom štandardnej samopozornosti, pričom poskytuje vylepšené časy vyvodzovania pri zachovaní vysokokvalitných výsledkov.