Sådan håndterer du en AI’s begrænsede hukommelse

AI genereret foto af en glemsom AI-guldfisk alene i det sorte intet
En glemsom AI med for lille hukommelse

Du har måske prøvet det. Du er i flow og helt varm i kinderne for ChatGPT er din mentor og forstår dig langt bedre end din chef og resten af afdelingen. Sammen er I ved udtænke verdens bedste marketingstrategi, fem minutter i deadline. Og så pludselig er det hele forbi, og du sidder svigtet, frustreret og måbende tilbage med en glemsom guldfisk, der svømmer rundt og skyder tilfældige ord og fraser til højre og venstre.

De enkelte AI-modeller har nemlig en begrænset hukommelse (eng. context window), og selvom de jævnligt får mere, så er der en øvre grænse for, hvor meget information de kan overskue på en gang. Størrelsen på hukommelsen sætter en grænse for de opgaver, vi kan bruge en AI til at løse. Det er vigtigt at vide for at kunne vælge den rigtige AI-model og for at bruge den hensigtsmæssigt og få størst mulig kvalitet ud af de svar, den producerer.

Selvom hukommelsen er en vigtig faktor, så er det ikke den eneste. Det kan du læse mere om her: 8 AI-begrænsninger du bør kende

I det følgende skal vi se på, hvordan man måler størrelsen på en AI’s hukommelse, hvilke udfordringer der er, når hukommelsen bliver for lille, og hvordan vi kan arbejde rundt om problemet, for at sikre de bedste resultater. Vi burger ChatGPT som eksempel, fordi det er den bedste og mest udbredte model, men principperne gælder også for Gemini, Claude, LLaMA og de øvrige sprogmodeller.

En AI’s hukommelse måles i tokens

Hukommelsen på en sprogmodel som ChatGPT måles i tokens. Jo flere tokens, jo mere hukommelse, og jo større og mere komplekse opgaver kan AI-modellen løse.

Vi kan bruge OpenAI’s tokenizer, til at se, hvordan ChatGPT opdeler vores tekstinput (prompts) i tokens. Hvis vi nu stiller ChatGPT-4 spørgsmålet ”Har AI-modellerne begrænset hukommelse?”, så kan vi se, at de i alt 39 bogstaver, mellemrum og øvrige tegn inddeles i 14 tokens:

Det betyder, at vi med vores lille spørgsmål har brugt de første 14 tokens af ChatGPT-4 Plus’ 32.000 tokens i den chat, vi har startet. Der er nu ca. 32.000-14=31.986 tokens tilbage i chatten til ChatGPT’s svar og vores fortsatte samtale.

Når vi kommer ud over grænsen på de 32.000 tokens, begynder ChatGPT-4 Plus at glemme, hvad vi talte om i starten af vores samtale. Den smider simpelthen de første tokens ud, så vi hele tiden befinder os i en korttidshukommelse, der består af de sidste ca. 32.000 tokens. Der er tale om et såkaldt rullende hukommelsesvindue (eng. rolling context window), og længden på dette rullende vindue er netop det antal tokens AI-modellen har i sin hukommelse. Så længe vi bliver inden for grænsen af de 32.000 tokens, så kan ChatGPT-4 Plus huske, hvad vi taler om, og den vil lære af vores samtale og kunne forbedre sine svar til os. Uden for chatten kender den slet ikke til vores samtale. Hver chat har nemlig sin egen korttidshukommelse på 32.000 tokens. Derfor er det en god ide at skifte chat, når man skifter emne.

Er vores prompts komplekse, eller skriver vi på et andet sprog end engelsk, så vil forbruget af tokens stige markant, og hukommelsen bliver tilsvarende mindre. Det vender vi tilbage til

Hvad er tokens, og hvorfor bruger sprogmodellerne dem?

Tokens er de mindste betydningsbærende enheder, som vores tekstinput til ChatGPT og dens svar til os inddeles i. Ser vi igen på eksemplet fra før, kan vi se, hvordan en token kan være et helt ord, som fx ”Har”, en stavelse som fx ”ne”, et bogstav som fx ”æ”, et tegn som fx ”?”, eller en kombination som fx ”mellemrum+h”:

Hver af disse tokens er repræsenteret af et tal i ChatGPT’s gigantiske database, som kortlægger alle ord og de sammenhænge, de kan optræde i, baseret på de enorme tekstmængder den er trænet på. På den måde kommer ChatGPT og de øvrige sprogmodeller med et kvalificeret gæt på det mest sandsynlige næste ord i sit svar. Ligesom vi kender det fra de utallige apps og programmer, der benytter autoudfyld (eng. auto complete) for at lette vores indtastning af tekst.

Her er et eksempel fra Microsoft Copilot/Bing, som gætter på, at det ord, jeg leder efter, er ”sikker”, når jeg indtaster første del af spørgsmålet fra før, ”Har AI-modellerne en”:

Ordet ”sikker” var ikke lige det ord, jeg ledte efter, det var derimod ordet ”begrænset”. Det, at en AI kan gætte forkert, er noget vi skal forholde os til, når vi prompter. Men det er en helt anden historie.

The New York Times har en fin artikel med animationer, der viser, hvordan ChatGPT gætter det næste mest sandsynlige ord i sit svar baseret på indholdet i vores samtale med den.

Tokens kan omregnes til tegn, ord eller sider

Tokens er godt for computere, men svære at forholde os til for os mennesker. Vi kan derfor omregne dem til fx tegn (bogstaver, tal, mellemrum, punktummer osv.), ord eller sider i en bog. Her er OpenAI’s tommelfingerregler: En token svarer til 4 tegn eller ¾ ord, men kun på engelsk. På andre sprog, som fx dansk, er forbruget af tokens højere. Hvorfor det er vigtigt, ser vi på senere.

I tabellen kan du se, den maksimale hukommelse for de forskellige ChatGPT-modeller målt i tokens, og hvor mange tegn, ord og sider, det nogenlunde svarer til på engelsk:

FreePlus & TeamEnterprise & API
ModelGPT-3.5GPT-4GPT-4
Tokens8k32k128k
Tegn32k128k512k
Ord6k24k96k
Sider a 320 ord1975300

Den gratis ChatGPT-3.5 har den mindste hukommelse af alle GPT-modellerne, svarende til 6.000 ord, hvorimod ChatGPT-4 Plus kan huske en chat, der er fire gange så lang. Den kan altså håndtere dobbelt så lange prompts, analysere en større datamængde og producere længere svar. De allerstørste modeller finder man i Enterprise, som kun store virksomheder for tiden har adgang til, og i de API-modeller udviklere bruger for at integrere ChatGPT i forskellige softwareprodukter som fx chatbots til online kundeservice. Enterprise har en hukommelse, der er 16 gange større end ChatGPT-3.5. Der er altså kæmpe forskel på, hvor store og komplekse opgaver, de forskellige modeller kan udføre.

Der er desværre ikke nogen tæller i ChatGPT, der kan hjælpe os med at hold øje med vores tokenforbrug, så vi får en indikation på, om vores prompts kan udføres inden for dens hukommelsen. Det er der til gengæld i Microsofts Copilot, der har en lille tæller i nederste højre hjørne, der holder øje med antallet af tegn i hver prompt, se skærmbilledet i forrige afsnit

Omregn tokens til antal ord, eller brug OpenAI’s tokenizer

Det er altså op til os selv at være opmærksomme på ikke at overskride begrænsningen i hukommelsen for den AI, vi bruger. Når det drejer sig om ChatGPT kan vi naturligvis bruge OpenAI’s tokensizer. Men vi kan også lave vores egen tommelfingerregel baseret på en omregning af tokens til tegn, ord eller sider, som vist i tabellen ovenfor. Personligt synes jeg, det er nemmest at holde øje med antallet af ord, da jeg typisk skriver mine prompts i Word. Her kan antallet af ord nemt aflæses i statuslinjen i nederste venstre hjørne.

For selvom antallet af sider er nemmere at huske end tokens, tegn og ord, så svinger antallet af ord per side temmelig meget, og er derfor svært at bruge. OpenAI siger, at ChatGPT-4 Turbo med 128.000 tokens kan håndtere prompts på omkring 300 sider. Her er tale om uspecificerede bogsider, på 320 ord pr. side, mindre end en A4-side. Jeg har nu brugt den norm alligevel, så sammenligningen af modeller i tabellen er konsistent med OpenAIs dokumentation.

Arbejder man med A4-sider, som vi jo typisk gør på kontoret, så kan der være 400-500 ord på en side med standard marginer, 1½ linjeafstand og en skriftstørrelse på 12 punkter. Men afhængigt af antallet af afsnit, mellemrubrikker og illustrationer, så endnu mindre. Sider er altså en temmelig upræcis størrelse. Så jeg anbefaler, at man bruger antallet af ord eller OpenAI’s tokenizer.

Markant højere tokenforbrug for ikke-engelske sprog

ChatGPT og de andre store sprogmodeller er primært trænet på engelske tekster, hvilket favoriserer brugen af engelsk over andre sprog. Det gælder også forbruget af tokens. Som nævnt i afsnittet ovenfor, så svarer en token i modellerne GPT-3.5 og GPT-4 til 4 tegn eller ¾ ord på engelsk. OpenAI skriver, at forbruget er højere på andre sprog. Men der står intet om, hvor stor forskellen er.

Jeg har tit undret mig over, hvorfor ChatGPT mister sin hukommelse meget hurtigere, når jeg skriver på dansk sammenlignet med engelsk. Jeg har derfor lavede en lille, helt og aldeles uvidenskabelig test for at se, hvad forskellen egentlig er på tokenforbruget for tekster skrevet på dansk sammenlignet med de tilsvarende engelske oversættelser.

Oversætter vi nu spørgsmålet ”Har AI-modellerne begrænset hukommelse?” fra eksemplet ovenfor til engelsk og sammenligner de to prompts i OpenAI’s tokenizer, så kan vi se, at den danske prompt koster 14 tokens, mens den tilsvarende engelske prompt ”Do the AI models have limited memory?” kun koster 8 tokens, for stort set samme antal tegn:

Jeg har indsat mine artikler her på bloggen i tokenizeren, og her viser det sig, at de danske originaltekster bruger ca. 48 % flere tokens end de tilsvarende engelske oversættelser! Det er ret voldsomt. Og det havde været rart, hvis OpenAI havde fortalt, hvad det egentlig har af konsekvenser, når man ikke prompter på engelsk.

Ser vi på de to eksempler, kan vi se, at det lave engelske tokenforbrug hænger sammen med, at tokens her langt oftere er hele ord, og ikke som i det danske eksempel brudt ned til endnu mindre betydningsadskillende enheder. Det danske ord ”begrænset” består således af 4 tokens, ”mellemrum+begr” + ”æ” + ”n” + ”set”, mens det tilsvarende ord på engelsk, ”limited”, består af kun en token, nemlig ”mellemrum + limited”.

ChatGPT er trænet primært på engelsk, så den er simpelthen meget bedre til engelsk end fx dansk og den håndterer engelsk på en langt mere effektiv måde. Det vil selvfølgelig ændre sig efterhånden som den bliver bedre trænet på dansk. Det hjælper også, at ChatGPT, siden jeg skrev denne artikel, er opgraderet fra 8.000 til 32.000 tokens. Men det grundlæggende problem er det samme.

Skal vi skrive prompts på engelsk?

Betyder det markant højere tokenforbrug på dansk og andre ikke-engelske sprog så, at vi bør skrive vores prompts på engelsk? Måske. Jeg bilder mig ind, at ChatGPT giver bedre resultater med engelske prompts, fordi den jo er trænet på Engelsk, og fordi den skriver bedre og mere nuanceret på engelsk. Det ville være rart, hvis OpenAI fortalte os, om vi får bedre resultater ved at prompte på engelsk.

Selv skriver jeg både danske og engelske prompts. Først og fremmest er det jo kunden, der bestemmer. De skal jo kunne forstå, vedligeholde og ændre dem efter behov. Men kan man selv vælge, så anbefaler jeg det sprog, hvor man er mest fortrolig med fagordene i forhold til den konkrete opgave, så man kan skrive så præcist og kortfattet som muligt. Det er nemlig et af de allervigtigste promptprincipper, hvis man vil have et godt svar fra sin AI. Ellers må man lære at skrive professionelle prompts på engelsk for at få det fulde udbygge af sin AI. Det vil desværre gøre prompt-brugervenligheden mindre for mange, da det i forvejen kan være svært at skive gode prompts.

Det øgede tokenforbrug for ikke-engelske sprog har også en økonomisk betydning for API-modellerne, hvor man betaler for det samlede antal tokens i både input og output. Konsekvensen kan være, at man føler sig fristet til at vælge en billigere og mindre kapabel model, hvilket kan gå ud over brugertilfredsheden og konkurrenceevnen, for de AI-produkter man udvikler.

Sådan håndterer du en AI's begrænsede hukommelse

Det er ikke sådan, at der er en fast tokengrænsen, for hvornår en AI begynder at glemme, hvad vi netop taler om. Der er tale om en glidende overgang. Man skal være opmærksom på detaljerne. Først laver den små fejl, så lidt flere, for så pludselig fuldstændig at miste sin korttidshukommelse og ikke ane, hvad vi netop talte om. Eller den går bare helt i stå.

Dette er særligt vigtigt at huske, når du dine prompts er skrevet på et andet sprog end engelsk, eller de er komplekse, da AI-modellernes hukommelse dermed reduceres, og de ikke kan håndtere lige så store opgaver, som når vi prompter på engelsk, som de jo er trænet på.

Her er en række råd til, hvordan du får mest mulig kvalitet ud af størrelsen på hukommelsen for den AI, du arbejder med:

  • Skriv kun om et emne pr. chat, og skift til en ny chat med en ny og frisk korttidshukommelse, når du skifter emne.

  • Når du har en længere samtale med din AI, så kan det være nødvendigt med mellemrum at gentage vigtige informationer, så den ikke glemmer dem, efterhånden som de ryger ud ad dens rullende hukommelsesvindue (eng. context window).

  • Test grænsen for hukommelsen på din AI, så du ved, hvordan den reagerer, og hvilke tegn du skal være opmærksom på, når den ikke længere kan huske alle de informationer, du har givet den.

  • Find ud af hvor mange tokens, den AI, du bruger, har. Lav dernæst en tommelfingerregel for, hvad det svarer til i tegn, ord eller sider, alt efter hvad der passer dig bedst.

  • Brug OpenAI’s tokenizer til at finde ud af, hvor mage tokens dine prompts og ChatGPT’s svar bruger i alt. På den måde får du et fingerpeg, om du ligger inden for GPT-modellens rullende tokengrænse (eng. context window length).

  • Del store og komplekse opgaver og prompts op i flere mindre prompts, der hver især kan løses inden for din AI’s hukommelse, i en chat, eller inden for en request hvis du bruger API-modellerne. Outputtet af den ene prompt, kan måske tjene som input til den næste.

    Det kan også være, at du må samle de forskellige delsvar til slut og køre dem igennem en sidste prompt, før du har det endelige resultat.

  • Hvis du prompter på et ikke-engelsk sprog, så overvej at lære at skrive professionelle prompts på engelsk, for at få det fulde udbygge af din AI.

  • Hvis ingen af de ovenstående råd hjælper, kan du skifte til en større og mere kapabel AI-model.

Får AI permanent hukommelse?

Bruger du ChatGPT, kan du bruge systemprompten ”custom instructions” til at gemme vigtig information, som den så kan huske på tværs af dine chats. Det kan afhjælpe nogle af problemerne med dens korttidshukommelse, men langt fra alle.

OpenAI har udviklet en ny hukommelsesfunktion, som er ved at blive testet i beta af en lille gruppe udvalgte brugere. Det bliver virkeligt interessant at se, hvor meget den kan kompensere for ChatGPTs glemsomme korttidshukommelse. Og hvilke modsvar konkurrenterne kommer med.

Del denne artikel

Picture of Jakob Styrup Brodersen

Jakob Styrup Brodersen

Jeg har arbejdet med datadrevet online optimering i 20 år, i 5 forskellige brancher. Nu arbejder jeg som freelance CRO og AI konsulent: Jeg underviser og rådgiver i, hvordan man kan udnytte fordelene ved AI, og jeg hjælper med at skrive prompts.