Modely a platformy AI
Dekodér-založené velké jazykové modely: Úplný průvodce
Velké jazykové modely (LLM) revolucionalizovaly oblast zpracování přirozeného jazyka (NLP) tím, že prokázaly pozoruhodné schopnosti v generování lidsky podobného textu, odpovědí na otázky a pomoci s širokým spektrem jazykově souvisejících úkolů. V jádru těchto mocných modelů leží dekodér-only transformátorová architektura, varianta původní transformátorové architektury navržené ve stěžejním článku “Pozornost je vše, co potřebujete” od Vaswaniho a kol.
V tomto komplexním průvodci prozkoumáme vnitřní fungování dekodér-založených LLM, zabýváme se základními stavebními kameny, architektonickými inovacemi a realizačními detaily, které tyto modely katapultovaly do popředí výzkumu a aplikací NLP.
Transformátorová architektura: Připomenutí
Než se ponoříme do specifik dekodér-založených LLM, je nezbytné připomenout si transformátorovou architekturu, na níž jsou tyto modely postaveny. Transformátor představil novou přístup k modelování sekvencí, spoléhající se výhradně na mechanismy pozornosti pro zachycení dlouhodobých závislostí v datech, bez potřeby rekurentních nebo konvolučních vrstev.
Původní transformátorová architektura se skládá ze dvou hlavních komponent: kodéru a dekodéru. Kodér zpracovává vstupní sekvenci a generuje kontextualizované reprezentace, které jsou pak spotřebovány dekodérem pro generování výstupní sekvence. Tato architektura byla původně navržena pro úkoly strojového překladu, kde kodér zpracovává vstupní větu v zdrojovém jazyce a dekodér generuje odpovídající větu v cílovém jazyce.
Sebe-pozornost: Klíč k úspěchu transformátoru
V srdci transformátoru leží mechanismus sebe-pozornosti, silná technika, která umožňuje modelu vážit a agregovat informace z různých pozic ve vstupní sekvenci. Na rozdíl od tradičních modelů sekvencí, které zpracovávají vstupní tokeny sekvenčně, sebe-pozornost umožňuje modelu zachytit závislosti mezi libovolnou dvojicí tokenů, bez ohledu na jejich pozici v sekvenci.
Operace sebe-pozornosti lze rozdělit do tří hlavních kroků:
- Projekce dotazu, klíče a hodnoty: Vstupní sekvence je projetována do tří samostatných reprezentací: dotazů (Q), klíčů (K) a hodnot (V). Tyto projekce jsou získány násobením vstupu s naučenými váhovými maticemi.
- Výpočet skóre pozornosti: Pro každou pozici ve vstupní sekvenci jsou vypočtena skóre pozornosti tak, že se bere skalární součin mezi odpovídajícím vektorem dotazu a všemi vektory klíčů. Tato skóre reprezentují relevanci každé pozice pro aktuální pozici, která je zpracovávána.
- Vážený součet hodnot: Skóre pozornosti jsou normalizovány pomocí softmax funkce a výsledné váhy pozornosti se používají pro výpočet váženého součtu vektorů hodnot, což produkuje výstupní reprezentaci pro aktuální pozici.
Multi-head pozornost, varianta mechanismu sebe-pozornosti, umožňuje modelu zachytit různé typy vztahů tím, že vypočítává skóre pozornosti napříč několika “hlavami” paralelně, každá s vlastními projekcemi dotazu, klíče a hodnoty.
Architektonické varianty a konfigurace
Zatímco základní principy dekodér-založených LLM zůstávají konzistentní, výzkumníci prozkoumali různé architektonické varianty a konfigurace pro zlepšení výkonu, efektivity a obecných schopností. V této sekci se ponoříme do různých architektonických voleb a jejich implikací.
Typy architektur
Dekodér-založené LLM lze rozdělit do tří hlavních typů: kodér-dekodér, kauzální dekodér a prefix dekodér. Každý typ architektury vykazuje odlišné vzorce pozornosti.
Kodér-dekodér architektura
Založená na vanilla transformátorovém modelu, kodér-dekodér architektura se skládá ze dvou zásobníků: kodéru a dekodéru. Kodér používá zásobník multi-head sebe-pozornostních vrstev pro kódování vstupní sekvence a generování latentních reprezentací. Dekodér pak provádí křížovou pozornost na těchto reprezentacích pro generování cílové sekvence. Zatímco efektivní v různých úkolech NLP, málo LLM, jako je Flan-T5,采用 tuto architekturu.
Kauzální dekodér architektura
Kauzální dekodér architektura inkorporuje unidirekční masku pozornosti, umožňující každému vstupnímu tokenу pozornost pouze na minulé tokeny a sám sebe. Vstupní i výstupní tokeny jsou zpracovávány uvnitř stejného dekodéru. Pozoruhodné modely, jako GPT-1, GPT-2 a GPT-3, jsou postaveny na této architektuře, s GPT-3 prokazujícím pozoruhodné schopnosti učení v kontextu. Mnoho LLM, včetně OPT, BLOOM a Gopher, široce采用 kauzální dekodéry.
Prefix dekodér architektura
Také známá jako ne-kauzální dekodér, prefix dekodér architektura modifikuje maskovací mechanismus kauzálních dekodérů pro umožnění bidirekční pozornosti nad prefix tokeny a unidirekční pozornosti nad generovanými tokeny. Stejně jako kodér-dekodér architektura, prefix dekodéry mohou kódovat prefix sekvenci bidirekčně a předpovídat výstupní tokeny autoregresivně pomocí sdílených parametrů. LLM založené na prefix dekodérech zahrnují GLM130B a U-PaLM.
Všechny tři typy architektur lze rozšířit pomocí mixture-of-experts (MoE) techniky škálování, která selektivně aktivuje podmnožinu neuronových síťových váh pro každý vstup. Tento přístup byl použit v modelech, jako je Switch Transformer a GLaM, s rostoucím počtem expertů nebo celkovými parametry prokazujících významné zlepšení výkonu.
Dekodér-only transformátor: Přijetí autoregresivní povahy
Zatímco původní transformátorová architektura byla navržena pro úkoly sekvenční-sekvenční, jako je strojový překlad, mnoho úkolů NLP, jako je modelování jazyka a generování textu, lze formulovat jako autoregresivní problémy, kde model generuje jeden token za čas, podmíněný dříve generovanými tokeny.
Vstoupí dekodér-only transformátor, zjednodušená varianta transformátorové architektury, která uchovává pouze dekodérskou komponentu. Tato architektura je zvláště vhodná pro autoregresivní úkoly, generuje výstupní tokeny jeden po druhém, využívající dříve generované tokeny jako vstupní kontext.
Klíčový rozdíl mezi dekodér-only transformátorem a původním transformátorovým dekodérem leží v mechanismu sebe-pozornosti. V dekodér-only nastavení je operace sebe-pozornosti modifikována pro zabránění modelu pozornosti budoucích tokenů, vlastnost známá jako kauzalita. To je dosaženo pomocí techniky nazvané “masked sebe-pozornost”, kde skóre pozornosti odpovídající budoucím pozicím jsou nastaveny na zápornou nekonečno, efektivně je maskují během softmax normalizace.
Architektonické komponenty dekodér-založených LLM
Zatímco základní principy sebe-pozornosti a maskované sebe-pozornosti zůstávají stejné, moderní dekodér-založené LLM zavedly několik architektonických inovací pro zlepšení výkonu, efektivity a obecných schopností. Prozkoumeme některé z klíčových komponent a technik používaných ve státních LLM.
Reprezentace vstupu
Před zpracováním vstupní sekvence dekodér-založené LLM používají tokenizaci a techniků vložení pro převod syrového textu na numerickou reprezentaci vhodnou pro model.
Tokenizace: Proces tokenizace převádí vstupní text na sekvenci tokenů, které mohou být slova, subwords nebo dokonce jednotlivé znaky, v závislosti na použité tokenizační strategii. Populární tokenizační techniky pro LLM zahrnují Byte-Pair Encoding (BPE), SentencePiece a WordPiece. Tyto metody se snaží najít rovnováhu mezi velikostí slovníku a jemností reprezentace, umožňující modelu zpracovat vzácná nebo neznámá slova efektivně.
Token vložení: Po tokenizaci je každý token mapován na hustou vektorovou reprezentaci nazývanou token vložení. Tato vložení jsou naučena během trénování a zachycují sémantické a syntaktické vztahy mezi tokeny.
Pozicionální vložení: Transformátorové modely zpracovávají celou vstupní sekvenci najednou, postrádají vnitřní pojem tokenové pozice přítomný v rekurentních modelech. Pro inkorporaci pozicionální informace jsou pozicionální vložení přidána k token vložení, umožňující modelu rozlišovat tokeny na základě jejich pozic v sekvenci. Rané LLM používaly pevná pozicionální vložení založená na sinusoidálních funkcích, zatímco novější modely prozkoumaly naučená pozicionální vložení nebo alternativní pozicionální kódovací techniky, jako je rotující pozicionální vložení.
Multi-head pozornostní bloky
Jádrové stavební bloky dekodér-založených LLM jsou multi-head pozornostní vrstvy, které provádějí maskovanou sebe-pozornostní operaci popsánu dříve. Tyto vrstvy jsou zásobeny multiplekrát, s každou vrstvou pozornosti k výstupu předchozí vrstvy, umožňující modelu zachytit stále komplexnější závislosti a reprezentace.
Pozornostní hlavy: Každá multi-head pozornostní vrstva se skládá z více “pozornostních hlav“, každá se svými vlastními projekcemi dotazu, klíče a hodnoty. To umožňuje modelu pozornosti k různým aspektům vstupní sekvence současně, zachycující rozmanité vztahy a vzory.
Residuální spojení a vrstvená normalizace: Pro usnadnění trénování hlubokých sítí a zmírnění problému mizícího gradientu dekodér-založené LLM používají residuální spojení a vrstvenou normalizační techniky. Residuální spojení přidávají vstup vrstvy k jejímu výstupu, umožňující gradientům теч více snadno během zpětného šíření. Vrstvená normalizace pomáhá stabilizovat aktivační funkce a gradienty, dále zlepšující stabilitu trénování a výkon.
Feed-forward vrstvy
Kromě multi-head pozornostních vrstev dekodér-založené LLM inkorporují feed-forward vrstvy, které aplikují jednoduchou feed-forward neuronovou síť na každou pozici v sekvenci. Tyto vrstvy zavádějí nelinearity a umožňují modelu naučit se komplexnější reprezentace.
Aktivační funkce: Volba aktivační funkce ve feed-forward vrstvách může mít významný dopad na výkon modelu. Zatímco rané LLM spoléhaly na široce používanou ReLU aktivační funkci, novější modely采用 více sofistikované aktivační funkce, jako je Gaussian Error Linear Unit (GELU) nebo SwiGLU aktivační funkce, které prokázaly zlepšený výkon.
Špatná pozornost a efektivní transformátory
Zatímco mechanismus sebe-pozornosti je silný, přichází s kvadratickou výpočetní složitostí ve vztahu k délce sekvence, což z něj činí výpočetně náročné pro dlouhé sekvence. Pro řešení této výzvy byly navrženy several techniky pro snížení výpočetní a paměťové náročnosti sebe-pozornosti, umožňující efektivní zpracování delších sekvencí.
Špatná pozornost: Techniky špatné pozornosti, jako je ta používaná v modelu GPT-3, selektivně pozornost k podmnožině pozic ve vstupní sekvenci, místo výpočtu skóre pozornosti pro všechny pozice. To může významně snížit výpočetní složitost, zatímco zachovává rozumný výkon.
Klouzavé okenní pozornost: Zavedená v modelu Mistral 7B, klouzavé okenní pozornost (SWA) je jednoduchá, ale efektivní technika, která omezí pozornostní rozsah každého tokenu na pevnou velikost okna. Tento přístup využívá schopnost transformátorových vrstev přenášet informace napříč několika vrstvami, efektivně zvyšuje pozornostní rozsah bez kvadratické složitosti plné sebe-pozornosti.
Rolling buffer cache: Pro další snížení paměťových požadavků, zejména pro dlouhé sekvence, model Mistral 7B používá rolling buffer cache. Tato technika ukládá a znovu využívá vypočtené klíčové a hodnotové vektory pro pevnou velikost okna, vyhýbající se redundantním výpočtům a minimalizující paměťové použití.
Seskupená dotazová pozornost: Zavedená v modelu LLaMA 2, seskupená dotazová pozornost (GQA) je varianta multi-dotazové pozornostní mechanismu, která rozděluje pozornostní hlavy do skupin, každá sdílejí společnou klíč a hodnotu matici. Tento přístup nachází rovnováhu mezi efektivitou multi-dotazové pozornosti a výkonem standardní sebe-pozornosti, poskytující zlepšené časy inference, zatímco zachovává vysoké kvalitní výsledky.
















