Hva er et kontekstvindu?

Av Weapp · Oppdatert

Et kontekstvindu er alt en språkmodell kan se samtidig når den svarer: systeminstruksjoner, hele samtalehistorikken og materialet du har lagt ved. Det fungerer som et arbeidsminne som tømmes mellom øktene. Når vinduet blir fullt, faller de tidligste delene bort eller blir kuttet, og modellen mister det den ikke lenger ser.

Et kontekstvindu er alt en språkmodell kan se på én gang når den formulerer et svar. Det rommer tre ting: instruksjonene som styrer modellen, hele samtalen så langt og materialet du har matet inn, for eksempel et dokument du har limt inn. Utenfor vinduet finnes det ingenting modellen kan støtte seg på.

Den beste sammenligningen er et arbeidsminne. Modellen har ikke noe varig minne om tidligere samtaler. Hver økt begynner med et tomt bord, og på det bordet ligger bare det som får plass akkurat nå. Det er en avgjørende forskjell fra hvordan vi selv husker ting, og det forklarer mye av hvordan AI-løsninger oppfører seg i praksis.

Hva som får plass i vinduet

Størrelsen måles i tokens, altså tekstbiter omtrent på størrelse med en orddel. Alt konkurrerer om den samme plassen: systeminstruksjonen, hver tidligere replikk i samtalen, det du spør om nå og svaret modellen holder på å skrive. Jo mer historikk som samles, desto mindre plass blir det igjen.

Det betyr at en lang samtale gradvis fyller vinduet. I begynnelsen er det god plass, men etter mange nok replikker begynner det å bli trangt. Og når det blir trangt, må noe vike.

Hva som skjer når vinduet blir fullt

Når tekstmengden overstiger størrelsen på vinduet, faller de eldste delene bort eller blir kuttet. Modellen glemmer ikke aktivt, den ser bare ikke lenger det som er skjøvet ut. Forskjellen betyr noe: Modellen merker det ikke selv og gir sjelden beskjed om at noe har falt bort.

Et konkret eksempel: Du ber en modell holde styr på tre krav til en app mens dere resonnerer dere gjennom detaljene. Samtalen blir lang. Ved det femtiende innlegget nevner du krav nummer én igjen, men det første kravet ligger ikke lenger i vinduet, så modellen svarer som om det aldri er blitt sagt. Det har ikke oppstått noen feil. Informasjonen er bare ute av syne. Det er derfor lange AI-samtaler noen ganger virker glemske: De har rett og slett mistet sin egen begynnelse.

Hvorfor store vinduer ikke gjør RAG overflødig

Når vinduene vokser, er det fristende å tenke: Bare putt inn alle dokumentene, så slipper vi bryet. I praksis faller det på to punkter.

  • Kostnaden. Modellen tar betalt per token, og hele innholdet sendes med ved hvert spørsmål. Et stort dokument som ligger i vinduet, betales for igjen og igjen, for hver nye replikk i samtalen.
  • Presisjonen. Jo mer tekst modellen skal lete i, desto lettere går den glipp av den riktige detaljen. Et relevant avsnitt drukner i en stor masse, og svarene blir vagere i stedet for skarpere.
TilnærmingKostnad per spørsmål
Alt i kontekstvinduetHøy, hele materialet betales hver gang
RAG henter relevante avsnittLavere, bare det nødvendige sendes inn

Alternativet er RAG, der systemet henter nettopp de avsnittene som er relevante for spørsmålet, og sender inn bare disse. Vinduet holdes lite og fokusert, kostnaden nede og treffsikkerheten oppe. Et stort kontekstvindu er altså praktisk, men det erstatter ikke en gjennomtenkt metode for å velge ut riktig grunnlag. Å fylle et stort vindu med alt er omtrent som å svare på et spørsmål ved å lese hele biblioteket: Det går, men det er dyrt, og det er lett å gå glipp av riktig side.

Avgrensning mot minne og trening

To begreper blandes ofte sammen med kontekstvinduet, og det er verdt å holde dem fra hverandre.

Det ene er modellens trening. Det modellen «kan» generelt, kommer fra treningen og sitter fast i modellen. Kontekstvinduet er noe annet: det midlertidige grunnlaget den får for akkurat dette spørsmålet. Treningen er langtidsminnet, vinduet er arbeidsminnet for øyeblikket.

Det andre er et minne som bygges separat. Vil dere at en tjeneste skal huske en bruker mellom samtalene, holder ikke vinduet fordi det tømmes. Da bygger man en egen funksjon som lagrer relevant informasjon og mater den inn igjen ved neste samtale. Minnet ligger altså utenfor modellen, ikke i vinduet.

Hva det betyr for deg som kjøper

Kontekstvinduet er et av begrepene som forklarer hvorfor en AI-løsning trenger mer enn bare en god modell. Skal tjenesten huske noe over tid, håndtere store dokumenter eller holde driftskostnaden nede, er det arkitekturen rundt modellen som avgjør, ikke størrelsen på vinduet i seg selv.

En vanlig felle er å tro at et større vindu løser alt. I praksis skyver det bare problemet foran seg: Kostnaden stiger, og en dag er også det store vinduet fullt. Den holdbare løsningen er nesten alltid å velge ut riktig grunnlag i stedet for å sende med alt.

En tommelfingerregel: Regn med at modellen bare vet det som ligger i vinduet akkurat nå, og bygg løsningen deretter. Vil du vite hvordan et slikt opplegg kan se ut hos dere, kan du ta kontakt med en beskrivelse av hva tjenesten skal klare.

Ofte stilte spørsmål

Måles et kontekstvindu i ord eller tegn?

I tokens, som er tekstbiter snarere enn hele ord. En token tilsvarer grovt sett et kort ord eller en orddel, og norsk tekst bruker som regel noe flere tokens enn engelsk. Når en leverandør oppgir et vindu på et visst antall tokens, er det den samlede mengden instruksjoner, historikk og svar som skal få plass der.

Hva skjer når kontekstvinduet blir fullt?

De eldste delene av samtalen faller bort eller blir kuttet for å gi plass til det nye. Modellen glemmer altså ikke aktivt, den ser bare ikke lenger det som er skjøvet ut av vinduet. Derfor kan en modell midt i en lang samtale miste noe du nevnte tidlig, uten at den merker det selv.

Gjør et stort kontekstvindu RAG unødvendig?

Nei. Å putte alt inn i et stort vindu blir dyrt fordi kostnaden følger antallet tokens, og presisjonen synker når modellen må lete etter svar i en stor tekstmasse. RAG henter i stedet bare de relevante avsnittene ved hvert spørsmål, og det blir som regel både billigere og mer treffsikkert.

Tømmes kontekstvinduet mellom ulike samtaler?

Ja. Hver nye økt begynner i praksis fra null, med mindre du bevisst mater inn tidligere informasjon igjen. Modellen har ikke noe minne som lever videre mellom samtalene av seg selv. Vil du at den skal huske noe over tid, må det bygges som en egen funksjon, for eksempel et minne eller en database.

Hvorfor blir lengre samtaler dyrere?

Fordi hele historikken sendes med på nytt ved hvert spørsmål. Jo lengre samtalen blir, desto flere tokens behandler modellen hver gang, og kostnaden regnes per token. En samtale som har vokst seg lang, kan derfor koste betydelig mer per svar enn de første replikkene, selv om selve spørsmålet er kort.