selitetty.com

Suuret kielimallit (LLM)

Miten kielimalli toimii? Tokenit, huomio ja todennäköisyys

Kielimalli pilkkoo tekstin tokeneiksi ja ennustaa seuraavan tokenin todennäköisyysjakaumasta. Näin syntyy vastaus, ja näin syntyvät myös sen virheet.

Lyhyt vastaus

Suuri kielimalli pilkkoo tekstin tokeneiksi, muuntaa ne luvuiksi ja laskee neuroverkolla todennäköisyysjakauman sille, mikä token tulee seuraavaksi. Se poimii jakaumasta yhden tokenin, liittää sen tekstiin ja toistaa saman uudelleen. Vastaus syntyy pala kerrallaan, eikä malli hae valmista tietoa tietokannasta, vaan tuottaa tekstin joka kerta uudelleen.

Sisällys
  1. Tokenit: mitä malli oikeasti lukee
  2. Sanaupotukset ja parametrit: merkitys lukuina
  3. Transformer ja huomiomekanismi ilman matematiikkaa
  4. Laskuesimerkki: seuraavan sanan todennäköisyysjakauma
  5. Miksi malli ei osaa laskea kirjaimia, ja miksi suomi kärsii eniten
  6. Lämpötila: miksi sama kysymys antaa eri vastauksen
  7. Konteksti-ikkuna: miksi malli unohtaa
  8. Esikoulutus, hienosäätö, ihmispalaute ja päättely
  9. Usein kysytyt kysymykset
  10. Lähteet ja lisälukemista

Kielimalleista puhutaan joko taikuutena tai pelkkänä "tilastollisena papukaijana". Kumpikaan kuvaus ei auta, kun yrität arvioida, voitko luottaa saamaasi vastaukseen.

Hyödyllisempi tapa on katsoa, mitä koneessa tapahtuu, kun painat lähetä-nappia. Mekanismi on yllättävän yksinkertainen kuvata, vaikka sen toteutus on raskas. Kun ymmärrät sen, mallin oudot virheet lakkaavat olemasta arvoituksia ja muuttuvat ennustettaviksi.

Tämä artikkeli olettaa, että tiedät suunnilleen mitä tekoäly on. Termit on koottu myös digisanastoon.

Tokenit: mitä malli oikeasti lukee

Ennen kuin teksti menee malliin, se pilkotaan tokeneiksi. Token on tekstin pala, jonka pituus vaihtelee yhdestä merkistä kokonaiseen sanaan. Pilkkomissäännöt on opittu etukäteen isosta tekstimassasta niin, että yleiset merkkijonot saavat oman tokeninsa ja harvinaiset hajoavat useaksi palaksi.

Käytännössä yleinen englanninkielinen sana on usein yksi token. Harvinainen erisnimi, kirjoitusvirhe tai pitkä taivutettu suomen sana hajoaa useaksi. Malli ei näe sanoja eikä kirjaimia, se näkee vain tokenien numerotunnisteita.

Tämä ei ole tekninen sivuseikka. Tokenisointi määrää, mitä malli pystyy havaitsemaan sanan sisältä, kuinka paljon tekstiä mahtuu kerralla käsittelyyn ja kuinka kalliiksi käyttö tulee, koska hinnoittelu perustuu lähes aina tokenimäärään.

Sanaupotukset ja parametrit: merkitys lukuina

Tokenin numerotunniste ei vielä sisällä merkitystä. Seuraavaksi jokainen token muunnetaan sanaupotukseksi (embedding), eli pitkäksi lukulistaksi, tyypillisesti tuhansia lukuja pitkäksi.

Upotukset opitaan yhdessä muun mallin kanssa, ja niissä on rakennetta: samankaltaisissa yhteyksissä esiintyvät tokenit päätyvät lähelle toisiaan tässä lukuavaruudessa. Malli ei siis säilytä sanakirjamääritelmiä vaan sijainteja, jotka on viritetty ennustamaan hyvin.

Parametri on yksi mallin sisäinen luku, jota opetus säätää. Kun sanotaan, että mallissa on satoja miljardeja parametreja, tarkoitetaan sitä, että näitä säädettäviä lukuja on niin monta. Ne eivät ole faktoja eivätkä lauseita. Yksittäisestä parametrista ei voi lukea mitään, samaan tapaan kuin yhdestä aivosolusta ei voi lukea muistoa. Tieto on hajautettuna niiden yhteisvaikutukseen, ja siksi mallin sisältöä ei voi selata tai korjata kohdasta.

Transformer ja huomiomekanismi ilman matematiikkaa

Nykyiset kielimallit rakentuvat transformer-arkkitehtuurille. Sen ydin on huomiomekanismi (attention).

Kuvittele, että malli käsittelee lausetta "Anna jätti laukkunsa junaan, koska se oli raskas". Sana "se" on tyhjä ilman kontekstia. Huomiomekanismi antaa mallin katsoa samanaikaisesti kaikkia lauseen muita tokeneita ja painottaa niitä: tässä paino menee sanaan "laukkunsa" eikä sanaan "junaan".

Tekninen toteutus on kolmen lukujoukon vertailu. Jokaista tokenia kohti lasketaan kysely, avain ja arvo. Kyselyä verrataan muiden tokenien avaimiin, ja mitä paremmin ne vastaavat toisiaan, sitä enemmän kyseisen tokenin arvo vaikuttaa lopputulokseen. Tämä toistetaan rinnakkain kymmenissä huomiopäissä ja päällekkäin kymmenissä tai sadoissa kerroksissa. Alemmat kerrokset käsittelevät karkeasti sanoja ja rakenteita, ylemmät pidempiä riippuvuuksia.

Ratkaiseva ero vanhempiin menetelmiin on, että transformer käsittelee koko syötteen rinnakkain eikä sana kerrallaan. Se teki suurten mallien opettamisen käytännössä mahdolliseksi.

Laskuesimerkki: seuraavan sanan todennäköisyysjakauma

Mallin uloskäynnissä on luku jokaiselle sanaston tokenille. Nämä luvut muunnetaan todennäköisyyksiksi niin, että ne ovat positiivisia ja summautuvat yhteen. Sen jälkeen jakaumasta poimitaan yksi token.

Alla olevat luvut ovat havainnollistavia ja keksittyjä, eivät mittaustuloksia mistään todellisesta mallista. Ne on myös yksinkertaistettu sanatasolle, vaikka oikea malli laskisi tokenitasolla. Idea on kuitenkin tarkka.

Syöte 1: "Suomen pääkaupunki on"

Ehdokas Todennäköisyys
Helsinki 0,94
Turku 0,02
Tampere 0,01
kaupunki 0,01
kaikki muut yhteensä 0,02

Syöte 2: "Parasta suomalaisessa kesässä on"

Ehdokas Todennäköisyys
valo 0,11
mökki 0,09
se 0,08
lämpö 0,06
sauna 0,05
kaikki muut yhteensä 0,61

Ero on koko juttu. Ensimmäisessä tapauksessa jakauma on terävä: käytännössä mikä tahansa poimintatapa antaa saman vastauksen, ja vastaus sattuu olemaan tosi. Toisessa jakauma on lattea, eikä yksikään vaihtoehto ole oikea tai väärä.

Malli ei tiedä, kummassa tilanteessa se on. Se tuottaa yhtä sujuvan lauseen molemmissa, koska sujuvuus ei riipu jakauman terävyydestä.

Juuri tästä syntyy hallusinaatio: kun kysyt asiaa, josta mallilla ei ole vahvaa signaalia, jakauma on lattea, mutta ulos tulee silti yksi itsevarmalta kuulostava vastaus.

Miksi malli ei osaa laskea kirjaimia, ja miksi suomi kärsii eniten

Klassinen koe: pyydä mallia laskemaan, montako a-kirjainta on sanassa "vaahtokarkkitehdas". Vastaus menee usein pieleen, vaikka malli osaisi kirjoittaa esseen fonetiikasta.

Syy on tokenisoinnissa. Malli ei näe kirjainjonoa vaan muutaman palan numerotunnisteet. Kirjainten laskeminen vaatisi, että se purkaa palat kirjaimiksi muistista, laskee ne yksi kerrallaan ja pitää välisumman mielessä. Mikään näistä ei ole se tehtävä, jota varten mallia on viritetty. Sama koskee tavuttamista, riimittelyä, sanan kirjoittamista takaperin ja merkkimäärien laskemista.

Suomen kielessä ongelma kertautuu kolmesta syystä.

Agglutinaatio. Suomi taivuttaa liittämällä päätteitä perään. Yhdestä vartalosta syntyy valtava määrä muotoja: talo, talossa, taloissamme, taloissammekin. Jokainen muoto on harvinaisempi kuin perusmuoto, joten tokenisoija pilkkoo ne palasiksi, jotka eivät noudata kielen morfologiaa. Pala saattaa katketa keskeltä sijapäätettä.

Pitkät yhdyssanat. Suomessa yhdyssana kirjoitetaan yhteen, kun englannissa vastaava ilmaus on useita erillisiä sanoja. Kuuluisa esimerkki on lentokonesuihkuturbiinimoottoriapumekaanikkoaliupseerioppilas. Englanninkielinen vastine olisi jono lyhyitä, yleisiä ja siten tehokkaasti tokenisoituvia sanoja.

Aineiston määrä. Suurten mallien esikoulutusaineisto on verkkotekstiä, jossa englanti on ylivoimaisesti suurin kieli ja suomi hyvin pieni vähemmistö. Tokenisoija optimoidaan aineiston perusteella, joten se oppii tehokkaat palat englannille ja tyytyy karkeisiin paloihin suomelle. Sama vinouma koskee itse mallia: suomenkielisiä esimerkkejä harvinaisista aiheista on nähty vähemmän.

Alla havainnollistava vertailu. Todelliset paloittelut riippuvat käytetystä tokenisoijasta.

Ilmaus Karkea paloittelu Paloja
the house the / house 2
talo talo 1
taloissammekin talo / issa / mme / kin 4
juoksentelisinkohan juo / ksen / tel / isin / ko / han 6

Käytännön seurauksia on kolme. Sama teksti vie suomeksi selvästi enemmän tokeneita kuin englanniksi, joten konteksti-ikkuna täyttyy nopeammin ja käyttö maksaa enemmän. Sanan sisäinen rakenne on mallille sumeampi, joten taivutusvirheet ja oudot yhdyssanat ovat tavallisia. Ja koska suomenkielistä aineistoa on vähemmän, harvinaisia suomalaisia erisnimiä ja käsitteitä koskevat vastaukset ovat epäluotettavampia kuin englanninkieliset vastineensa.

Lämpötila: miksi sama kysymys antaa eri vastauksen

Kun jakauma on laskettu, siitä pitää poimia yksi token. Aina suurimman todennäköisyyden valitseminen tuottaa jäykkää ja toistavaa tekstiä, joten käytännössä poiminnassa on satunnaisuutta.

Lämpötila (temperature) säätää, kuinka paljon. Matala lämpötila terävöittää jakaumaa ja siirtää painoa kärkiehdokkaalle. Korkea lämpötila tasoittaa jakaumaa ja nostaa harvinaisten vaihtoehtojen mahdollisuutta. Lämpötila 0 tarkoittaa käytännössä, että kärki valitaan aina.

Kahden esimerkin ero selittää, milloin tällä on väliä. Terävässä jakaumassa lämpötilan nosto ei juuri muuta mitään. Latteassa jakaumassa se muuttaa vastauksen kokonaan. Siksi kysymykset, joissa oikea vastaus on epävarma, ovat juuri niitä, joissa saat eri vastauksen joka kerta.

Vaihtelu ei siis ole todiste siitä, että malli "miettii uudestaan". Se on merkki siitä, että jakauma oli lattea. Jos sama kysymys antaa kolme eri vastausta, älä valitse niistä mieluisinta vaan tarkista asia muualta. Jos palvelu antaa säätää lämpötilaa, laske se faktatehtävissä alas ja nosta ideointitehtävissä ylös. Aiheeseen liittyviä käytännön ohjeita on artikkelissa hyvän promptin rakenne.

Konteksti-ikkuna: miksi malli unohtaa

Konteksti-ikkuna (context window) on suurin määrä tokeneita, jonka malli voi ottaa kerralla sisään. Se kattaa järjestelmäohjeen, koko aiemman keskustelun, liitetyt tiedostot ja mallin oman vastauksen.

Malli ei säilytä keskustelua istuntojen välillä. Joka vuorolla sille syötetään koko siihenastinen keskustelu uudelleen, ja se laskee vastauksen puhtaalta pöydältä. Se, mitä kutsumme muistiksi, on siis pelkkää tekstin uudelleensyöttöä.

Kun keskustelu ylittää ikkunan koon, jotain on pudotettava. Palvelut tekevät sen tyypillisesti karsimalla vanhinta osaa tai tiivistämällä sen. Siksi keskustelun alussa annettu ohje lakkaa vaikuttamasta pitkässä istunnossa, vaikka mikään ei kerro siitä sinulle. Käytännön nyrkkisääntö: kun vastaukset alkavat lipsua annetuista ohjeista, aloita uusi keskustelu ja liitä olennaiset ohjeet uudelleen mukaan.

Muistitoiminnot, joita jotkin tekoälyassistentit tarjoavat, eivät muuta tätä. Ne tallentavat poimintoja erikseen ja liittävät ne uuden keskustelun alkuun. Se on tallennettua tekstiä, ei mallin oppimista, ja sillä on myös tietosuojaseurauksensa.

Esikoulutus, hienosäätö, ihmispalaute ja päättely

Valmis chattimalli syntyy kolmessa vaiheessa, jotka sekoitetaan usein keskenään.

  1. Esikoulutus (pretraining). Malli lukee valtavan tekstimassan ja harjoittelee vain yhtä tehtävää: ennusta seuraava token. Tässä vaiheessa syntyy kielitaito ja suurin osa siitä, mitä kutsumme mallin tiedoksi. Vaihe on laskennallisesti raskas ja tehdään harvoin.
  2. Hienosäätö (fine-tuning). Mallia jatko-opetetaan pienemmällä, huolitellulla aineistolla, jossa on ohjeita ja hyviä vastauksia. Tässä raakamalli oppii vastaamaan kysymykseen sen sijaan, että se jatkaisi tekstiä.
  3. Ihmispalautteella vahvistaminen (RLHF). Ihmiset arvioivat mallin vastauspareja ja kertovat, kumpi on parempi. Arvioista opetetaan erillinen palkkiomalli, jonka avulla kielimallia ohjataan tuottamaan vastauksia, joita ihmiset pitävät hyvinä.

Kolmas vaihe selittää yhden mallien tunnetuimmista piirteistä. Ihmisarvioijat pitivät avuliaista, varmoista ja hyvin muotoilluista vastauksista. Siksi mallit ovat kohteliaita ja myötäileviä ja siksi ne kuulostavat varmoilta myös silloin, kun jakauma oli lattea. Vaihe hioo tyyliä ja turvallisuutta, ei totuudenmukaisuutta suoraan.

Kaikkien vaiheiden jälkeen alkaa päättely (inference). Silloin parametrit ovat lukossa ja malli vain laskee. Se ei opi keskustelustasi mitään, eikä se voi korjata omaa muistiaan, vaikka osoittaisit virheen. Korjaus vaikuttaa vain käynnissä olevaan keskusteluun, koska korjauksesi on nyt osa syötettä.

Usein kysytyt kysymykset

Mitä token tarkoittaa käytännössä?

Token on tekstin pala, jonka malli käsittelee yhtenä yksikkönä. Se voi olla kokonainen yleinen sana, sananosa, välimerkki tai välilyönti. Palvelujen hinnoittelu ja rajoitukset lasketaan tokeneina, ja suomenkielinen teksti kuluttaa niitä enemmän kuin saman sisältöinen englanninkielinen teksti.

Miksi kielimalli ei osaa laskea?

Malli ei suorita laskutoimitusta vaan ennustaa, miltä vastaus tyypillisesti näyttää. Yksinkertaiset laskut osuvat oikein, koska ne esiintyivät aineistossa usein. Monimerkkiset luvut menevät pieleen, koska numerot pilkkoutuvat tokeneiksi eikä mallilla ole erillistä laskuyksikköä. Monet palvelut kiertävät tämän ajamalla laskun erillisellä työkalulla.

Ymmärtääkö kielimalli suomea yhtä hyvin kuin englantia?

Ei keskimäärin. Kielioppi ja arkinen sujuvuus ovat hyvällä tasolla, mutta suomenkielinen opetusaineisto on murto-osa englanninkielisestä ja tokenisointi on suomelle tehottomampaa. Ero näkyy selvimmin harvinaisissa aiheissa, suomalaisissa erisnimissä ja tarkoissa yksityiskohdissa.

Mitä lämpötila-asetus tekee?

Lämpötila säätää, kuinka rohkeasti malli poimii seuraavan tokenin todennäköisyysjakaumasta. Matala arvo tuottaa toistettavaa ja varovaista tekstiä, korkea arvo vaihtelevaa ja luovempaa mutta virhealttiimpaa. Asetus ei vaikuta siihen, mitä malli tietää, vain siihen, miten se valitsee.

Miksi malli unohtaa, mitä sanoin aiemmin?

Koska keskustelu mahtuu konteksti-ikkunaan vain tiettyyn pituuteen asti. Sen jälkeen vanhinta osaa karsitaan tai tiivistetään. Malli ei myöskään säilytä mitään keskustelujen välillä, ellei palvelussa ole erillistä muistitoimintoa, joka tallentaa poimintoja tekstinä.

Voiko kielimallin vastauksesta nähdä, kuinka varma se on?

Ei luotettavasti. Mallin sanamuoto ("olen varma", "todennäköisesti") on sekin ennustettua tekstiä eikä mittari sisäisestä jakaumasta. Vastauksen sävy kertoo enemmän hienosäädön tyylistä kuin väitteen paikkansapitävyydestä. Tarkistuskäytäntöjä käsitellään promptin tarkistuslistassa.

Takaisin ylös