Context Length in LLM’s: Wat is het en waarom het belangrijk is

Helena | 04/10/2024

Grote taalmodellen (LLM’s) hebben voor een revolutie gezorgt op het gebied van natuurlijke taalverwerking (NLP), waardoor machines mensachtige tekst kunnen begrijpen en genereren. Een belangrijk aspect van deze modellen is de context length (ook wel contextgrootte genoemd), een parameter die de prestaties en toepasbaarheid ervan aanzienlijk beïnvloedt.

In deze blog onderzoeken we wat de context length is, waarom dit ertoe doet en welke invloed dit heeft op de mogelijkheden van LLM’s.

Wat is Context Length?

Context length verwijst naar het maximale aantal tokens dat een LLM in één invoerreeks kan verwerken. Tokens zijn de basiseenheden van tekst die het model begrijpt, wat woorden, subwoorden of zelfs tekens kunnen zijn. In het Engels kan een zin als “The quick brown fox jumps over the lazy dog” bijvoorbeeld worden opgesplitst in tokens zoals “The”, “quick”, “brown”, “fox”, enz.

In simpelere termen, functioneert de context length als de ‘concentratieboog’ van het model, die bepaalt hoeveel informatie het in één keer kan overwegen bij het genereren van reacties. Populaire modellen zoals GPT-3, GPT-4o, LLama 3.1 en Gemini 1.5 hebben verschillende context length, die hun prestaties bij verschillende taken beïnvloeden.

Waarom is Context Length belangrijk?

Context length speelt een cruciale rol in de prestaties en effectiviteit van grote taalmodellen (LLM’s). Door de hoeveelheid invoergegevens te definiëren die het model in één keer kan verwerken, heeft de context lengte invloed op hoe goed het model tekst kan begrijpen en genereren.

In dit gedeelte wordt de betekenis van context length op drie belangrijke gebieden onderzocht: complexiteit van invoer, geheugen en coherentie, en nauwkeurigheid en prestaties. Als u deze aspecten begrijpt, kunt u illustreren waarom het gebruik van een LLM met een langere context length uw mogelijkheden met het model dramatisch kan verbeteren.

Complexiteit van invoer

Dankzij een grotere context length kan het Large Language Model meer gedetailleerde en complexe invoer verwerken. Een model met een uitgebreid context venster van 32.000 tokens kan bijvoorbeeld het equivalent van 49 pagina’s tekst verwerken. Deze mogelijkheid is cruciaal voor taken zoals het samenvatten van lange documenten of het begrijpen van uitgebreide dialogen. Zonder voldoende context length kan het model cruciale informatie missen bij contextrijke taken, wat leidt tot onvolledige of onnauwkeurige resultaten.

Geheugen en coherentie

Omdat LLM’s staatloos zijn en zich niet noodzakelijk eerdere interacties herinnert, bepaalt de context lengte hoeveel van de eerdere invoer het model zich kan herinneren. Dit is vooral belangrijk in toepassingen als chatbots, waar het behouden van de context over meerdere gespreksmomenten essentieel is voor de samenhang en relevantie. In een klantenservice scenario moet de chatbot bijvoorbeeld het probleem van de klant en eerdere interacties onthouden om een nuttig en samenhangend antwoord te kunnen geven.

Nauwkeurigheid en prestaties

De mogelijkheid om een groter context venster te beschouwen vergroot de kans op het genereren van nauwkeurige en contextueel relevante antwoorden. Dit komt omdat het model kan putten uit een uitgebreider begrip van de input, wat leidt tot beter geïnformeerde outputs. Bij taken als automatische vertaling of tekstsamenvatting helpt het om toegang te hebben tot een grotere context van het model. Dit helpt het model om context beter te begrijpen en de algemene betekenis van de tekst te behouden.

Context length in populaire modellen

Verschillende LLM’s hebben verschillende context length. Bijvoorbeeld:

  • GPT-3: Tot 2048 tokens
  • Mistral 7B: Tot 8192 tokens
  • GPT-4o: Van 60K tot 128K tokens in sommige configuraties
  • Claude 3.5: Tot 100K tokens
  • LLama 3.1: Tot 128K tokens
  • Gemini 1.5 Pro: Tot 1M tokens

Deze verschillen hebben belangrijke implicaties voor hun gebruik in verschillende toepassingen. Zo maakt het uitgebreide context venster van GPT-4 het geschikter voor taken die de verwerking van uitgebreide tekst vereisen, zoals analyse van juridische documenten of generatie van lange contekst. Gemini 1.5 Pro valt momenteel op door zijn enorme context grootte, die tot 1 miljoen tokens kan verwerken. Dit betekent dat 1.5 Pro enorme hoeveelheden informatie in één keer kan verwerken, waaronder 1 uur video, 11 uur audio, code bases met meer dan 30.000 regels code of meer dan 700.000 woorden. Daarentegen zijn modellen met kortere context lengtes mogelijk beter geschikt voor eenvoudigere taken zoals classificatie van korte tekst of het beantwoorden van eenvoudige vragen.

dn context length figuur

Figuur 1: Gemini 1.5 Pro bereikt een bijna perfecte “naald”-herinnering (>99,7%) tot 1 miljoen tokens van “hooiberg” in alle modaliteiten, d.w.z. tekst, video en audio. En zelfs deze recall-prestaties behouden bij uitbreiding tot 10M tokens in de tekstmodaliteit (ongeveer 7M woorden); 2M tokens in de audiomodaliteit (tot 22 uur); 2,8M tokens in de videomodaliteit (tot 3 uur). De x-as vertegenwoordigt het context venster en de y-as het dieptepercentage van de naald die voor een bepaalde contextlengte is geplaatst. De resultaten zijn kleurgecodeerd om aan te geven: groen voor succesvolle opvragingen en rood voor mislukte. Bron: Google, https://storage.googleapis.com/deepmind-media/gemini/gemini_v1_5_report.pdf

Hoe stel ik de context length in?

Context length wordt doorgaans ingesteld tijdens de modelontwerp- en trainingsfases. Gebruikers kunnen deze parameter soms binnen bepaalde grenzen configureren, afhankelijk van de interface of API die ze gebruiken. Zo staat de API van OpenAI gebruikers toe om het maximale aantal tokens voor een bepaalde invoer te specificeren.

Het is belangrijk om op te merken dat het vergroten van de context length voorbij een bepaald punt meer reken- en financiële middelen kan vereisen, want in LLM’s betaal je voor de hoeveelheid tokens van ‘input’ en tokens van ‘output’. Als je een groot context venster wilt behouden, bijvoorbeeld in een use case, dan stijgen de kosten met elk antwoord. Naast de toegenomen kosten, kan dit ook van invloed zijn op de prestaties van het model.

Context length implementeren in LLM’s

Trainen met lange sequenties

Om een LLM te creëren met een grote context length, trainen onderzoekers het model met behulp van lange sequenties. Lange sequenties in de context van LLM’s verwijzen doorgaans naar invoerteksten die aanzienlijk langer zijn dan de standaard trainingsvoorbeelden, vaak variërend van duizenden tot tienduizenden tokens. Training op deze lange sequenties is cruciaal voor het vergroten van de context length van het model.

Methoden die specifiek worden gebruikt voor training op langere reeksen zijn onder meer:

  1. Gradiëntaccumulatie: Met deze techniek kunnen lange reeksen worden verwerkt door ze in kleinere stukken op te delen, waardoor gradiënten worden verzameld voordat de gewichten worden bijgewerkt. Het is essentieel voor het verwerken van reeksen die de GPU-geheugencapaciteit overschrijden.
  2. Efficiënte aandachtsmechanismen: Algoritmen zoals schaarse aandacht of schuifraamaandacht zijn cruciaal voor het verwerken van lange reeksen, omdat ze de kwadratische complexiteit van standaardaandacht verminderen.
  3. Geheugenefficiënte training: het gebruik van technieken zoals omkeerbare lagen, activeringscontrolepunten of geheugenefficiënte optimalisaties om de toegenomen geheugenbehoefte van lange reeksen te beheren.
  4. Positionele coderingsaanpassing: positionele coderingen uitbreiden of wijzigen om langere reeksen mogelijk te maken, zoals het gebruik van relatieve positionele inbedding of roterende positie-inbedding.
  5. Curriculum leren voor reekslengte: Geleidelijk vergroten van de lengte van trainingsreeksen gedurende het trainingsproces, waardoor het model zich geleidelijk aan langere contexts kan aanpassen.
  6. Gespecialiseerde gegevensvoorverwerking: trainingsgegevens voorbereiden met langere aaneengesloten passages, zodat het model tijdens de training echt lange reeksen ziet.

Ondanks deze geavanceerde methoden is het trainen van modellen op langere reeksen uitdagend en arbeidsintensief. Het omvat het verwerken van een groter aantal tokencombinaties, wat de complexiteit en kosten van training verhoogt. Bovendien kan het moeilijk zijn om de modelprestaties over uitgebreide context vensters te behouden. Onderzoekers moeten ervoor zorgen dat het model kan leren van lange reeksen zonder het vermogen te verliezen om te generaliseren van kortere reeksen.

Positionele codering

Positionele codering is een cruciaal onderdeel van op transformatoren gebaseerde LLM’s, waardoor het model de volgorde en relatieve posities van tokens in een reeks kan begrijpen. Dit is vooral belangrijk bij het verwerken van lange reeksen.

Doel

Positionele codering helpt het model onderscheid te maken tussen tokens op basis van hun positie in de reeks, waardoor het model de context en relaties tussen tokens begrijpt, zelfs bij zeer lange invoer.

Traditionele methoden

Er zijn meerdere methoden voor het coderen van positionele informatie. Hieronder staan ​​twee veelgebruikte benaderingen:

  • Sinusoidal encoding: Gebruikt sinus- en cosinusfuncties om de positie weer te geven.
  • Learned positional embeddings: het model leert positierepresentaties tijdens de training.

Uitdagingen met lange reeksen

Traditionele methoden hebben vaak beperkingen wanneer de context length de trainingswaarde overschrijdt. Ze kunnen moeite hebben om te generaliseren naar posities die verder gaan dan de posities die ze tijdens de training zien.

Geavanceerde technieken voor lange reeksen

Meer geavanceerde methoden voor lange reeksen zijn onder meer:

  • Relative Positional Encoding: Codeert relatieve afstanden tussen tokens in plaats van absolute posities.
  • Rotary Position Embedding (RoPE): Past rotatie toe op token-inbedding op basis van hun positie, waardoor een betere generalisatie naar langere reeksen mogelijk is.
  • Attention Linear Bias (ALiBi): Introduceert een bias-term in het aandachtsmechanisme dat schaalt met de positie, waardoor uitbreiding naar langere reeksen mogelijk wordt zonder omscholing.

Impact op training en afwegingen

Het aanpassen van positionele codering voor langere sequenties vereist vaak het aanpassen van de modelarchitectuur of het trainingsproces. Sommige methoden, zoals ALiBi, maken het mogelijk de context length na de training uit te breiden, terwijl andere mogelijk vanaf het begin trainingsmodellen vereisen.

Verschillende positionele coderingsmethoden hebben verschillende gevolgen voor de prestaties van het model, de trainingsefficiëntie en het vermogen om lange reeksen te verwerken. Onderzoekers moeten deze factoren in evenwicht brengen bij het kiezen van een positionele coderingsstrategie voor long-context LLM’s.

Effectieve positionele codering is essentieel om LLM’s in staat te stellen lange reeksen te verwerken en te begrijpen, wat een directe invloed heeft op het vermogen van het model om de samenhang te behouden en relaties vast te leggen over uitgebreide contexts.

Uitdagingen bij het vergroten van de context length

Het uitbreiden van de context length in taalmodellen gaat gepaard met technische en hulpbronnengerelateerde uitdagingen. In dit gedeelte wordt dieper ingegaan op de belangrijkste obstakels die men tegenkomt bij het vergroten van het context venster, waarbij de eisen aan computerbronnen, de complexiteit van het trainingsproces en de beperkingen van positionele codering worden benadrukt. Door deze uitdagingen te begrijpen, kunnen onderzoekers efficiëntere strategieën ontwikkelen om de mogelijkheden van taalmodellen te verbeteren.

Computationele bronnen

Het vergroten van de context length vereist meer geheugen en verwerkingskracht. De rekenkosten schalen kwadratisch met de lengte van het context venster, wat betekent dat een model met een context length van 4096 tokens 64 keer meer rekenbronnen vereist dan een model met een context length van 1024 tokens. Deze toename van de rekenvraag kan een aanzienlijke barrière vormen voor het inzetten van modellen met zeer lange context length, vooral in omgevingen met beperkte middelen.

Training complexiteit

Het trainen van modellen met langere context length houdt in dat er meer gegevens moeten worden verwerkt en dat het model er effectief van kan leren. Dit verhoogt de trainingstijd en de complexiteit van het trainingsproces. Onderzoekers moeten de behoefte aan langere context length in evenwicht brengen met de praktische beperkingen van trainingstijd en computerbronnen.

Positionele coderingsbeperkingen

Zoals eerder uitgelegd, kunnen traditionele positionele coderingsmethoden in effectiviteit afnemen naarmate de context length toeneemt. Nieuwere methoden zoals ALiBi (Attention with Linear Biases) bieden oplossingen, maar vereisen uitgebreide herscholing. Positionele codering moet robuust genoeg zijn om lange reeksen te verwerken zonder het vermogen te verliezen om vanuit kortere reeksen te generaliseren. Dit evenwicht is van cruciaal belang voor het behoud van de prestaties van het model voor verschillende soorten taken.

Hoewel het vergroten van de context length in taalmodellen de prestaties en toepasbaarheid ervan aanzienlijk kan verbeteren, brengt dit over het geheel genomen ook aanzienlijke uitdagingen met zich mee. Het aanpakken van deze uitdagingen vereist innovatieve oplossingen op het gebied van computationele efficiëntie, trainingsmethodologieën en positionele coderingstechnieken. Door deze obstakels te overwinnen kunnen onderzoekers het volledige potentieel van taalmodellen ontsluiten bij het verwerken en begrijpen van uitgebreide input.

Recente ontwikkelingen en toekomstige richtingen

Recente ontwikkelingen in het verlengen van de context length, zoals ALiBi en andere technieken, zijn veelbelovend gebleken. Met ALiBi kunnen modellen bijvoorbeeld langere reeksen verwerken door het aandachtsmechanisme aan te passen om positionele informatie effectiever op te nemen.

Toekomstige onderzoeksrichtingen omvatten het ontwikkelen van efficiëntere trainingsmethoden en het verbeteren van positionele codering om langere sequenties effectief te kunnen verwerken. Onderzoekers onderzoeken ook manieren om de rekenkosten die gepaard gaan met langere context length te verminderen, waardoor het haalbaarder wordt om deze modellen in praktijktoepassingen in te zetten.

Praktische toepassingen en gebruiksscenario’s

Grotere context length verbeteren verschillende toepassingen, zoals:

  • Document samenvatting: lange documenten nauwkeurig samenvatten. Juridische professionals kunnen bijvoorbeeld LLM’s met uitgebreide contextvensters gebruiken om lange contracten of juridische instructies samen te vatten, waardoor tijd wordt bespaard en het risico wordt verkleind dat cruciale informatie wordt gemist.
  • Long-form Content genereren: essays, rapporten en artikelen schrijven. Auteurs en makers van inhoud kunnen LLM’s gebruiken om samenhangende en goed gestructureerde inhoud in lange vorm te genereren, waardoor de productiviteit en creativiteit worden verbeterd.
  • Complexe Dialogen Systeem: context behouden tijdens uitgebreide gesprekken in chatbots. Klantenservicebots kunnen nauwkeurigere en behulpzamere antwoorden geven door eerdere interacties te onthouden en de bredere context van het gesprek te begrijpen.

Real-world scenario’s waarbij de langere context length een aanzienlijke impact heeft gehad, zijn onder meer analyse van juridische documenten, academisch onderzoek en automatisering van klantenservice. Meer specifiek:

  • Analyse van juridische documenten: Advocatenkantoren gebruiken LLM’s om uitgebreide juridische documenten te analyseren en samen te vatten, waardoor de tijd die wordt besteed aan handmatige beoordeling wordt verminderd en het risico wordt geminimaliseerd dat kritieke informatie over het hoofd wordt gezien. In de financiële sector gebruikt een bank LLM’s om lange regelgevingsdocumenten te verwerken en samen te vatten, waardoor de naleving wordt gewaarborgd en de werklast voor het complianceteam wordt verminderd.
  • Academisch onderzoek: Onderzoekers profiteren van LLM’s die grote hoeveelheden literatuur kunnen samenvatten, belangrijke bevindingen kunnen identificeren en zelfs hypothesen kunnen genereren op basis van de context van bestaand onderzoek.
  • Automatisering van de klantenservice: Bedrijven zetten LLM’s in de klantenservice in om lange chatgeschiedenissen en e-mailthreads af te handelen, waardoor de nauwkeurigheid en relevantie van reacties worden verbeterd, waardoor de klanttevredenheid toeneemt.

Conclusie

Context length is een fundamenteel aspect van LLM’s dat een aanzienlijke invloed heeft op hun vermogen om tekst te verwerken, begrijpen en genereren. Hoewel grotere context length de mogelijkheden van het model vergroten, vereisen ze ook meer computerbronnen en geavanceerde trainingstechnieken om de prestaties en nauwkeurigheid te behouden. Naarmate het onderzoek vordert, kunnen we nog krachtigere en efficiëntere LLM’s verwachten die steeds complexere taken kunnen uitvoeren.

Het begrijpen en benutten van de context length is cruciaal voor het ontsluiten van het volledige potentieel van LLM’s en het stimuleren van innovatie op verschillende gebieden. Door de uitdagingen aan te pakken die gepaard gaan met het uitbreiden van de context length en het ontwikkelen van nieuwe technieken voor efficiënte training en positionele codering, kunnen onderzoekers de grenzen blijven verleggen van wat LLM’s kunnen bereiken. Of het nu gaat om het verbeteren van de klantenservice, het helpen van juridische professionals of het verbeteren van academisch onderzoek, de impact van de lengte van de context op LLM’s is diepgaand en verreikend.

Bent u geïnteresseerd om te onderzoeken hoe AI de efficiëntie van uw organisatie met LLM’s kan verbeteren? Neem contact op met onze AI experts bij DataNorth en boek een AI Consultancy afspraak. Ontdek hoe u de gegevensverwerking kunt versnellen, tijd kunt besparen en diepere inzichten kunt krijgen.