Konteksti-ikkuna
Konteksti-ikkuna on mallin työmuisti. Se selittää miksi pitkä keskustelu alkaa unohtaa alkuaan, miksi iso dokumentti ei aina mahdu kerralla käsiteltäväksi ja miksi mikään ei varoita ennen kuin laatu on jo heikentynyt.
Mikä on konteksti-ikkuna?
Konteksti-ikkuna on se tokenimäärä, jonka malli voi pitää kerralla mielessään. Siihen mahtuu koko keskustelu, mukaan liitetyt tiedostot, palvelun oma järjestelmäohje ja mallin kirjoittama vastaus – ei siis pelkkä uusin viesti. Kaikki nämä kilpailevat samasta tilasta, ja kun tila loppuu, jotain on jätettävä pois.
Ikkuna on myös syy siihen, ettei malli varsinaisesti "muista" mitään. Jokaisella vuorolla sille syötetään uudelleen se osa keskustelusta, joka ikkunaan mahtuu. Mikä ei mahdu, ei ole olemassa. Se, mitä käyttäjä kokee unohtamisena, on käytännössä tilanpuutetta.
Miksi tämä on suomeksi eri asia
Konteksti-ikkunan koko ilmoitetaan tokeneina, ei sanoina eikä merkkeinä. Koska suomi pilkkoutuu mallin sanastossa useampaan tokeniin kuin englanti, sama ilmoitettu ikkuna vetää suomenkielistä tekstiä vähemmän kuin englanninkielistä. Kyse ei ole siitä, että malli ymmärtäisi suomea huonommin, vaan siitä että sama asiasisältö vie enemmän tilaa.
Käytännön seuraus on, että suomenkielinen keskustelu tai suomenkielinen dokumentti törmää ikkunan rajaan aikaisemmin kuin vastaava englanninkielinen. Eroa ei ollut julkaistu missään, joten mittasimme kertoimen itse rinnakkaisilla tekstipareilla.
Mihin konteksti-ikkuna käytännössä vaikuttaa
Ensimmäinen paikka on pitkien dokumenttien käsittely. Ikkunan koko määrittää, kuinka pitkän sopimuksen, raportin tai koodikannan malli pystyy lukemaan yhdellä kertaa niin, että se näkee alun ja lopun samaan aikaan. Jos aineisto ei mahdu, se on pilkottava osiin, ja osien välinen yhteys jää käyttäjän vastuulle.
Toinen on keskustelun alkupään unohtuminen. Pitkässä keskustelussa vanhimmat viestit tippuvat ikkunasta ensimmäisenä, ja niiden mukana lähtevät usein juuri ne ohjeet, jotka annettiin alussa: sävy, muoto, rajaukset. Malli ei kieltäydy noudattamasta niitä vaan yksinkertaisesti ei enää näe niitä.
Kolmas ja hankalin on se, ettei täyttyminen näy virheilmoituksena vaan laadun heikkenemisenä. Vastaukset muuttuvat epämääräisemmiksi, malli kysyy uudelleen jo kerrottuja asioita ja alkaa herkemmin täydentää aukkoja itse – mikä on yksi tavallisimmista hallusinaation lähteistä. Mikään ei kerro, että syy on tilanpuute, joten ongelmaa etsitään yleensä väärästä paikasta.
Liittyvät käsitteet
Token on se yksikkö, jolla ikkunan koko mitataan. Kielimalli on järjestelmä, jonka arkkitehtuuri asettaa ikkunalle rajan, ja hallusinaatio on tyypillinen oire siitä, että tarpeellinen tieto on pudonnut ikkunan ulkopuolelle. Koko sanasto on sanastosivulla.
Usein kysytyt kysymykset
Mitä tapahtuu, kun konteksti-ikkuna täyttyy?
Yleensä ei mitään näkyvää. Palvelu tiputtaa hiljaisesti pois keskustelun vanhimman osan tai tiivistää sitä, ja malli jatkaa kuin mitään ei olisi tapahtunut. Käyttäjä huomaa sen epäsuorasti: malli alkaa toistaa jo sovittuja asioita, unohtaa alussa annetun ohjeen tai vaihtaa sävyä kesken keskustelun. Rajapintaa käytettäessä tilanne on toinen, koska liian pitkä pyyntö palautuu virheenä eikä sitä suoriteta lainkaan. Juuri tämä ero tekee ikkunan täyttymisestä hankalan huomata tavallisessa chat-käytössä: laatu heikkenee ennen kuin mikään kertoo syytä.
Onko isompi konteksti-ikkuna aina parempi?
Ei automaattisesti. Iso ikkuna auttaa silloin, kun aineisto on aidosti pitkä ja sen kaikkia osia tarvitaan yhtä aikaa. Kun ikkunaa täytetään kaikella mahdollisella, olennainen hukkuu joukkoon ja vastauksen tarkkuus kärsii, koska malli painottaa herkästi alkua ja loppua keskiosan kustannuksella. Pitkä konteksti myös hidastaa vastausta ja kuluttaa käyttörajoja nopeammin. Käytännössä rajattu ja hyvin valittu aineisto tuottaa usein paremman tuloksen kuin koko arkiston kaataminen samaan keskusteluun, vaikka ikkuna riittäisi molempiin.
Kannattaako aloittaa uusi keskustelu vai jatkaa vanhaa?
Usein kannattaa aloittaa uusi. Jos aihe vaihtuu, vanha keskustelu vie tilaa ilman että siitä on hyötyä, ja malli saattaa vetää vastaukseensa piirteitä edellisestä aiheesta. Uusi keskustelu antaa puhtaan ikkunan ja tekee ohjeista taas ensisijaisia. Poikkeus on tilanne, jossa aiempi tausta on aidosti tarpeen: silloin kannattaa aloittaa uusi keskustelu ja liittää alkuun lyhyt tiivistelmä siitä, mitä on jo sovittu. Tiivistelmä vie murto-osan alkuperäisen keskustelun tilasta ja säilyttää sen, mikä oikeasti vaikuttaa vastaukseen.
Tarkoittavatko konteksti-ikkuna ja muisti samaa asiaa?
Ne sekoitetaan jatkuvasti, mutta kyse on kahdesta eri asiasta. Konteksti-ikkuna on mallin työmuisti yhden vastauksen ajan: kaikki, mitä siihen mahtuu, on mallin nähtävissä juuri nyt. Muistiominaisuus taas on palvelun päälle rakennettu toiminto, joka tallentaa keskusteluista poimittuja tietoja erikseen ja liittää niistä osan mukaan seuraaviin keskusteluihin. Muisti ei siis suurenna ikkunaa vaan päinvastoin kuluttaa siitä tilaa, koska tallennetut tiedot syötetään malliin samalla tavalla kuin muukin teksti. Ilman muistiominaisuutta malli aloittaa jokaisen keskustelun tyhjältä pöydältä.