Skip to main content

Onkraj zidu žetonov: zakaj AI-spremljevalci izgubljajo kontekst

Večina AI-spremljevalcev začne ostro in konča megleno. Ne gre za to, da bi model izgubil zanimanje — pogovor preprosto zdrsne zunaj okna, ki ga lahko vidi.

A line of glowing manuscript pages leads through a dark archive hall to a framed portrait of a woman, while the other pages dissolve into ash.

Iluzija spomina

Prva ura s tipičnim AI-spremljevalcem je skoraj srhljiva. Ujame rdečo nit, zapomni si ime vaše sestre in se vrne k prepiru, ki se je zgodil pred dvema prizoroma. Zdi se, kot da vas zares pozna.

Potem pa nekje okoli tridesetega sporočila začne izgubljati smer. Vpraša nekaj, na kar ste že odgovorili. Lik, ki je zapustil sobo, nenadoma spregovori. Včerajšnja rana se zaceli, ne da bi jo kdo oskrbel.

Nič se ni pokvarilo. Preprosto ste dosegli mejo tega, kar je model še lahko videl.

Jezikovni model med klici nima spomina. Vsak korak je nova zahteva, ki s seboj prinese celoten pogovor, ta zahteva pa ima omejeno velikost — kontekstno okno. Ko ga presežete, najstarejše gradivo odpade. Vaši prvi prizori zdrsnejo čez zadnji rob in z vidika modela se niso nikoli zgodili.

Kako je razkroj konteksta videti v praksi

V večini aplikacij z AI-spremljevalci napaka le redko nastopi dramatično. Gre za počasno izgubljanje podrobnosti, zato je tako lahko krivdo pripisati temu, da je model »len«.

  • Imena se zabrišejo. Dva stranska lika se zlijeta v enega ali pa se isto ime uporabi za nekoga novega.
  • Obljube izpuhtijo. Lik, ki vam je prisegel, da se bo z vami srečal v pristanišču, nima pojma, o čem govorite.
  • Vložki se ponastavijo. Dolg, poškodba, skrivnost, ki jo nekdo skriva — zgodba se tiho vrne v nevtralno stanje.
  • Ustaljena dejstva se obrnejo na glavo. Lik, ki ne zna plavati, gre plavat.

Vsak tak zdrs zase lahko odmislite. Skupaj pa pomenijo razliko med zgodbo in nizom prijetnih, nepovezanih prizorov — zato se dolge igre vlog tako pogosto iztečejo, namesto da bi se končale.

Štirje načini, kako ohraniti preteklost

V uporabi so štirje pristopi, vsak pa odpove na drugem mestu.

PristopKako ohrani preteklostKje odpove
Drseče oknoZadnjih N sporočil, dobesednoVse starejše preprosto izgine. Popoln priklic znotraj okna, popolna amnezija zunaj njega.
Zelo veliko oknoDeset tisoč ali več sto tisoč žetonov, dobesednoStroški in zakasnitev se povečajo z vsakim korakom, pozornost pa se v dolgem kontekstu razredči — model lahko podrobnost vidi, pa ji vseeno ne pripiše teže.
Priklic vektorjev (RAG)Pretekla sporočila, pretvorjena v vektorje in poiskana po podobnostiVrne besedilo, ki zveni relevantno. Ne ve, kaj trenutno velja, zato sta dejstvo in njegova poznejša poprava videti enako dobra.
Strukturirano stanje zgodbeDejstva, liki, odnosi in dogodki, zapisani sprotiVzdrževanje zahteva konkretno delo in dobro je le toliko, kolikor je dobro zapisano — česar ne zabeležite, je izgubljeno.

Želel sem svet, ki si stvari zapisuje. Ko se spomni vajinega tretjega skupnega večera, je to zato, ker je bila takrat zares tam.

Ustanovitelj, projectDigo

Zakaj večje okno ni rešitev

Najbolj očitna rešitev je ogromno okno. Hkrati je najdražja in ne počne tega, kar ljudje pričakujejo.

Celoten kontekst se pri vsakem koraku znova pošlje in prebere, zato pogovor s sto tisoč žetoni zgodovine zanje plača ob vsakem novem sporočilu — na vsak odgovor pa tudi čaka dlje. Še huje: model zelo dolgega konteksta ne bere enakomerno. To, kar je vaš lik rekel pred štiridesetimi prizori, je lahko tehnično prisotno, v praksi pa skoraj nevidno.

Veliko okno kupi čas. Oblike težave pa ne spremeni, saj težava ni v zmogljivosti — temveč v tem, da nič ne odloča, kaj je pomembno.

Kaj naredimo mi

projectDigo ohranja zapis zgodbe.

Kar je pomembno — kdo obstaja, kaj se je med njimi zgodilo in kaj trenutno velja — je shranjeno kot lastno stanje zgodbe, namesto da bi ostalo v pogovoru, ki bo prej ali slej zdrsnil iz vidnega polja. Poznejši prizori nastajajo na podlagi tega stanja. Štiristo prizorov pozneje zgodba še vedno ve, kaj je vzpostavil tretji prizor, ker je bil tretji prizor zabeležen, ne le izrečen.

Kako ta zapis nastane, ostane ažuren in se znova uporabi, je del, ki mu posvečamo največ časa — in ki ga ohranjamo zase. Rezultat pa je dovolj preprost: kontinuiteta, ki zdrži, ne glede na to, kako dolgo igrate.

Pošten kompromis

To ni zastonj. Vodenje zapisa zahteva več dela za vsak prizor kot posredovanje prepisa, zgodba pa si lahko zapomni le tisto, kar je vredno zapisati — vse, kar uide, je izgubljeno prav tako zanesljivo, kot bi ga izgubilo drseče okno.

V zameno dobite zgodbo, ki se kopiči. Po desetih urah ima svet zgodovino, na katero lahko pokažete, liki pa se vedejo kot ljudje, ki so bili zraven.

Vprašanja, ki jih dobivamo

Zakaj preprosto ne bi uporabili modela z milijonom žetonov v kontekstnem oknu?

Ker v vsakem koraku plačate za celoten kontekst — z denarjem in časom — ter ker se pozornost sredi zelo dolgega konteksta razredči. Podrobnost je lahko prisotna, pa jo model vseeno učinkovito prezre. Veliko okno razkroj konteksta odloži, ne pa odpravi.

Je to isto kot RAG?

Povezano, vendar ne isto. Priklic najde odlomke, podobne poizvedbi, kar je uporabno pri iskanju podatkov, nezanesljivo pa pri ugotavljanju, kaj trenutno velja: dejstvo in njegova poznejša poprava sta videti kot enako dobra zadetka. Zapis zgodbe hrani stanje — kaj velja zdaj — namesto besedila, ki le zveni podobno.

Kako daleč v preteklost si lahko lik zares zapomni?

V projectDigo do začetka seje. Ohrani se stanje zgodbe, ne ubeseditev vsakega sporočila, zato priklic ne peša, ko se seja podaljšuje.

Ali si model kdaj nasprotuje v lastnem spominu?

Lahko — zato projectDigo pred prikazom prizora preveri skladnost. Običajen rezultat je popravek, ki ga sploh ne opazite. Ničesar ni mogoče ujeti vsakič, vendar občasni zdrs nadomesti nenehno izgubljanje smeri.

← Vsi članki