Grote taalmodellen

From Systems analysis Wiki
Jump to navigation Jump to search

Groot taalmodel (large language model, LLM) — dit is een type model voor Machine Learning, geïmplementeerd met behulp van een diepe Neural Network met een groot aantal parameters (doorgaans miljarden of meer) en getraind op grote hoeveelheden tekstuele data. 'Groot' verwijst in deze context tegelijkertijd naar de schaal van de parameters en naar de omvang van het trainingskorpus, dat in moderne systemen enkele petabytes en biljoenen tokens beslaat. LLM-modellen worden voornamelijk getraind via een self- of semi-supervised methode, waarbij het volgende token in een reeks wordt voorspeld en de statistische wetmatigheden van taal zo worden aangeleerd. De toename van parameters, data en rekenstappen leidt tot een voorspelbare verbetering van de kwaliteit, wat wordt bevestigd door scaling laws.

Na het verschijnen van BERT (2017) en met name GPT-3 (2020) begon de LLM-aanpak te domineren in de verwerking van natuurlijke taal. Moderne modellen (GPT-4o, Claude 3, Gemini 1.5, LLaMA 3 e.a.) zijn zonder speciale configuratie in staat teksten en programmacode te schrijven, te vertalen, samen te vatten, vragen te beantwoorden en redeneerketens op te bouwen; multimodale versies analyseren afbeeldingen, geluid en video. Aanpassing aan een toepassingsgerichte taak geschiedt via fine-tuning of prompt engineering (in-context learning). Naast hun prestaties nemen LLM's ook de vooroordelen en fouten van de brondata over, zijn ze gevoelig voor 'hallucinaties' en vereisen ze aanzienlijke rekenbronnen; daarom richt het onderzoek zich tegenwoordig op gedragsafstemming, korpusfiltering en energiezuinige architecturen.

Architectuur

In moderne LLM's wordt vrijwel altijd de architectuur van de Transformer gebruikt — een netwerk met een self-attention-mechanisme. Het Transformer-model werd voor het eerst voorgesteld in het artikel Attention is All You Need door ontwikkelaars van Google in 2017.

De Transformer-architectuur is een basale neurale netwerkstructuur voor het verwerken van reeksen, bestaande uit twee logische modules — een encoder (codeert de invoer) en een decoder (genereert de uitvoer). Als invoer wordt een reeks ontvangen, waarvan een vectorrepresentatie (embedding) wordt aangemaakt; vervolgens wordt een vector voor positionele codering opgeteld, waarna de verzameling elementen zonder rekening te houden met de volgorde in de reeks naar de coderende component wordt gestuurd (parallelle verwerking), en daarna ontvangt de decoderende component een deel van deze reeks en de uitvoer van de coderende component als invoer. Het resultaat is een nieuwe uitvoerreeks.

De coderende component van de transformer bestaat uit meerdere identieke encoder-lagen; de decoderende component is op vergelijkbare wijze opgebouwd. De transformer zelf is een opeenvolging van attentiemodellen die de oorspronkelijke reeks vectoren omzetten in een nieuwe reeks, waarbij elk element rekening houdt met de context van de overige elementen. De encoder vormt verborgen representaties van de invoerdata en behoudt daarin informatie over de onderlinge relaties tussen de elementen. De decoder genereert op basis van de verborgen representaties een nieuwe reeks embeddings voor de uitvoertokens. Vervolgens worden op basis van deze embeddings de definitieve uitvoerelementen gegenereerd met behulp van een taalmodel.

Omdat transformers oorspronkelijk zijn ontwikkeld voor taken zoals machinevertalingen, omvat hun architectuur een encoder (die de invoertekst verwerkt, bijvoorbeeld de bronzin) en een decoder (die de uitvoer genereert, bijvoorbeeld de vertaling). In veel taalmodellen wordt echter uitsluitend het decoder-gedeelte gebruikt, dat in autoregressive modus werkt.

Transformers worden in drie hoofdconfiguraties toegepast, waarbij elk op een andere manier gebruik maakt van de encoder en decoder en gericht is op een eigen toepassingsgebied:

  • Encoder-transformers (bidirectioneel) leren opzettelijk verborgen tekstfragmenten te reconstrueren en zijn daardoor goed geschikt voor 'begrips'-taken — classificatie, feitextractie, semantisch zoeken.
  • Decoder-transformers (autoregressive) worden geoptimaliseerd voor het voorspellen van het volgende token en worden ingezet waar streaming-uitvoer vereist is: gespreksagenten, automatische aanvulling van code, creatieve generatie.
  • Volledige 'encoder + decoder'-schema's combineren beide benaderingen: de encoder bouwt een representatie van de volledige invoertekst op, terwijl de decoder daar stapsgewijs op voortbouwt om het resultaat te vormen. Deze configuratie is het meest effectief voor machinevertaling, samenvatting en vraag-en-antwoordsystemen.

Tokenisatie

Tokenisatie is de cruciale beginfase van tekstverwerking in grote taalmodellen. In deze fase wordt een aaneengesloten tekenreeks opgesplitst in afzonderlijke eenheden — tokens. Tokenisatie verricht de taak van het omzetten van een reeks tekens in een reeks gestructureerde elementen die een efficiënte werking van het neurale netwerk mogelijk maken.

Vanuit linguïstisch oogpunt zou tokenisatie in zekere mate kunnen overeenkomen met het proces van het identificeren van minimale taaleenheden met een zelfstandige betekenis of functionele lading, zoals woorden, morfemen of fragmenten daarvan. Toch is een token dikwijls gewoon een statistisch frequent voorkomende tekenreeks, waardoor het belangrijk is de linguïstische zinvolheid van alle tokens niet te overschatten. Afhankelijk van het gekozen schema kan een token zijn: een heel woord, een subwoord, een afzonderlijk teken of een dienstmarkering (bijvoorbeeld markeringen voor het begin en het einde van een reeks).

Tokenisatie maakt het mogelijk om:

  • de omvang van het vocabulaire te beperken tot hanteerbare proporties;
  • zeldzame en nieuwe woorden correct te verwerken;
  • een eenduidige afbeelding van tekst op een reeks numerieke identificatoren te garanderen.

Voor de segmentatie van tekst worden subwoord-algoritmen gebruikt, waarvan de meest gebruikte Byte Pair Encoding (BPE), WordPiece en UnigramLM zijn. Elk van deze algoritmen bouwt een vocabulaire op van de meest voorkomende fragmenten in het korpus en gebruikt dit voor de opeenvolgende segmentatie van willekeurige invoertekst.

Na de tokenisatiefase wordt elke teksteenheid — een token — omgezet in een numerieke representatie die begrijpelijk is voor het neurale netwerk. Dit proces omvat meerdere opeenvolgende stappen:

  • Omzetting van tokens naar identificatoren: Elke token wordt gekoppeld aan een unieke numerieke index op basis van een vooraf opgesteld tokenvocabulaire. Teksttokens worden vervangen door hun unieke numerieke identificatoren (ID's). Elke ID is het volgnummer van de token in het vooraf opgestelde vocabulaire, waardoor het neurale netwerk met getallen in plaats van woorden kan werken.
  • Omzetting van identificatoren naar embeddings: Voor elke token-identificator wordt een overeenkomstige vector met vaste dimensie opgehaald of berekend — de embedding (embedding). Deze meerdimensionale numerieke representatie vervangt de ID en bevat reeds informatie over de betekenis en contextuele eigenschappen van de token. Alle embeddings hebben dezelfde lengte voor gemakkelijke verwerking.
  • Toevoegen van positionele coderingen: Omdat de Transformer-architectuur op zichzelf geen rekening houdt met de volgorde van elementen, worden positionele coderingen (positional encodings) aan de embeddings toegevoegd, die informatie verschaffen over de positie van de token in de reeks. Met andere woorden: dankzij dit mechanisme 'weet' het model welke token eerste, tweede, derde enzovoort in de zin staat.
  • Vorming van invoermatrices: De uitvoer is een matrix met dimensie [длина последовательности × размерность эмбеддинга], die dient als beginrepresentatie van de tekst en wordt doorgegeven aan het neurale netwerk, in het bijzonder aan de self-attention-blokken van de Transformer. Elke rij van deze matrix correspondeert met één token, en de daarin opgenomen vector draagt zowel de semantische betekenis (embedding) als informatie over de positie in de tekst (positionele codering).
Текст → Токены → Идентификаторы → Эмбеддинги + Позиционные кодировки → Вход в модель

Aandachtsmechanisme - Mechanisme van aandacht

Het aandachtsmechanisme (attention mechanism) is een sleutelcomponent van de Transformer-architectuur, die het mogelijk maakt afhankelijkheden tussen tokens in kaart te brengen ongeacht de afstand tussen hen in de reeks. Nadat de invoertekst is omgezet in een reeks vectoren, wordt deze reeks doorgegeven aan het centrale element van de transformer — het attentieblok (attention block).

Het aandachtsmechanisme is een methode waarmee het neurale netwerk kan bepalen op welke delen van de invoerdata het meer aandacht moet richten bij de verwerking van elk element van de reeks. Hierdoor kunnen vectoren van afzonderlijke tekstfragmenten met elkaar wisselwerken, informatie opnemen en hun waarden bijwerken met inachtneming van de omringende context. Daardoor kan het model zowel lokale als lange-afstandsafhankelijkheden tussen tokens effectief vastleggen, wat het vermogen om complexe tekststructuren te interpreteren aanzienlijk vergroot.

In de natuurlijke taal wordt de betekenis van een woord of uitdrukking niet geïsoleerd bepaald — zij hangt af van de context, dat wil zeggen van de andere woorden en structuren in de omgeving. In neurale netwerken wordt tekst gecodeerd via vectorrepresentaties — embeddings — die de lexicale en syntactische eigenschappen van tokens numeriek weerspiegelen. Zonder een direct aandachtsmechanisme (zoals in de Transformer) zou informatie over de context ofwel verloren gaan over grote afstanden (zoals in eenvoudige modellen), ofwel sequentieel worden doorgegeven, wat minder efficiënt is voor het vastleggen van lange-afstandsverbanden. In de natuurlijke taal is de betekenis van een woord of syntactische constructie echter dynamisch, en de interpretatie ervan moet zich aanpassen aan de context. Het aandachtsmechanisme verzorgt de contextualisering van vectorrepresentaties, wat inhoudt (of simpelweg :):

  • Elke token 'beoordeelt' zijn eigen belang ten opzichte van de andere tokens in de zin.
  • Tijdens het updateproces worden de vectorrepresentaties verrijkt met wederzijdse informatie die syntactische afhankelijkheden, semantische rollen en pragmatische context weerspiegelt.


Als gevolg van deze informatie-uitwisseling beginnen de bijgewerkte vectoren niet alleen de betekenis van de token zelf te coderen, maar ook de grammaticale verbanden (syntaxis), de rol in de beschreven situatie (semantiek) en de algehele betekenis in context (pragmatiek).

Входные векторы токенов (с позициями) → Механизм Внимания (Взаимодействие векторов) → Контекстуализированные векторы токенов (Векторы обогащенные информацией о связях с другими токенами)

Technische implementatie van het aandachtsmechanisme

De interne werking van het aandachtsmechanisme omvat meerdere cruciale rekenstappen en componenten. Voor elke invoervector worden drie vectoren gegenereerd: de Query (Zoekvraag), de Key (Sleutel) en de Value (Waarde). Op basis van hun onderlinge interactie worden attentiegewichten berekend, die vervolgens worden gebruikt om bijgewerkte, gecontextualiseerde vectorrepresentaties te verkrijgen. Een veelgebruikte aanpak is de multi-head architectuur (Multi-Head Attention) voor parallelle verwerking van informatie.

Query (Zoekvraag), Key (Sleutel), Value (Waarde)

De kern van de berekening van het aandachtsmechanisme is de transformatie van elke invoervector (de som van de embedding van een token en zijn positionele codering) naar drie verschillende vectorrepresentaties: Query (Q), Key (K) en Value (V).

Conceptueel vervullen deze drie vectoren de volgende rollen in het aandachtsmechanisme:

  • Query (Zoekvraag): Vertegenwoordigt de vector van de huidige token, die het zoekproces naar relevante informatie in de reeks initieert. Hij kan worden beschouwd als een 'vraag' of 'sonde', gebruikt om het belang van andere tokens ten opzichte van de huidige token te beoordelen.
  • Key (Sleutel): Fungeert als identificator of 'label' dat een aspect van de inhoud van elke token beschrijft. De Query-vector (Q) van de huidige token wordt vergeleken met alle Key-vectoren (K) in de reeks (inclusief de eigen Key) om de mate van overeenkomst of relevantie te bepalen.
  • Value (Waarde): Bevat de feitelijke informatie of representatie die aan elke token is gekoppeld en die verder zal worden doorgegeven. Nadat de attentiegewichten zijn berekend op basis van de interactie van Query's en Keys, worden deze gewichten toegepast op de Value-vectoren om de definitieve gewogen representatie te vormen, die de uitvoer van het aandachtsmechanisme voor die token vormt.

Trainen van grote taalmodellen

Het trainen van LLM's verloopt voornamelijk in twee fasen:

  1. Pretraining In deze fase wordt het model getraind op grote, ongelabelde tekstkorpora via self-supervised learning. De taak bestaat uit het voorspellen van het volgende token in een reeks (autoregressive) of het reconstrueren van verborgen fragmenten (gemaskeerd leren). Pretraining stelt het model in staat uitgebreide statistische taalwetmatigheden, grammatica, feiten over de wereld en basale vormen van redeneren aan te leren.
  2. Fine-tuning Na de pretraining wordt het model bijgetraind op gespecialiseerde data om specifieke taken uit te voeren, zoals het genereren van antwoorden, tekstclassificatie of het opvolgen van instructies. Moderne benaderingen omvatten:
    • Fine-tuning op gelabelde datasets (supervised fine-tuning).
    • Reinforcement Learning from Human Feedback (RLHF) om het gedrag van het model af te stemmen op doelmetrieken voor kwaliteit, veiligheid en bruikbaarheid.

Problemen en beperkingen

Ondanks de indrukwekkende vooruitgang hebben moderne grote taalmodellen (LLM's) een aantal problemen en beperkingen:


I. Rekenkundige en Architecturale Beperkingen

  1. Hoge rekenkundige kosten: Het trainen en inzetten van LLM's vereist aanzienlijke rekencapaciteit, tijd en energie, wat leidt tot hoge economische en ecologische kosten. Bovendien beperkt de autoregressive aard van de generatie (sequentieel aanmaken van tokens) de parallellisatie en vertraagt het de inferentiesnelheid vergeleken met niet-autoregressive benaderingen.
  2. Beperking van de contextlengte: De Transformer-architectuur heeft een kwadratische afhankelijkheid van de rekenkosten en geheugenvereisten ten opzichte van de reekslengte. Dit dwingt tot het instellen van een vaste limiet (contextvenster) op de hoeveelheid tekst die het model tegelijkertijd kan verwerken, wat leidt tot het afkappen van lange documenten en verlies van informatie buiten het venster.


II. Problemen met Betrouwbaarheid en Nauwkeurigheid van Generatie

  1. Hallucinaties: Het genereren van feitelijk onjuiste maar aannemelijk klinkende informatie. Dit houdt verband met het ontbreken van een echt wereldbegrip bij het model, de afhankelijkheid van statistische patronen in de data en het onvermogen om gegenereerde beweringen te verifiëren.
  2. Foutaccumulatie (Error Propagation): Het proces waarbij fouten die in vroege stadia van de generatie worden gemaakt, zich versterken en leiden tot een toename van onnauwkeurigheden in latere stappen, waardoor de algehele kwaliteit en samenhang van de tekst afneemt.
  3. Beperkte compositionele capaciteit: Moeilijkheden met taken die meerstappige logische redenering of precieze berekeningen vereisen (zoals het vermenigvuldigen van meercijferige getallen of het oplossen van puzzels). De nauwkeurigheid van modellen bij dergelijke taken daalt sterk naarmate de complexiteit toeneemt, vanwege de autoregressive aard van de generatie.
  4. Herhalingen: De neiging tot overmatige herhaling van woorden of zinnen, wat de informatiedichtheid en leesbaarheid van de tekst vermindert. Dit hangt samen met de eigenschappen van het trainingsproces en de decodeeralgoritmen (selectie van het volgende token).
  5. Reversal Curse (Omkeervloek): Het onvermogen van het model om kennis automatisch in omgekeerde richting te generaliseren: nadat het model getraind is op de uitspraak 'A is B', kan het vaak niet afleiden dat 'B is A'.
  6. Afweging creativiteit-nauwkeurigheid: De noodzaak om evenwicht te vinden tussen het genereren van gevarieerde, originele antwoorden en het handhaven van feitelijke nauwkeurigheid. Het verbeteren van het ene aspect heeft vaak een negatief effect op het andere; zo kan een hoge creativiteit samengaan met een toename van hallucinaties.

III. Problemen met Interactie en Sturing:

  1. Lage stuurbaarheid: De moeilijkheid om nauwkeurige controle uit te oefenen over de stijl, toon, inhoud van de gegenereerde tekst of het opvolgen van complexe instructies. De stuurbaarheid is sterk afhankelijk van de kwaliteit van de invoer-instructies ('prompts') en de fine-tuning-methoden.
  2. Gevoeligheid voor formuleringen: Kleine wijzigingen in het invoerverzoek (de prompt) kunnen leiden tot wezenlijk verschillende antwoorden, ook als de semantische betekenis van het verzoek gelijk blijft. Dit bemoeilijkt het verkrijgen van stabiele en voorspelbare resultaten.


IV. Ethische en Maatschappelijke Aspecten:

  1. Vooringenomenheid en eerlijkheidsproblemen: Modellen kunnen bestaande sociale stereotypen, vooroordelen of toxiciteit uit de trainingsdata reproduceren en versterken. Het waarborgen van eerlijkheid en veiligheid van modellen is een complexe opgave.
  2. Het uitlijningsprobleem (LLM Alignment): Een overkoepelend probleem dat het voorgaande punt omvat. Dit is de taak om het gedrag van het model in overeenstemming te brengen met menselijke waarden, intenties en ethische normen. Het omvat de bestrijding van vooringenomenheid, hallucinaties, het genereren van schadelijke inhoud en het verbeteren van de stuurbaarheid.
  3. Risico's van kwaadwillig gebruik: De mogelijkheid om LLM's in te zetten voor het aanmaken en massaal verspreiden van desinformatie, phishing, spam, schadelijke code of het genereren van overtuigende nepcontent, wat bedreigingen vormt voor de informatie- en persoonlijke veiligheid en het maatschappelijk vertrouwen ondermijnt.

Verwijzingen:

  • 'Groot taalmodel' // Wikipedia (Russische versie)
  • Large Language Model // Wikipedia (English version)
  • Grand Modèle de Langage // Wikipédia (Version française)
  • Sprachmodell // Wikipedia (Deutsche version)
  • Naveed H. et al. // A Comprehensive Overview of Large Language Models // arXiv:2307.06435, 2023

Literatuur

  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Brown, T. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
  • Kaplan, J. et al. (2020). Scaling Laws for Neural Language Models. arXiv:2001.08361.
  • Hoffmann, J. et al. (2022). Training Compute-Optimal Large Language Models. arXiv:2203.15556.
  • Ouyang, L. et al. (2022). Training Language Models to Follow Instructions with Human Feedback. arXiv:2203.02155.
  • Bai, Y. et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
  • Bubeck, S. et al. (2023). Sparks of Artificial General Intelligence: Early Experiments with GPT-4. arXiv:2303.12712.
  • OpenAI. (2023). GPT-4 Technical Report. arXiv:2303.08774.
  • Touvron, H. et al. (2024). The Llama 3 Herd of Models. arXiv:2407.21783.