Umělá inteligence
Velké jazykové modely založené na dekodéru: Kompletní průvodce
Velké jazykové modely (LLMs) způsobily revoluci v oblasti zpracování přirozeného jazyka (NLP) tím, že prokázaly pozoruhodné schopnosti generovat lidský text, odpovídat na otázky a pomáhat se širokou škálou úloh souvisejících s jazykem. Jádrem těchto výkonných modelů je architektura transformátoru pouze pro dekodér, varianta původní architektury transformátoru navržená v seminární práci “Vše, co potřebujete, je pozornostVaswani et al.
V tomto komplexním průvodci prozkoumáme vnitřní fungování LLM založených na dekodérech, ponoříme se do základních stavebních bloků, architektonických inovací a implementačních detailů, které tyto modely posunuly do popředí výzkumu a aplikací NLP.
The Transformer Architecture: Osvěžovač
Než se ponoříme do specifik LLM založených na dekodérech, je nezbytné znovu se podívat na architekturu transformátoru, základ, na kterém jsou tyto modely postaveny. Transformátor zavedl nový přístup k sekvenčnímu modelování, který se spoléhá pouze na mechanismy pozornosti k zachycení závislostí na dlouhé vzdálenosti v datech, bez potřeby opakujících se nebo konvolučních vrstev.
Původní architektura transformátoru se skládá ze dvou hlavních součástí: kodéru a dekodéru. Kodér zpracovává vstupní sekvenci a generuje kontextualizovanou reprezentaci, která je poté spotřebována dekodérem k vytvoření výstupní sekvence. Tato architektura byla původně navržena pro úlohy strojového překladu, kde kodér zpracovává vstupní větu ve zdrojovém jazyce a dekodér generuje odpovídající větu v cílovém jazyce.
Sebepozornost: Klíč k úspěchu Transformeru
V centru města transformátor spočívá v mechanismu sebepozorování, výkonné technice, která umožňuje modelu vážit a agregovat informace z různých pozic ve vstupní sekvenci. Na rozdíl od tradičních sekvenčních modelů, které zpracovávají vstupní tokeny postupně, vlastní pozornost umožňuje modelu zachytit závislosti mezi libovolným párem tokenů bez ohledu na jejich pozici v sekvenci.
Operaci samopozornosti lze rozdělit do tří hlavních kroků:
- Projekce dotazů, klíčů a hodnot: Vstupní sekvence se promítne do tří samostatných reprezentací: dotazy (Q), klíče (K) a hodnoty (PROTI). Tyto projekce se získají vynásobením vstupu naučenými maticemi vah.
- Výpočet skóre pozornosti: Pro každou pozici ve vstupní sekvenci se vypočítá skóre pozornosti tak, že se vezme bodový součin mezi odpovídající vektor dotazu a všechny klíčové vektory. Tato skóre představují relevanci každé pozice k aktuálně zpracovávané pozici.
- Vážený součet hodnot: Skóre pozornosti jsou normalizovány pomocí funkce softmax a výsledné váhy pozornosti se používají k výpočtu váženého součtu hodnotových vektorů, čímž se získá výstupní reprezentace pro aktuální pozici.
Vícehlavá pozornost, varianta mechanismu sebepozornosti, umožňuje modelu zachytit různé typy vztahů pomocí výpočtu skóre pozornosti napříč několika „hlava“ paralelně, každý s vlastní sadou projekcí dotazů, klíčů a hodnot.
Architektonické varianty a konfigurace
Zatímco základní principy LLM založených na dekodérech zůstávají konzistentní, výzkumníci prozkoumali různé architektonické varianty a konfigurace, aby zlepšili výkon, efektivitu a možnosti zobecnění. V této části se ponoříme do různých architektonických možností a jejich důsledků.
Typy architektury
LLM založené na dekodéru lze obecně rozdělit do tří hlavních typů: kodér-dekodér, kauzální dekodér a dekodér prefixů. Každý typ architektury vykazuje odlišné vzorce pozornosti.
Architektura kodéru a dekodéru
Na základě modelu vanilla Transformer se architektura kodéru a dekodéru skládá ze dvou vrstev: kodéru a dekodéru. Kodér používá vrstvené vícehlavé samopozorné vrstvy ke kódování vstupní sekvence a generování latentních reprezentací. Dekodér pak provede křížovou pozornost na tyto reprezentace, aby vygeneroval cílovou sekvenci. I když je efektivní v různých úkolech NLP, jen málo LLM, jako např Flan-T5, přijmout tuto architekturu.
Architektura kauzálního dekodéru
Architektura kauzálního dekodéru zahrnuje jednosměrnou masku pozornosti, která umožňuje každému vstupnímu tokenu věnovat se pouze minulým tokenům a sobě samému. Vstupní i výstupní tokeny jsou zpracovávány ve stejném dekodéru. Pozoruhodné modely jako GPT-1, GPT-2 a GPT-3 jsou postaveny na této architektuře, přičemž GPT-3 předvádí pozoruhodné možnosti učení v kontextu. Mnoho LLM, včetně OPT, BLOOM a Gopher, široce přijalo kauzální dekodéry.
Architektura dekodéru prefixů
Architektura prefixového dekodéru, známá také jako nekauzální dekodér, upravuje maskovací mechanismus kauzálních dekodérů tak, aby umožňovala obousměrnou pozornost přes předponové tokeny a jednosměrnou pozornost na generované tokeny. Stejně jako architektura kodér-dekodér mohou dekodéry prefixů kódovat sekvenci prefixů obousměrně a předpovídat výstupní tokeny autoregresně pomocí sdílených parametrů. LLM založené na prefixových dekodérech zahrnují GLM130B a U-PaLM.
Všechny tři typy architektury lze rozšířit pomocí směs odborníků (MŽP) škálovací technika, která řídce aktivuje podmnožinu vah neuronové sítě pro každý vstup. Tento přístup byl použit v modelech, jako je Switch Transformer a GLaM, se zvyšujícím se počtem odborníků nebo celkovou velikostí parametrů, které vykazují významné zlepšení výkonu.
Transformátor pouze s dekodérem: Přijetí autoregresivní povahy
Zatímco původní architektura transformátoru byla navržena pro úlohy sekvencí po sekvencích, jako je strojový překlad, mnoho úloh NLP, jako je jazykové modelování a generování textu, lze zarámovat jako autoregresivní problémy, kdy model generuje vždy jeden token v závislosti na dříve vygenerované tokeny.
Zadejte transformátor pouze pro dekodér, zjednodušenou variantu architektury transformátoru, která zachovává pouze součást dekodéru. Tato architektura je zvláště vhodná pro autoregresivní úlohy, protože generuje výstupní tokeny jeden po druhém, přičemž využívá dříve vygenerované tokeny jako vstupní kontext.
Klíčový rozdíl mezi transformátorem určeným pouze pro dekodér a původním dekodérem transformátoru spočívá v mechanismu samopozornosti. V nastavení pouze pro dekodér je operace sebepozorování upravena tak, aby zabránila modelu obsluhovat budoucí tokeny, což je vlastnost známá jako kauzalita. Toho je dosaženo pomocí techniky zvané „maskovaná sebepozornost“, kde skóre pozornosti odpovídající budoucím pozicím je nastaveno na záporné nekonečno, čímž je účinně maskováno během kroku normalizace softmax.
Architektonické komponenty LLM založených na dekodéru
Zatímco základní principy sebepozorování a maskované sebepozorování zůstávají stejné, moderní LLM založené na dekodérech zavedly několik architektonických inovací ke zlepšení výkonu, efektivity a možností zobecnění. Pojďme prozkoumat některé klíčové komponenty a techniky používané v nejmodernějších LLM.
Vstupní reprezentace
Před zpracováním vstupní sekvence využívají LLM založené na dekodéru techniky tokenizace a vkládání, aby převedly nezpracovaný text na číselnou reprezentaci vhodnou pro model.
Tokenizace: Proces tokenizace převádí vstupní text na sekvenci tokenů, což mohou být slova, podslova nebo dokonce jednotlivé znaky, v závislosti na použité strategii tokenizace. Populární techniky tokenizace pro LLM zahrnují Byte-Pair Encoding (BPE), SentencePiece a WordPiece. Tyto metody mají za cíl dosáhnout rovnováhy mezi velikostí slovní zásoby a granularitou reprezentace, což modelu umožňuje efektivně zpracovávat vzácná slova nebo slova mimo slovní zásobu.
Vložení tokenů: Po tokenizaci je každý token namapován na hustou vektorovou reprezentaci nazývanou vložení tokenu. Tato vložení se učí během tréninkového procesu a zachycují sémantické a syntaktické vztahy mezi tokeny.
Polohové vložení: Transformátorové modely zpracovávají celou vstupní sekvenci současně, postrádají inherentní představu o pozicích tokenů přítomnou v rekurentních modelech. Aby bylo možné začlenit poziční informace, poziční vložení jsou přidána k vložení tokenů, což umožňuje modelu rozlišovat mezi tokeny na základě jejich pozic v sekvenci. Dřívější LLM používaly pevné polohové vnoření založené na sinusových funkcích, zatímco novější modely zkoumaly naučitelné polohové vnoření nebo alternativní techniky pozičního kódování, jako je rotační polohové vložení.
Vícehlavé bloky pozornosti
Základními stavebními bloky LLM založených na dekodérech jsou vícehlavé vrstvy pozornosti, které provádějí operaci maskované samopozornosti popsanou dříve. Tyto vrstvy jsou naskládány vícekrát, přičemž každá vrstva se stará o výstup předchozí vrstvy, což umožňuje modelu zachytit stále složitější závislosti a reprezentace.
Pozornost hlavy: Každá vrstva pozornosti s více hlavami se skládá z několika „hlaví pozornosti“, z nichž každá má vlastní sadu dotazů, klíčů a hodnotových projekcí. To umožňuje modelu věnovat se různým aspektům vstupu současně a zachytit různé vztahy a vzory.
Zbytková připojení a normalizace vrstev: Pro usnadnění trénování hlubokých sítí a zmírnění problému mizejícího gradientu využívají LLM na bázi dekodéru zbytková spojení a techniky normalizace vrstev. Zbytková připojení přidávají vstup vrstvy k jejímu výstupu, což umožňuje snazší tok gradientů během zpětného šíření. Normalizace vrstev pomáhá stabilizovat aktivace a gradienty, dále zlepšuje stabilitu tréninku a výkon.
Feed-Forward Layers
Kromě vrstev pozornosti s více hlavami obsahují LLM na bázi dekodéru dopředné vrstvy, které aplikují jednoduchou dopřednou neuronovou síť na každou pozici v sekvenci. Tyto vrstvy zavádějí nelinearity a umožňují modelu naučit se složitější reprezentace.
Aktivační funkce: Volba aktivační funkce v dopředných vrstvách může výrazně ovlivnit výkon modelu. Zatímco dřívější LLM se spoléhaly na široce používanou aktivaci ReLU, novější modely přijaly sofistikovanější aktivační funkce, jako je Gaussian Error Linear Unit (GELU) nebo aktivace SwiGLU, které prokázaly lepší výkon.
Řídká pozornost a účinné transformátory
Mechanismus sebepozorování je sice výkonný, ale přichází s kvadratickou výpočetní složitostí s ohledem na délku sekvence, takže je u dlouhých sekvencí výpočetně nákladný. K vyřešení tohoto problému bylo navrženo několik technik, které snižují výpočetní a paměťové požadavky na vlastní pozornost, což umožňuje efektivní zpracování delších sekvencí.
Řídká pozornost: Techniky řídké pozornosti, jako je ta používaná v modelu GPT-3, se selektivně věnují podmnožině pozic ve vstupní sekvenci, místo aby počítaly skóre pozornosti pro všechny pozice. To může výrazně snížit výpočetní náročnost při zachování přiměřeného výkonu.
Posuvné okno Pozor: Pozornost posuvného okna (SWA), představená v modelu Mistral 7B, je jednoduchá, ale účinná technika, která omezuje rozsah pozornosti každého tokenu na pevnou velikost okna. Tento přístup využívá schopnost vrstev transformátoru přenášet informace přes více vrstev, čímž se efektivně zvyšuje rozsah pozornosti bez kvadratické složitosti plné sebepozorování.
Rolling Buffer Cache: Pro další snížení požadavků na paměť, zejména u dlouhých sekvencí, model Mistral 7B využívá pohyblivou vyrovnávací paměť. Tato technika ukládá a znovu používá vypočítané vektory klíčů a hodnot pro pevnou velikost okna, čímž se vyhne nadbytečným výpočtům a minimalizuje se využití paměti.
Seskupený dotaz Pozor: Skupinová pozornost dotazů (GQA) představená v modelu LLaMA 2 je variantou mechanismu pozornosti s více dotazy, který rozděluje hlavy pozornosti do skupin, přičemž každá skupina sdílí společný klíč a matici hodnot. Tento přístup vytváří rovnováhu mezi efektivitou vícedotazové pozornosti a výkonem standardní samopozornosti, poskytuje vylepšené časy odvození při zachování vysoce kvalitních výsledků.