Skip to main content

A tokenfalon túl: miért romlik az AI-társak kontextusa?

Minden AI-társ élesen kezd, aztán egyre homályosabbá válik. Nem arról van szó, hogy a modell elveszti az érdeklődését — egyszerűen kicsúszik a beszélgetés abból az ablakból, amelyet még lát.

A memória illúziója

Az első óra egy AI-társsal zavarba ejtően hiteles. Felveszi a fonalat, emlékszik a testvéred nevére, visszautal a két jelenettel korábbi vitátokra. Olyan érzés, mintha ismerne téged.

Aztán úgy a harmincadik üzenet környékén elkezd sodródni. Olyasmire kérdez rá, amire már válaszoltál. Egy szereplő, aki elhagyta a szobát, hirtelen megszólal. A tegnapi seb magától begyógyul, anélkül hogy bárki ellátta volna.

Semmi sem romlott el. Egyszerűen elérted annak a határát, amit a modell még látni képes.

A nyelvi modellnek nincs hívások közötti memóriája. Minden forduló új kérés, amely magával viszi az egész beszélgetést, ennek pedig méretkorlátja van — ez a kontextusablak. Amikor a beszélgetés túlnő rajta, valaminek ki kell esnie, és mindig a legrégebbi anyag távozik. Az ablak előrecsúszik. Az első jeleneteid lepotyognak a hátulján, és a modell szemszögéből úgy tűnik, mintha soha meg sem történtek volna.

Így néz ki valójában a kontextusromlás

A hiba ritkán látványos. A részletek lassú elvesztéséről van szó, ezért olyan könnyű azt mondani a modellre, hogy „lusta”.

  • Összemosódnak a nevek. Két mellékszereplő eggyé olvad, vagy egy már használt nevet kap valaki új.
  • Elpárolognak az ígéretek. A szereplő, aki megesküdött, hogy találkozik veled a kikötőben, fogalma sincs, miről beszélsz.
  • Lenullázódik a tét. Az adósság, a sérülés, a titok, amelyet valaki őriz — a történet csendben visszalazul a semleges állapotba.
  • Megfordulnak a rögzített tények. A szereplő, aki nem tud úszni, elmegy úszni.

Külön-külön mindegyikre csak legyintene az ember. Együtt azonban ezek jelentik a különbséget egy történet és kellemes, egymástól elszigetelt jelenetek sora között — és ezért fullad ki olyan gyakran a hosszú szerepjáték ahelyett, hogy véget érne.

Három módszer egy beszélgetés megtartására

Nagy vonalakban három megközelítés terjedt el, és mindegyik máshol vall kudarcot.

MegközelítésHogyan őrzi meg a múltat?Hol törik el?
Csúszó ablakAz utolsó N üzenet szó szerintMinden régebbi egyszerűen eltűnik. Tökéletes felidézés az ablakon belül, teljes amnézia azon kívül.
Nagyon nagy ablakTízezres vagy százezres nagyságrendű tokenmennyiség, szó szerintA költség és a késleltetés minden fordulóval nő, a figyelem pedig elvékonyodik egy hosszú kontextus közepén — a modell láthat egy részletet, mégsem tulajdonít neki kellő súlyt.
Vektoros visszakeresés (RAG)A korábbi üzenetek beágyazása és hasonlóság szerinti kereséseOlyan szöveget ad vissza, amely relevánsnak hangzik. Nem tudja, mi érvényes jelenleg, ezért egy tény és annak későbbi helyesbítése egyformán jó találatnak tűnik.
Strukturált történetállapotA tények, szereplők, kapcsolatok és események menet közbeni rögzítéseFordulónként egy külön lépésbe kerül a karbantartása, és csak annyira jó, amennyire az adatkinyerő hajlandó feljegyezni.

A harmadik napon elfelejtette a nevemet. Nem a szereplő — a történet.

Egy zárt bétateszt játékosa

Miért nem a nagyobb ablak a megoldás?

Az elsőként kínálkozó megoldás az ablak óriásira növelése. Ez egyben a legdrágább megoldás is, és nem azt nyújtja, amiben sokan reménykednek.

Először is ott az ár és a sebesség. A teljes kontextust minden egyes fordulóban újra el kell küldeni és újra kell olvasni. Egy beszélgetés, amely százezer tokennyi előzményt cipel, minden új üzenettel ismét kifizeti ezeknek a tokeneknek az árát, és minden válaszra tovább kell várni. Egy olyan történetben, ahol minden forduló számít, ezt megérzed.

Másodszor — és ez makacsabb probléma — a modell nem egyenletesen figyel egy nagyon hosszú kontextus minden részére. Az elején és a végén lévő anyag jobban célba ér, mint ami középen van. Így az a döntő mondat, amelyet a szereplőd negyven jelenettel korábban ejtett el, technikailag jelen lehet, a gyakorlatban mégis láthatatlanná válik.

A nagy ablak időt vesz. A probléma alakján azonban nem változtat, mert nem a kapacitás a gond — hanem az, hogy semmi sem dönti el, mi számít.

Mi mást csinálunk?

A projectDigo nem a teljes leiratot próbálja magával cipelni. Nyilvántartást vezet.

Minden forduló után egy külön feldolgozási lépés elolvassa, mi történt, és rögzíti a változásokat: ki volt jelen, mi vált biztossá, mit tud vagy akar most valaki, mi sérült meg, mennyi az idő. Ezek a bejegyzések csak hozzáfűzhetők — egy későbbi tény nem törli a korábbit, hanem felülírja annak érvényességét, így egy kapcsolat története követhető marad ahelyett, hogy egyszerűen felülíródna.

Mielőtt megszületik a következő forduló, a nyilvántartásból újra összeáll egy rövid eligazítás: mennyi az idő, hol vagyunk, ki van a szobában, mi maradt rendezetlen, minek kell továbbra is igaznak maradnia. A narrátormodell a történet jelenlegi állapotát tényekként kapja meg, nem pedig arra kérjük, hogy egy olyan leiratból következtesse ki, amelyből ezek a részletek már kikoptak.

Így a folytonosság többé nem attól függ, milyen hosszú a beszélgetés. A négyszázadik jelenet tudja, mit rögzített a harmadik, mert a harmadik le lett írva.

Az őszinte kompromisszum

Ennek ára van. Fordulónként egy további modellhívást igényel, és csak azt tudja megjegyezni, amit az adatkinyerési lépés érdemesnek tartott rögzíteni — ha az adatkinyerő elsiklik egy részlet fölött, az éppúgy elveszik, mintha egy csúszó ablak ejtette volna ki.

Amit cserébe ad, az egy felhalmozódó történet. Tíz óra elteltével a világnak már van története, amelyre rá tudsz mutatni, a szereplők pedig úgy viselkednek, mint akik valóban ott voltak mindennek a közepén.

Gyakori kérdések

Miért nem használunk egyszerűen egy egymillió tokenes kontextusablakkal rendelkező modellt?

Mert minden fordulóban a teljes kontextusért fizetsz — pénzben és késleltetésben egyaránt —, és mert a figyelem egy nagyon hosszú kontextus közepén elvékonyodik: egy részlet jelen lehet, mégis gyakorlatilag figyelmen kívül maradhat. A nagy ablak csak elodázza a kontextusromlást, nem szünteti meg.

Ez ugyanaz, mint a RAG?

Kapcsolódó, de nem azonos megoldás. A visszakeresés olyan részleteket talál, amelyek hasonlítanak a kérdésre. Ez hasznos, ha valamire rá akarsz keresni, de megbízhatatlan annak megállapításában, mi érvényes jelenleg: egy tény és annak későbbi helyesbítése egyaránt jó találatnak tűnik. A történetnyilvántartás állapotot tárol — ez most igaz, az pedig felülírta ezt —, nem pedig hasonlóan hangzó szövegeket.

Meddig tud ténylegesen visszaemlékezni egy szereplő?

Az ülés kezdetéig. Nem minden üzenet szó szerinti megfogalmazása marad meg, hanem a rögzített állapot — tények, kapcsolatok, események, sérülések és ígéretek —, ezért az emlékezet nem romlik a munkamenet hosszával.

Előfordulhat, hogy a modell ellentmond a saját emlékeinek?

Igen, és éppen ezért vannak a generálás utáni ellenőrzések: ha egy válasz megszeg egy rögzített tényt, a rendszer elkapja és újraíratja, mielőtt megjelenne. Egyetlen rendszer sem szűr ki mindent, de a hiba ritka korrekcióvá válik az állandó sodródás helyett.

← Összes írás