AI-modellen en platforms
Decoder-gebaseerde Large Language Models: Een Compleet Overzicht
Large Language Models (LLMs) hebben de natuurlijke taalverwerking revolutieerd door hun opmerkelijke capaciteiten in het genereren van mensachtige tekst, het beantwoorden van vragen en het helpen bij een breed scala aan taalgerelateerde taken. Aan de basis van deze krachtige modellen ligt de decoder-only transformer architectuur, een variant van de oorspronkelijke transformer architectuur die is voorgesteld in het seminale artikel “Attention is All You Need” van Vaswani et al.
In deze uitgebreide gids zullen we de innerlijke werking van decoder-gebaseerde LLMs onderzoeken, waarbij we ingaan op de fundamentele bouwstenen, architectonische innovaties en implementatiedetails die deze modellen naar de voorgrond van de NLP-onderzoek en -toepassingen hebben gebracht.
De Transformer Architectuur: Een Herhaling
Voordat we ons richten op de specifieke details van decoder-gebaseerde LLMs, is het essentieel om de transformer architectuur te herzien, de basis waarop deze modellen zijn gebouwd. De transformer introduceerde een novatieve aanpak voor sequentiële modellering, waarbij alleen aandachtmechanismen worden gebruikt om lange-afstandsafhankelijkheden in de data te vangen, zonder de noodzaak voor recursieve of convolutionele lagen.
De oorspronkelijke transformer architectuur bestaat uit twee hoofdcomponenten: een encoder en een decoder. De encoder verwerkt de invoersequentie en genereert een gecontextualiseerde representatie, die vervolgens door de decoder wordt verwerkt om de uitvoersequentie te produceren. Deze architectuur was oorspronkelijk ontworpen voor machinetaalvertalingstaken, waarbij de encoder de invoersentence in de brontaal verwerkt en de decoder de corresponderende sentence in de doeltaal genereert.
Self-Attention: De Sleutel tot Transformer’s Succes
In het hart van de transformer ligt de self-attention mechanisme, een krachtige techniek die het model in staat stelt om informatie van verschillende posities in de invoersequentie te wegen en te aggregaten. In tegenstelling tot traditionele sequentiële modellen, die invoertokens sequentieel verwerken, stelt self-attention het model in staat om afhankelijkheden tussen elk paar tokens te vangen, ongeacht hun positie in de sequentie.
De self-attention operatie kan worden onderverdeeld in drie hoofdstappen:
- Query, Key, en Value Projecties: De invoersequentie wordt geprojecteerd in drie afzonderlijke representaties: queries (Q), keys (K) en values (V). Deze projecties worden verkregen door de invoer te vermenigvuldigen met geleerde gewichtsmatrices.
- Aandacht Score Berekening: Voor elke positie in de invoersequentie worden aandacht scores berekend door het dot product te nemen tussen de corresponderende query vector en alle key vectoren. Deze scores vertegenwoordigen de relevantie van elke positie voor de huidige positie die wordt verwerkt.
- Geponderde Som van Values: De aandacht scores worden genormaliseerd met een softmax functie, en de resulterende aandacht gewichten worden gebruikt om een gewogen som van de value vectoren te berekenen, waardoor de uitvoerrepresentatie voor de huidige positie wordt gegenereerd.
Multi-head attention, een variant van de self-attention mechanisme, stelt het model in staat om verschillende soorten relaties te vangen door aandacht scores te berekenen over meerdere “heads” in parallel, elk met zijn eigen set van query, key en value projecties.
Architectonische Varianten en Configuraties
Hoewel de kernprincipes van decoder-gebaseerde LLMs consistent blijven, hebben onderzoekers verschillende architectonische varianten en configuraties onderzocht om de prestaties, efficiëntie en generalisatiecapaciteiten te verbeteren. In dit hoofdstuk zullen we de verschillende architectonische keuzes en hun implicaties onderzoeken.
Architectuur Typen
Decoder-gebaseerde LLMs kunnen breed worden ingedeeld in drie hoofdtypen: encoder-decoder, causale decoder en prefix decoder. Elk architectuurtype vertoont distincte aandacht patronen.
Encoder-Decoder Architectuur
Gebaseerd op de vanilla Transformer model, bestaat de encoder-decoder architectuur uit twee stacks: een encoder en een decoder. De encoder gebruikt gestapelde multi-head self-attention lagen om de invoersequentie te encoderen en latent representaties te genereren. De decoder voert vervolgens cross-attention uit op deze representaties om de doelsequentie te genereren. Hoewel effectief in verschillende NLP-taken, gebruiken slechts enkele LLMs, zoals Flan-T5, deze architectuur.
Causale Decoder Architectuur
De causale decoder architectuur omvat een unidirectionele aandacht masker, waardoor elk invoertoken alleen kan aandacht schenken aan voorgaande tokens en zichzelf. Zowel invoer- als uitvoertokens worden verwerkt binnen dezelfde decoder. Notable modellen zoals GPT-1, GPT-2 en GPT-3 zijn gebouwd op deze architectuur, met GPT-3 die opmerkelijke in-context leer capaciteiten vertoont. Veel LLMs, waaronder OPT, BLOOM en Gopher, hebben breed causale decoders geadopteerd.
Prefix Decoder Architectuur
Ook bekend als de non-causale decoder, past de prefix decoder architectuur het masker mechanisme van causale decoders aan om bidirectionele aandacht over prefix tokens en unidirectionele aandacht op gegenereerde tokens mogelijk te maken. Net als de encoder-decoder architectuur, kunnen prefix decoders de prefix sequentie bidirectioneel encoderen en uitvoer tokens autoregressief voorspellen met behulp van gedeelde parameters. LLMs gebaseerd op prefix decoders omvatten GLM130B en U-PaLM.
Alle drie architectuur typen kunnen worden uitgebreid met behulp van de mixture-of-experts (MoE) schaalmethode, die een subset van neurale netwerk gewichten spaarzaam activeert voor elke invoer. Deze benadering is gebruikt in modellen zoals Switch Transformer en GLaM, waarbij het verhogen van het aantal experts of het totale parameter aantal aanzienlijke prestatieverbeteringen heeft laten zien.
Decoder-Only Transformer: Embracing the Autoregressive Nature
Hoewel de oorspronkelijke transformer architectuur was ontworpen voor sequentie-naar-sequentie taken zoals machinetaalvertaling, kunnen veel NLP-taken, zoals taalmodellering en tekstgeneratie, worden geformuleerd als autoregressieve problemen, waarbij het model één token tegelijk genereert, geconditioneerd op de eerder gegenereerde tokens.
De decoder-only transformer, een vereenvoudigde variant van de transformer architectuur, behoudt alleen de decoder component. Deze architectuur is bijzonder geschikt voor autoregressieve taken, aangezien het uitvoer tokens één voor één genereert, waarbij eerder gegenereerde tokens als invoer context worden gebruikt.
Het belangrijkste verschil tussen de decoder-only transformer en de oorspronkelijke transformer decoder ligt in de self-attention mechanisme. In de decoder-only instelling wordt de self-attention operatie aangepast om te voorkomen dat het model aandacht schenkt aan toekomstige tokens, een eigenschap die bekend staat als causaliteit. Dit wordt bereikt met een techniek genaamd “masked self-attention”, waarbij aandacht scores die overeenkomen met toekomstige posities naar oneindig negatief worden gesteld, waardoor ze effectief worden gemaskeerd tijdens de softmax normalisatie stap.
Architectonische Componenten van Decoder-gebaseerde LLMs
Hoewel de kernprincipes van self-attention en masked self-attention hetzelfde blijven, hebben moderne decoder-gebaseerde LLMs verschillende architectonische innovaties geïntroduceerd om de prestaties, efficiëntie en generalisatiecapaciteiten te verbeteren. Laten we enkele van de belangrijkste componenten en technieken onderzoeken die in state-of-the-art LLMs worden gebruikt.
Invoer Representatie
Voordat de invoersequentie wordt verwerkt, gebruiken decoder-gebaseerde LLMs tokenisatie- en embeddings technieken om de ruwe tekst om te zetten in een numerieke representatie die geschikt is voor het model.
Tokenisatie: Het tokenisatieproces zet de invoer tekst om in een sequentie van tokens, die woorden, subwoorden of zelfs individuele tekens kunnen zijn, afhankelijk van de tokenisatie strategie die wordt gebruikt. Populaire tokenisatie technieken voor LLMs omvatten Byte-Pair Encoding (BPE), SentencePiece en WordPiece. Deze methoden proberen een balans te vinden tussen vocabulaire grootte en representatie granulariteit, waardoor het model zeldzame of out-of-vocabulaire woorden effectief kan verwerken.
Token Embeddings: Na tokenisatie wordt elk token toegewezen aan een dichte vector representatie, genaamd een token embedding. Deze embeddings worden tijdens de trainingsfase geleerd en vangen semantische en syntactische relaties tussen tokens.
Positionele Embeddings: Transformer modellen verwerken de hele invoersequentie tegelijk, zonder de inherente notie van token posities die aanwezig is in recursieve modellen. Om positionele informatie te incorporeren, worden positionele embeddings toegevoegd aan de token embeddings, waardoor het model tokens kan onderscheiden op basis van hun posities in de sequentie. Vroege LLMs gebruikten vaste positionele embeddings op basis van sinusfuncties, terwijl recentere modellen leerbare positionele embeddings of alternatieve positionele coderingstechnieken zoals rotary positionele embeddings hebben onderzocht.
Multi-Head Attention Blokken
De kern bouwstenen van decoder-gebaseerde LLMs zijn multi-head attention lagen, die de gemaskeerde self-attention operatie uitvoeren die eerder is beschreven. Deze lagen worden meerdere keren gestapeld, waarbij elke laag aandacht schenkt aan de uitvoer van de vorige laag, waardoor het model complexe afhankelijkheden en representaties kan vangen.
Aandacht Heads: Elke multi-head attention laag bestaat uit meerdere “aandacht heads”, elk met zijn eigen set van query, key en value projecties. Dit stelt het model in staat om tegelijkertijd aandacht te schenken aan verschillende aspecten van de invoer, waardoor diverse relaties en patronen kunnen worden gevonden.
Residu Verbindingen en Laag Normalisatie: Om diepe netwerken te trainen en het verdwijnende gradient probleem te mitigeren, gebruiken decoder-gebaseerde LLMs residu verbindingen en laag normalisatie technieken. Residu verbindingen voegen de invoer van een laag toe aan de uitvoer, waardoor gradients gemakkelijker kunnen stromen tijdens backpropagatie. Laag normalisatie helpt om de activaties en gradients te stabiliseren, waardoor de trainingsstabiliteit en prestaties verder worden verbeterd.
Feed-Forward Lagen
Naast multi-head attention lagen, omvatten decoder-gebaseerde LLMs feed-forward lagen, die een eenvoudig feed-forward neurale netwerk toepassen op elke positie in de sequentie. Deze lagen introduceren non-lineariteiten en stellen het model in staat om complexere representaties te leren.
Activatie Functies: De keuze van de activatie functie in de feed-forward lagen kan de prestaties van het model aanzienlijk beïnvloeden. Terwijl eerdere LLMs afhankelijk waren van de breed gebruikt ReLU activatie, hebben recentere modellen meer geavanceerde activatie functies zoals de Gaussian Error Linear Unit (GELU) of de SwiGLU activatie geadopteerd, die betere prestaties hebben laten zien.
Sparse Aandacht en Efficiënte Transformers
Hoewel de self-attention mechanisme krachtig is, heeft het een kwadratische computationele complexiteit met betrekking tot de sequentie lengte, waardoor het computationeel duur is voor lange sequenties. Om deze uitdaging aan te pakken, zijn verschillende technieken voorgesteld om de computationele en geheugenvereisten van self-attention te reduceren, waardoor efficiënte verwerking van langere sequenties mogelijk wordt.
Sparse Aandacht: Sparse aandacht technieken, zoals die gebruikt in het GPT-3 model, schenken selectief aandacht aan een subset van posities in de invoersequentie, in plaats van aandacht scores te berekenen voor alle posities. Dit kan de computationele complexiteit aanzienlijk reduceren terwijl redelijke prestaties behouden blijven.
Sliding Window Aandacht: Geïntroduceerd in het Mistral 7B model, is sliding window aandacht (SWA) een eenvoudige maar effectieve techniek die de aandacht span van elk token beperkt tot een vaste venster grootte. Deze benadering benut de mogelijkheid van transformer lagen om informatie over meerdere lagen te verzenden, waardoor de aandacht span effectief wordt verhoogd zonder de kwadratische complexiteit van volledige self-attention.
Rolling Buffer Cache: Om de geheugenvereisten verder te reduceren, met name voor lange sequenties, gebruikt het Mistral 7B model een rolling buffer cache. Deze techniek slaat en hergebruikt de berekende key en value vectoren voor een vaste venster grootte, waardoor redundante berekeningen worden vermeden en geheugen gebruik wordt geminimaliseerd.
Grouped Query Aandacht: Geïntroduceerd in het LLaMA 2 model, is grouped query aandacht (GQA) een variant van de multi-query aandacht mechanisme die aandacht heads in groepen verdeelt, waarbij elke groep een gemeenschappelijke key en value matrix deelt. Deze benadering vindt een balans tussen de efficiëntie van multi-query aandacht en de prestaties van standaard self-attention, waardoor verbeterde inferentie tijden worden geboden terwijl hoge kwaliteit resultaten behouden blijven.
















