Artificial Intelligence
Op decoders gebaseerde grote taalmodellen: een complete gids
Grote taalmodellen (LLM's) hebben een revolutie teweeggebracht op het gebied van natuurlijke taalverwerking (NLP) door opmerkelijke capaciteiten te demonstreren bij het genereren van mensachtige tekst, het beantwoorden van vragen en het assisteren bij een breed scala aan taalgerelateerde taken. De kern van deze krachtige modellen ligt in de Transformatorarchitectuur met alleen decoders, een variant van de originele transformatorarchitectuur voorgesteld in het baanbrekende artikel “Aandacht is alles wat je nodig hebt”door Vaswani et al.
In deze uitgebreide gids verkennen we de innerlijke werking van op decoders gebaseerde LLM's, waarbij we ons verdiepen in de fundamentele bouwstenen, architecturale innovaties en implementatiedetails die deze modellen naar de voorgrond hebben gebracht van NLP-onderzoek en -toepassingen.
De Transformer-architectuur: een opfriscursus
Voordat we ingaan op de specifieke kenmerken van op decoders gebaseerde LLM's, is het essentieel om opnieuw naar de transformatorarchitectuur te kijken, de basis waarop deze modellen zijn gebouwd. De transformator introduceerde een nieuwe benadering van sequentiemodellering, waarbij hij uitsluitend vertrouwde op aandachtsmechanismen om langeafstandsafhankelijkheden in de gegevens vast te leggen, zonder de noodzaak van terugkerende of convolutionele lagen.
De oorspronkelijke transformatorarchitectuur bestaat uit twee hoofdcomponenten: een encoder en een decoder. De encoder verwerkt de invoerreeks en genereert een gecontextualiseerde representatie, die vervolgens door de decoder wordt gebruikt om de uitvoerreeks te produceren. Deze architectuur is in eerste instantie ontworpen voor automatische vertaaltaken, waarbij de encoder de invoerzin in de brontaal verwerkt en de decoder de overeenkomstige zin in de doeltaal genereert.
Zelfaandacht: de sleutel tot het succes van Transformer
In het hart van de transformator schuilt het zelfaandachtsmechanisme, een krachtige techniek waarmee het model informatie uit verschillende posities in de invoerreeks kan wegen en aggregeren. In tegenstelling tot traditionele reeksmodellen, die invoertokens opeenvolgend verwerken, stelt zelfaandacht het model in staat afhankelijkheden tussen elk paar tokens vast te leggen, ongeacht hun positie in de reeks.
De zelfaandachtsoperatie kan worden opgesplitst in drie hoofdstappen:
- Query-, sleutel- en waardeprojecties: De invoerreeks wordt geprojecteerd in drie afzonderlijke weergaven: queries (Q), toetsen (K), en waarden (V). Deze projecties worden verkregen door de invoer te vermenigvuldigen met aangeleerde gewichtsmatrices.
- Aandachtsscoreberekening: Voor elke positie in de invoerreeks worden aandachtsscores berekend door het puntproduct tussen de overeenkomstige vraagvector en alle sleutelvectoren te nemen. Deze scores vertegenwoordigen de relevantie van elke positie voor de huidige positie die wordt verwerkt.
- Gewogen som van waarden: De aandachtsscores worden genormaliseerd met behulp van een softmax-functie, en de resulterende aandachtsgewichten worden gebruikt om een gewogen som van de waardevectoren te berekenen, waardoor de uitvoerrepresentatie voor de huidige positie wordt geproduceerd.
Multi-head aandacht, een variant van het zelfaandachtsmechanisme, stelt het model in staat verschillende soorten relaties vast te leggen door aandachtsscores te berekenen over meerdere ‘hoofdenParallel daaraan, elk met zijn eigen reeks query-, sleutel- en waardeprojecties.
Architecturale varianten en configuraties
Hoewel de kernprincipes van op decoders gebaseerde LLM's consistent blijven, hebben onderzoekers verschillende architecturale varianten en configuraties onderzocht om de prestaties, efficiëntie en generalisatiemogelijkheden te verbeteren. In deze sectie gaan we dieper in op de verschillende architecturale keuzes en hun implicaties.
Architectuurtypen
Op decoders gebaseerde LLM's kunnen grofweg worden ingedeeld in drie hoofdtypen: encoder-decoder, causale decoder en prefix-decoder. Elk architectuurtype vertoont verschillende aandachtspatronen.
Encoder-decoderarchitectuur
Gebaseerd op het standaard Transformer-model, bestaat de encoder-decoder-architectuur uit twee stapels: een encoder en een decoder. De encoder maakt gebruik van gestapelde zelfaandachtslagen met meerdere koppen om de invoerreeks te coderen en latente representaties te genereren. De decoder voert vervolgens kruisaandacht uit op deze representaties om de doelreeks te genereren. Hoewel effectief in verschillende NLP-taken, zijn er maar weinig LLM's, zoals Vlaai-T5, neem deze architectuur over.
Causale decoderarchitectuur
De causale decoderarchitectuur omvat een unidirectioneel aandachtsmasker, waardoor elk invoertoken alleen rekening kan houden met eerdere tokens en zichzelf. Zowel invoer- als uitvoertokens worden binnen dezelfde decoder verwerkt. Opvallende modellen zoals GPT-1, GPT-2 en GPT-3 zijn op deze architectuur gebouwd, waarbij GPT-3 opmerkelijke leermogelijkheden in de context laat zien. Veel LLM's, waaronder OPT, BLOOM en Gopher, hebben op grote schaal causale decoders toegepast.
Prefix-decoderarchitectuur
De architectuur van de prefixdecoder, ook bekend als de niet-causale decoder, wijzigt het maskeringsmechanisme van causale decoders om bidirectionele aandacht op prefixtokens en unidirectionele aandacht op gegenereerde tokens mogelijk te maken. Net als de encoder-decoder-architectuur kunnen prefix-decoders de prefix-reeks bidirectioneel coderen en uitvoertokens autoregressief voorspellen met behulp van gedeelde parameters. LLM's gebaseerd op prefixdecoders omvatten GLM130B en U-PaLM.
Alle drie de architectuurtypen kunnen worden uitgebreid met behulp van de mengsel van deskundigen (MoE) schaaltechniek, die voor elke invoer spaarzaam een subset van neurale netwerkgewichten activeert. Deze aanpak is toegepast in modellen als Switch Transformer en GLaM, waarbij het vergroten van het aantal experts of de totale parametergrootte aanzienlijke prestatieverbeteringen liet zien.
Decoder-Only Transformer: het omarmen van de autoregressieve aard
Hoewel de oorspronkelijke transformatorarchitectuur is ontworpen voor reeks-tot-reeks-taken zoals machinevertaling, kunnen veel NLP-taken, zoals taalmodellering en tekstgeneratie, worden geframed als autoregressieve problemen, waarbij het model één token tegelijk genereert, afhankelijk van de eerder gegenereerde tokens.
Voer de decoder-only-transformator in, een vereenvoudigde variant van de transformatorarchitectuur die alleen de decodercomponent behoudt. Deze architectuur is bijzonder geschikt voor autoregressieve taken, omdat het één voor één uitvoertokens genereert, waarbij de eerder gegenereerde tokens worden gebruikt als invoercontext.
Het belangrijkste verschil tussen de transformator met alleen een decoder en de originele transformatordecoder ligt in het zelfaandachtsmechanisme. In de instelling alleen voor de decoder wordt de zelfaandachtsbewerking aangepast om te voorkomen dat het model toekomstige tokens in de gaten houdt, een eigenschap die bekend staat als causaliteit. Dit wordt bereikt door een techniek die ‘gemaskeerde zelfaandacht’ wordt genoemd, waarbij aandachtsscores die overeenkomen met toekomstige posities op negatief oneindig worden gezet, waardoor deze effectief worden gemaskeerd tijdens de softmax-normalisatiestap.
Architecturale componenten van op decoders gebaseerde LLM's
Hoewel de kernprincipes van zelfaandacht en gemaskeerde zelfaandacht hetzelfde blijven, hebben moderne op decoders gebaseerde LLM's verschillende architectonische innovaties geïntroduceerd om de prestaties, efficiëntie en generalisatiemogelijkheden te verbeteren. Laten we enkele van de belangrijkste componenten en technieken verkennen die worden gebruikt in de modernste LLM's.
Invoervertegenwoordiging
Voordat de invoerreeks wordt verwerkt, gebruiken op decoders gebaseerde LLM's tokenisatie- en inbeddingstechnieken om de onbewerkte tekst om te zetten in een numerieke representatie die geschikt is voor het model.
tokenization: Het tokenisatieproces zet de invoertekst om in een reeks tokens, die woorden, subwoorden of zelfs individuele tekens kunnen zijn, afhankelijk van de gebruikte tokenisatiestrategie. Populaire tokenisatietechnieken voor LLM's zijn onder meer Byte-Pair Encoding (BPE), SentencePiece en WordPiece. Deze methoden zijn gericht op het vinden van een evenwicht tussen de omvang van de woordenschat en de granulariteit van de representatie, waardoor het model effectief kan omgaan met zeldzame of woorden die buiten de woordenschat vallen.
Token-insluitingen: Na tokenisatie wordt elk token toegewezen aan een dichte vectorrepresentatie, een zogenaamde token-inbedding. Deze inbedding wordt geleerd tijdens het trainingsproces en legt semantische en syntactische relaties tussen tokens vast.
Positionele inbedding: Transformer-modellen verwerken de gehele invoerreeks gelijktijdig, zonder het inherente idee van tokenposities dat aanwezig is in terugkerende modellen. Om positionele informatie op te nemen, worden positionele inbeddingen toegevoegd aan de token-inbedding, waardoor het model onderscheid kan maken tussen tokens op basis van hun posities in de reeks. Vroege LLM's gebruikten vaste positionele inbedding op basis van sinusoïdale functies, terwijl recentere modellen leerbare positionele inbedding of alternatieve positionele coderingstechnieken zoals roterende positionele inbedding hebben onderzocht.
Aandachtsblokken met meerdere hoofden
De kernbouwstenen van op decoders gebaseerde LLM's zijn aandachtslagen met meerdere koppen, die de eerder beschreven gemaskeerde zelfaandachtsoperatie uitvoeren. Deze lagen worden meerdere keren gestapeld, waarbij elke laag de uitvoer van de vorige laag verzorgt, waardoor het model steeds complexere afhankelijkheden en representaties kan vastleggen.
Aandachtskoppen: Elke aandachtslaag met meerdere hoofden bestaat uit meerdere 'aandachtskoppen', elk met zijn eigen set query-, sleutel- en waardeprojecties. Hierdoor kan het model tegelijkertijd aandacht besteden aan verschillende aspecten van de invoer, waarbij diverse relaties en patronen worden vastgelegd.
Residuele verbindingen en laagnormalisatie: Om de training van diepe netwerken te vergemakkelijken en het verdwijnende gradiëntprobleem te verzachten, maken op decoders gebaseerde LLM's gebruik van resterende verbindingen en laagnormalisatietechnieken. Resterende verbindingen voegen de invoer van een laag toe aan de uitvoer ervan, waardoor gradiënten gemakkelijker kunnen vloeien tijdens backpropagation. Laagnormalisatie helpt de activeringen en gradiënten te stabiliseren, waardoor de trainingsstabiliteit en -prestaties verder worden verbeterd.
Feed-Forward-lagen
Naast multi-head aandachtslagen bevatten op decoders gebaseerde LLM's feed-forward-lagen, die een eenvoudig feed-forward neuraal netwerk toepassen op elke positie in de reeks. Deze lagen introduceren niet-lineariteiten en stellen het model in staat complexere representaties te leren.
Activeringsfuncties: De keuze van de activeringsfunctie in de feed-forward-lagen kan de prestaties van het model aanzienlijk beïnvloeden. Terwijl eerdere LLM's vertrouwden op de veelgebruikte ReLU-activering, hebben recentere modellen meer geavanceerde activeringsfuncties overgenomen, zoals de Gaussian Error Linear Unit (GELU) of de SwiGLU-activering, die verbeterde prestaties hebben laten zien.
Schaarse aandacht en efficiënte transformatoren
Hoewel het zelfaandachtsmechanisme krachtig is, gaat het gepaard met een kwadratische rekencomplexiteit met betrekking tot de lengte van de reeks, waardoor het rekentechnisch duur wordt voor lange reeksen. Om deze uitdaging aan te pakken, zijn er verschillende technieken voorgesteld om de reken- en geheugenvereisten van zelfaandacht te verminderen, waardoor een efficiënte verwerking van langere reeksen mogelijk wordt.
Schaarse aandacht: Sparse aandachtstechnieken, zoals die welke worden gebruikt in het GPT-3-model, houden zich selectief bezig met een subset van posities in de invoerreeks, in plaats van aandachtsscores voor alle posities te berekenen. Dit kan de rekencomplexiteit aanzienlijk verminderen, terwijl redelijke prestaties behouden blijven.
Schuifraam Let op: Geïntroduceerd in het Mistral 7B-model, is schuifraamaandacht (SWA) een eenvoudige maar effectieve techniek die de aandachtsspanne van elk token beperkt tot een vaste venstergrootte. Deze aanpak maakt gebruik van het vermogen van transformatorlagen om informatie over meerdere lagen te verzenden, waardoor de aandachtsspanne effectief wordt vergroot zonder de kwadratische complexiteit van volledige zelfaandacht.
Rollende buffercache: Om de geheugenvereisten verder te verminderen, vooral voor lange reeksen, maakt het Mistral 7B-model gebruik van een rolling buffer cache. Deze techniek slaat de berekende sleutel- en waardevectoren op en hergebruikt deze voor een vaste venstergrootte, waardoor redundante berekeningen worden vermeden en het geheugengebruik wordt geminimaliseerd.
Gegroepeerde vraagaandacht: Geïntroduceerd in het LLaMA 2-model, is gegroepeerde query-aandacht (GQA) een variant van het multi-query-aandachtsmechanisme dat aandachtshoofden in groepen verdeelt, waarbij elke groep een gemeenschappelijke sleutel en waardematrix deelt. Deze aanpak zorgt voor een evenwicht tussen de efficiëntie van aandacht voor meerdere vragen en de prestaties van standaard zelfaandacht, waardoor verbeterde inferentietijden worden geboden terwijl de resultaten van hoge kwaliteit behouden blijven.