Tovább a tartalomhoz

Beszélgetési előzmények

Egy hosszú beszélgetés kemény falba ütközik: a modell kontextusablakába. Ezen az oldalon minden e fal miatt létezik, és az igazán érdekes rész az, hogy mi kerül kidobásra, mi marad meg, és mi hozható vissza.

Négy mód a kontextus visszanyerésére

Szekció neve “Négy mód a kontextus visszanyerésére”

Ezek nem annyira alternatívák, mint inkább egy létra, a legolcsóbbal kezdve.

Mechanizmus Költség Megőrzi Elveszíti
Kihagyás Semmi A narratíva minden szavát Az eseménytelenebb régebbi eszközeredményeket
Képek elhagyása Semmi A körülöttük lévő szöveget A régi képernyőképeket
Pillanatképek Semmi Minden szót, pixelként Az olvashatóságot nem látó modell számára
Összefoglaló Egy modellhívás Egy narratívát Azokat a részleteket, amelyeket nem választott ki

A kihagyás és a képek elhagyása fut először, mert ingyenesek, és abban az értelemben veszteségmentesek, ami számít: olyan terjedelmet dobnak el, amelyet senki sem olvasott volna újra.

Miért az összefoglaló az utolsó lehetőség

Szekció neve “Miért az összefoglaló az utolsó lehetőség”

A négy közül az összefoglaló az egyetlen, amely modellhívást költ el, és az egyetlen, amely helyetted dönti el, mi volt fontos. Mindkettő valódi költség. A hívás az érdekesebb, amiatt, hogy mikor történik.

A tömörítés általában a fal előtt jár, egy küszöbértéken. De reaktívan is fut, miután maga a szolgáltató túl nagyként utasítja el a kérést — a heurisztikus becslés alábecsülte azt, amit a szolgáltató ténylegesen mért. Ebben a helyzetben az összefoglaló tömörítőnek kérést kell indítania a kontextus zsugorításához, és az a kérés, amit indít, éppen az, amelyik az előbb túlcsordult.

A pillanatkép-tömörítés a kidobott előzményeket sűrű pixellapokra rajzolja, és képként adja vissza.

A feltevés alapja egy számlázási sajátosság: a látó modell egy képért fix vagy területtel arányos díjat számít fel, amelynek semmi köze ahhoz, hány karakter van benne. Tizenkétezer karakter kidobott beszélgetés tizenkétezer karakter értékű szövegtokenbe kerül. Ugyanaz a tizenkétezer karakter egyetlen lapra rajzolva egy képbe kerül.

Amiért érdemes a birtoklása, nem csupán ötletes, az az, hogy nincs szüksége modellhívásra, kulcsra és hálózatra. Ez az egyetlen stratégia, amely a túlcsordulás utáni helyreállítás során mindig elérhető.

A rekonstrukció alakja: szó szerinti eleje, képre vitt közepe, szó szerinti vége. Az eleje a feladat és a megkötések, amelyekre minden későbbi rész visszautal; a vége az, ahol a munka éppen tart. A közepe az, amit a legkevesebbet olvasnak újra, és a legtöbbe kerül.

A pillanatképek minden menetben a megtartott forrásszövegből rajzolódnak újra, soha nem az előző menet pixeljeiből. Egy kép képként való feldolgozása tömörítésenként egy generációval rontja a karaktereket, amíg semmi sem tudja elolvasni őket.

Történelmileg minden harness-futtatás üres előzményekből indult, és a folytonosságot a promptban lévő <context> blokkból építette újra — a beszélgetés összefoglalójából, nem magából a beszélgetésből. Ebből három dolog következett:

  • A folytatás újraelmondás volt. A modell soha nem látta a saját korábbi gondolatmenetét vagy az eszközei által visszaadott tényleges bájtokat, csak azok leírását.
  • A visszatekerés meghalt a folyamattal. A checkpoint egy index az élő üzenetlistába, így egy újraindulás elveszítette az összes címkét, amelyet a modell beállított.
  • Az újrapróbálás nem tudta megkülönböztetni a „nincs mit újrapróbálni” esetet a „nincs betöltve” esettől. Újraindulás után a sikertelen kör mindkét esetben eltűnik az élő állapotból.

Mindhármat az átirat megőrzése oldja meg. Minden körhatáron mentődik, és soha nem a kör közben: az eszközhívás és annak eredménye között rögzített előzményt egyetlen szolgáltató sem fogad el, így az abban a pillanatban bekövetkező összeomlás az előző kört állítja vissza, nem egy fél kört, amelyet nem lehet újrajátszani.

A folytatott futtatás a legújabb üzeneteire vágódik, olyan határnál vágva, amely nem árva eszközeredmény — az olyan eredmény, amelynek hívását levágta, olyan kérés, amelyet a szolgáltatók egyenesen elutasítanak, és a küldhetetlen átirat rosszabb a rövidnél.

Minden üzenet rögzíti, hogy melyiktől folytatódik, és minden beszélgetés megnevezi a jelenlegi ágcsúcsát. Ez az egyetlen döntés maga a teljes funkció.

Az elágaztatás nem ír semmit. A mutatót mozgatja. Az elhagyott útvonal továbbra is ott van, így a visszaváltás egy újabb mutatómozgatás, nem helyreállítás — és ha egy promptot szerkesztve újrafuttat, nem veszíti el azt a választ, amelyhez éppen hasonlított.

Enélkül a visszalépés minden formája kénytelen elrejteni vagy törölni az üzeneteket, a rejtés pedig olyan hazugság, amelyen a következő olvasó nem lát át.

Ág Fork
Mi történik A mutató elmozdul Az útvonal másolódik
Hová kerül Ugyanaz a beszélgetés Új beszélgetés
Költség Semmi Az ág egy másolata

A fork friss azonosítókkal másol, nem sorokat oszt meg. A sorokat megosztó két beszélgetés megmutatná egymás későbbi üzeneteit, és pontosan ezt nem szabad egy fork-nak tennie.

A visszatekerés ugyanazon a mutatón utazik

Szekció neve “A visszatekerés ugyanazon a mutatón utazik”

A futáson belüli checkpoint / rewind pár egy tiszta körhatárt jelöl meg, és egy felfedezés után oda tér vissza, megőrizve egy kivonatot. Mivel a checkpointok az átirat mellett tárolódnak, egy újraindítás előtt beállított címke továbbra is oda érkezik, ahová beállították. Az a checkpoint, amelynek célpontja nem élte túl a levágást, eldobódik, nem a megmaradt legközelebbi pontra igazítódik — „a címkéhez” visszatekerni és máshová érkezni pontosan az a hiba, amelyet egy címke hivatott megakadályozni.