Kehoite vai data?

Kommentoin LinkedInissä tekoäly- ja innovaatiojohtaja Jukka Niittymaan postausta ehkä hieman provosoiden, että onko esimerkiksi OpenAI:n mallien kehoitteella mitään merkitystä saadun vastauksen hyvyyden tai huonouden suhteen: oma kokemukseni on, että hyvinkin samankaltaisilla syötteillä mallien antamat tulokset vaihtelevat erittäin huomattavasti. Taisin sohaista hieman liian isoon muurahaispesään, koska minulle tultiin siihen paljon selittämään että mistä minä voin tietää olisiko vastaus ollut parempi eri promptilla.

Lähdetään purkamaan tätä vyyhtiä.

Suuret kielimallit eli se mitä kutsutaan tekoälyksi on pohjimmiltaan koneoppimisjärjestelmä eli algoritmi tai joukko sellaisia, jotka pyrkivät jonkin opetusaineiston perusteella ennustamaan uuden, ennen näkemättömän syötteen arvon. Vaikka kielimallien opetustavat ja aineistot ovat erilaisia, pohjimmiltaan on kyse tästä. Jos GPT-4o mallin kouluttaisi omalla muistivihon sisällöllään, äidin keittokirjalla ja sillä romaanilla jota aloit kirjoittamaan vuonna 2015, mutta jätit kesken, se olisi todella huono malli eikä siitä olisi kenellekään mitään hyötyä. Mallit koulutetaan valtavalla määrällä dataa, jota on saatavilla kirjoista, internetistä, tieteellisistä artikkeleista ja ties mistä. Valtava aineisto yhdistettynä transformer-arkkitehtuuriin tekee malleista hyviä ja osaavia vastaamaan jos jonkinlaisiin kysymyksiin sekä ratkomaan lähes minkälaisia luonnollisen kielen käsittelyyn liittyviä tehtäviä.

Kun puhutaan tekoälystä, kielimalleja käytetään tyypillisesti aivan kaikkeen: jotkut kirjoittavat kielimallien avulla kirjoitukset, joita kukaan ei lue vaan pyytävät malleja tiivistämään ne, osa käyttää ohjelmoinnin tukena, osa johonkin muuhun. Kaikessa on yhteistä se, että kielimallit tuottavat vastaukset jonkin aineiston perusteella. Osassa vastauksia malli voi hyödyntää ainoastaan opetusaineistossaan olevaa dataa, kun taas osassa malli hyödyntää myös syötteessä annettua aineistoa.

Kun puhutaan koneoppimismalleista yleisesti, opetusdata noudattaa aina jonkinlaista tilastollista jakaumaa. Tilastollinen jakauma on varmaan kaikille suurin piirtein tuttu juttu, mutta lyhkäisyydessään jakauma tarkoittaa sitä miten jotkin esimerkit ovat jakautuneet otoksessa: vaikkapa ihmisten tapauksessa kyse voi olla siitä kuinka paljon eri mittaisia ihmisiä on. Koneoppimismalleihin syötetty data on myös jollain tapaa jakautunutta: jostain asioista on olemassa enemmän esimerkkejä kuin toisista ja mallien hyvyys perustuu pitkälti siihen kuinka hyvin pystytään estimoimaan tietyn syötteen (prompt) toivottua tulosta.

Mitä hyötyä syötteistä sitten on? Syötteet tuottavat mallille lisää dataa, josta se voi oppia ja tehdä päätelmiään haluttuun kysymykseen liittyen.

Oma johtopäätelmäni on edelleen se, että keskinkertaisella kehotteella saa ihan hyviä vastauksia jos mallilla on vain tarpeeksi dataa aiheesta. Jos mallilla ei ole dataa, vastaukset jättävät toivomisen varaa.