Vad är ett kontextfönster?

Av Weapp · Uppdaterad

Ett kontextfönster är allt en språkmodell kan se samtidigt när den svarar: systeminstruktioner, hela samtalshistoriken och det material du bifogat. Det fungerar som ett arbetsminne som töms mellan sessioner. När fönstret blir fullt faller de tidigaste delarna bort eller trunkeras, och modellen tappar det den inte längre ser.

Ett kontextfönster är allt en språkmodell kan se på en och samma gång när den formulerar ett svar. Det rymmer tre saker: de instruktioner som styr modellen, hela samtalet så här långt och det material du matat in, som ett inklistrat dokument. Utanför fönstret finns ingenting för modellen att stödja sig på.

Den bästa bilden är ett arbetsminne. Modellen har inget bestående minne av tidigare samtal – varje session börjar med ett tomt bord, och på det bordet ligger bara det som får plats just nu. Det är en avgörande skillnad mot hur vi själva minns saker, och det förklarar mycket av hur AI-lösningar beter sig i praktiken.

Vad som ryms i fönstret

Storleken mäts i tokens, alltså textbitar ungefär i storlek av en orddel. Allt konkurrerar om samma utrymme: systeminstruktionen, varje tidigare replik i samtalet, det du frågar om nu och det svar modellen håller på att skriva. Ju mer historik som samlas, desto mindre plats blir det kvar.

Det innebär att ett långt samtal gradvis fyller fönstret. I början finns gott om plats, men efter tillräckligt många repliker börjar det bli trångt. Och när det blir trångt måste något ge vika.

Vad som händer när fönstret blir fullt

När mängden text överstiger fönstrets storlek faller de äldsta delarna bort, eller trunkeras. Modellen glömmer inte aktivt – den ser bara inte längre det som skjutits ut. Skillnaden spelar roll: modellen märker det inte själv och signalerar sällan att något fallit bort.

Ett konkret exempel. Du ber en modell hålla reda på tre krav på en app medan ni resonerar er igenom detaljerna. Samtalet blir långt. Vid det femtionde inlägget nämner du krav ett igen – men det första kravet ligger inte längre i fönstret, så modellen svarar som om det aldrig sagts. Inget fel har uppstått; informationen är bara utanför synhåll. Det är därför långa AI-samtal ibland känns glömska: de har helt enkelt tappat sin egen början.

Varför stora fönster inte gör RAG överflödigt

När fönstren växer är det frestande att tänka: stoppa bara in alla dokument, så slipper vi krångel. I praktiken faller det på två punkter.

  • Kostnaden. Modellen tar betalt per token, och hela innehållet skickas med vid varje fråga. Ett stort dokument som ligger med i fönstret betalas om och om igen, för varje ny replik i samtalet.
  • Precisionen. Ju mer text modellen ska leta i, desto lättare tappar den rätt detalj. Ett relevant stycke drunknar i en stor massa, och svaren blir vagare snarare än skarpare.
AngreppssättKostnad per fråga
Allt i kontextfönstretHög – hela materialet betalas varje gång
RAG hämtar relevanta styckenLägre – bara det som behövs skickas in

Alternativet är RAG, där systemet hämtar just de stycken som är relevanta för frågan och bara skickar in dem. Fönstret hålls litet och fokuserat, kostnaden nere och träffsäkerheten uppe. Ett stort kontextfönster är alltså praktiskt, men det ersätter inte en genomtänkt metod för att välja ut rätt underlag. Att fylla ett stort fönster med allt är ungefär som att svara på en fråga genom att läsa hela biblioteket – det går, men det är dyrt och lätt att missa rätt sida.

Avgränsning mot minne och träning

Två begrepp blandas ofta ihop med kontextfönstret, och det är värt att hålla isär dem.

Det ena är modellens träning. Det modellen “kan” i allmänhet kommer från träningen och sitter fast i modellen. Kontextfönstret är något annat: det tillfälliga underlag den får för just den här frågan. Träningen är långtidsminnet, fönstret är arbetsminnet för stunden.

Det andra är ett byggt minne. Vill ni att en tjänst ska komma ihåg en användare mellan samtalen räcker inte fönstret, eftersom det töms. Då bygger man en separat funktion som sparar relevant information och matar in den igen vid nästa samtal. Minnet ligger alltså utanför modellen, inte i fönstret.

Vad det betyder för dig som beställare

Kontextfönstret är ett av de begrepp som förklarar varför en AI-lösning behöver mer än bara en bra modell. Ska tjänsten minnas något över tid, hantera stora dokument eller hålla nere driftskostnaden, är det arkitekturen runt modellen som avgör – inte fönstrets storlek i sig.

En vanlig fallgrop är att tro att ett större fönster löser allt. I praktiken skjuter det bara problemet framför sig: kostnaden stiger, och en dag är även det stora fönstret fullt. Den hållbara lösningen är nästan alltid att välja ut rätt underlag i stället för att skicka med allt.

En tumregel: räkna med att modellen bara vet det som ligger i fönstret just nu, och bygg lösningen därefter. Vill du veta hur ett sådant upplägg kan se ut för era behov kan du höra av dig med en beskrivning av vad tjänsten ska klara.

Vanliga frågor

Mäts ett kontextfönster i ord eller tecken?

I tokens, som är textbitar snarare än hela ord. En token motsvarar grovt ett kort ord eller en orddel, och svensk text tar oftast något fler tokens än engelsk. När en leverantör anger ett fönster på ett visst antal tokens är det den sammanlagda mängden instruktion, historik och svar som ska rymmas där.

Vad händer när kontextfönstret blir fullt?

De äldsta delarna av samtalet faller bort eller trunkeras för att ge plats åt det nya. Modellen glömmer alltså inte aktivt, den ser bara inte längre det som skjutits ut ur fönstret. Därför kan en modell mitt i ett långt samtal tappa något du nämnde tidigt, utan att den märker det själv.

Gör ett stort kontextfönster att RAG blir onödigt?

Nej. Att stoppa in allt i ett stort fönster blir dyrt, eftersom kostnaden följer antalet tokens, och precisionen sjunker när modellen får leta svar i en stor textmassa. RAG hämtar i stället bara de relevanta styckena vid varje fråga, vilket oftast blir både billigare och mer träffsäkert.

Töms kontextfönstret mellan olika samtal?

Ja. Varje ny session börjar i praktiken från noll, om du inte medvetet matar in tidigare information igen. Modellen har inget minne som lever kvar mellan samtalen av sig självt. Vill du att den ska minnas något över tid behöver det byggas som en separat funktion, till exempel ett minne eller en databas.

Varför blir längre samtal dyrare?

För att hela historiken skickas med på nytt vid varje fråga. Ju längre samtalet blir, desto fler tokens behandlar modellen varje gång, och kostnaden räknas per token. Ett samtal som vuxit sig långt kan därför kosta betydligt mer per svar än de första replikerna, även om själva frågan är kort.