A tokenfalon túl: miért romlik el az AI-társak kontextusa
A legtöbb AI-társ élesen kezd, aztán ködössé válik. Nem arról van szó, hogy a modell elveszti az érdeklődését — egyszerűen kicsúszik a látómezejéből a beszélgetés.
A memória illúziója
Egy tipikus AI-társsal töltött első óra különös élmény. Felveszi a fonalat, emlékszik a testvéred nevére, visszautal a két jelenettel korábbi vitátokra. Olyan, mintha valóban ismerne.
Aztán valahol a harmincadik üzenet környékén sodródni kezd. Olyasmire kérdez rá, amit már megválaszoltál. Egy szereplő, aki elhagyta a szobát, egyszer csak megszólal. A tegnapi seb pedig kezelés nélkül begyógyul.
Semmi nem 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 a kérésnek pedig van egy méretkorlátja: a kontextusablak. Ha túlléped, a legrégebbi részek kiesnek. Az első jeleneteid lecsúsznak a hátulján, és a modell szemszögéből nézve soha meg sem történtek.
Így néz ki valójában a kontextusromlás
A legtöbb társalapú alkalmazásban a hiba ritkán látványos. Lassan tűnik el a részletesség — ezért olyan könnyű arra fogni, hogy a modell „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 észrevétlenül visszalazul a semleges állapotba.
- Megfordulnak a lefektetett tények. A szereplő, aki nem tud úszni, egyszer csak úszni megy.
Külön-külön mindegyik csak egy vállvonás. Együtt viszont ez választja el a történetet a kellemes, összefüggéstelen jelenetek sorozatától — és ezért fullad ki olyan gyakran a hosszú szerepjáték ahelyett, hogy véget érne.
Négy módszer a múlt megőrzésére
Négy elterjedt megközelítés létezik, és mindegyik máshol mond csődöt.
| Megközelítés | Hogyan őrzi meg a múltat? | Hol hibázik? |
|---|---|---|
| Csúszó ablak | Az utolsó N üzenet, szó szerint | Minden régebbi egyszerűen eltűnik. Tökéletes felidézés az ablakon belül, teljes amnézia azon kívül. |
| Rendkívül nagy ablak | Tízezrek vagy százezrek tokenben, szó szerint | A költség és a késleltetés minden fordulóval nő, a figyelem pedig elvékonyodik a hosszú kontextus közepén — a modell láthat egy részletet, mégsem tulajdonít neki jelentőséget. |
| Vektoralapú visszakeresés (RAG) | A korábbi üzenetek beágyazása és hasonlóság szerinti keresése | Olyan szöveget ad vissza, amely relevánsnak hangzik. Nem tudja, mi igaz 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állapot | A tények, szereplők, kapcsolatok és események folyamatos rögzítése | Valódi munkát igényel a karbantartása, és csak annyira jó, amennyire pontosan vezetik — ami nincs feljegyezve, az elvész. |
Olyan világot akartam, amely leírja és megőrzi, mi történik benne. Amikor emlékszik a harmadik közös estétekre, az azért van, mert valóban ott volt.
A projectDigo alapítója
Miért nem megoldás a nagyobb ablak?
A kézenfekvő megoldás az ablak óriásira növelése. Ez egyben a legdrágább lehetőség is, és nem azt nyújtja, amit remélnél tőle.
A teljes kontextust minden egyes fordulóban újra elküldik és újra beolvassák, így egy százezer tokennyi előzményt hordozó beszélgetés minden üzenetnél ismét kifizeti ennek az árát — és minden válaszra tovább kell várni. Ráadásul a modell nem egyenletesen olvas egy nagyon hosszú kontextust: amit a szereplőd negyven jelenettel korábban mondott, technikailag jelen lehet, a gyakorlatban mégis láthatatlanná válik.
A nagy ablak időt nyer. A probléma természetét azonban nem változtatja meg, mert nem a kapacitás a gond — hanem az, hogy semmi nem dönti el, mi fontos.
Mit csinálunk helyette?
A projectDigo nyilvántartja a történetet.
Ami számít — kik léteznek benne, mi történt közöttük, és mi igaz éppen most — a történet saját állapotában marad meg, nem pedig egy olyan beszélgetésben, amely előbb-utóbb kicsúszik a látómezőből. A későbbi jelenetek erre az állapotra épülnek. A négyszázadik jelenet tudja, mit fektetett le a harmadik, mert a harmadikat rögzítettük, nem csak kimondtuk.
Ennek a nyilvántartásnak a felépítésén, naprakészen tartásán és újbóli felhasználásán dolgoztunk a legtöbbet — és ezt a részt megtartjuk magunknak. Amit nyújt, az könnyen érthető: olyan folytonosságot, amely bármilyen hosszú játék során kitart.
Az őszinte kompromisszum
Ennek ára van. Egy nyilvántartás vezetése jelenetenként több munkát igényel, mint egyszerűen továbbküldeni az átiratot, és a történet csak arra emlékezhet, amit érdemes volt rögzíteni — ami kimarad, az ugyanúgy elvész, mintha a csúszó ablak ejtette volna ki.
Cserébe a történet felhalmozódik. Tíz óra után a világnak már olyan múltja van, amelyre rá tudsz mutatni, a szereplők pedig úgy viselkednek, mint akik valóban ott voltak.
Gyakori kérdések
Miért nem használunk egyszerűen egymillió tokenes kontextusablakkal rendelkező modellt?
Mert minden fordulóban kifizeted a teljes kontextus árát — pénzben és várakozási időben is —, ráadásul a figyelem elvékonyodik egy nagyon hosszú kontextus közepén: 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ódik hozzá, de nem ugyanaz. A visszakeresés a kérdéshez hasonló részeket talál, ami hasznos keresésnél, de megbízhatatlan annak megállapításában, mi igaz jelenleg: egy tény és annak későbbi helyesbítése egyaránt jó találatnak tűnik. A történetállapot nem hasonlóan hangzó szöveget, hanem állapotot őriz — azt, ami most igaz.
Milyen régre tud valójában visszaemlékezni egy szereplő?
A projectDigóban a munkamenet kezdetéig. Ami megmarad, az a történet állapota, nem minden egyes üzenet pontos megfogalmazása, ezért az emlékezés nem romlik a munkamenet hosszával.
Mondhat a modell olyat, ami ellentmond a saját emlékeinek?
Igen — ezért ellenőrzi a projectDigo a következetességet, mielőtt a jelenet eljut hozzád. Általában olyan helyesbítés történik, amelyet észre sem veszel. Semmi nem szűr ki mindent, de a hibázás állandó sodródás helyett alkalmi botlássá válik.