Vuosi: 2024
Suomen sukukielten tekoälytutkimusta esiteltiin Metropoliassa
Metropoliassa järjestettiin The 9th International Workshop on Computational Linguistics for Uralic Languages -tapahtuma, eli tuttavallisemmin IWCLUL. Tapahtuma kokosi Arabian kampukselle suuren joukon kansainvälisiä tutkijoita, jotka tulivat esittelemään omaa kieliteknologista tutkimustaan, joka liittyi Uralilaisiin, eli suomensukuisiin, kieliin. Haasteena uhanalaisuus Uralilaisista kielistä vain suomi, viro ja unkari ovat isoja kieliä, joilla on oman valtion virallinen tuki. Muut uralilaiset kielet ovat enemmän tai vähemmän uhanalaisia. Puhujamäärät vaihtelevat niittymarin 360 000 ja ersän 300 000 puhujasta aina koltansaamen 300 ja uumajansaamen 5 puhujaan. Osalla kielistä ei ole enää äidinkielisiä puhujia jäljellä. Toivoa ei kuitenkaan ole menetetty näidenkään kielten osalta, kuten Liivi-instituutin johtaja Valts Ernštreits tapaa todeta: “aina kun viimeisen liivin puhujan uskotaan kuolleen, uusi viimeinen puhuja ilmestyy jostai pirtistä”. Jack Rueter muistutti populaarikulttuurin merkityksestä myös uhanalaisten kielten kontekstissa Moderni kieliteknologia vaatii paljon dataa, mikä osaltaan hankaloittaa pienten kielten tekoälykehitystä. Dataa on usein niukasti jos ollenkaan ja siinä on paljon variaatiota. Oikeinkirjoitussäännöt eivät usein ole yhtä selkeästi määriteltyjä ja puhujakunnan selkärankaan iskostettuja kuin valtakielten kohdalla. Suuret kielimallit puhuttivat Suuret kielimallit kuten ChatGPT eivät tällä hetkellä puhu yhtäkään pientä uralilaista kieltä, mutta tutkijat olivat keksineet tapoja saada kielimalleilta vastauksia ulos muotoilemalla kehotteen oikealla tavalla. Oman esitelmäni lisäksi myös Flammie Pirinen ja Niko Partanen raportoivat tutkimuksensa tuloksia. IWCLUL järjestettiin talkoovoimin. Kuvassa Lev Kharlashkin on kutsumassa seuraavan puhujan paikalle Suurten kielimallien ongelma myös suomen, viron ja unkarin kohdalla on se, että ne jakavat sanat pienempiin osiin, tokeneihin, englannin kielen perusteella. Tähän Iaroslav Chelombitkolla ja Aleksei Dorkinilla oli esittää ratkaisuehdotuksia. Metropolian arvot esillä Myös Metropoliassa tehty työ kestävän kehityksen ja tekoälyn saralla oli esillä tapahtumassa. Melany Macías esitteli tutkimustamme, jossa tekoäly oppii ennustamaan kestävän kehityksen tavoitteita suomeksi englanninkielisen datan perusteella. Melany Macías esitteli kestävän kehityksen tavoitteiden ennustamisen tarkkuutta
Mitä ovat suurten kielimallien tuottamat upotukset eli embeddingit?
Tavallinen käyttäjä käyttää suuria kielimalleja, kuten ChatGPT:tä, kirjoittamalla sille kehotteita (prompteja) käyttöliittymän kautta. Tämän lisäksi suuret kielimallit tarjoavat teknisesti harjaantuneille käyttäjille toisenlaisen toiminnon - upotusten (englanniksi embeddings) luonnin tekstin pohjalta. Mutta mitä nämä upotukset oikein ovat ja mihin niitä käytetään? Tekstin merkitys vektoreissa Kun suurelle kielimallille antaa tekstiä upotettavaksi, se tuottaa tulokseksi vektorin. Vektori on lista numeroita, jonka merkitys ei avaudu ihmissilmälle, mutta se avaa mahdollisuuden tutkia tekstin merkitystä matemaattisin keinoin. Näitä kielimallin tuottamia vektoreita kutsutaan upotuksiksi eli embeddingeiksi. UralicNLP-Python-kirjasto tarjoaa keinoja upottaa tekstiä eri kielimallien avulla. Tässä on esimerkki siitä, miten UralicNLP:llä voi upottaa tekstin OpenAI:n mallilla. from uralicNLP.llm import get_llmllm = get_llm("chatgpt", "VAIHDA TÄHÄN API-AVAIMESI", model="text-embedding-3-small")llm.embed("Teksti, jonka haluat upottaa")>>[-0.1803697, 1.1973963, 0.5283669, 1.5049516, -0.27077377...] Kuten esimerkistä näkee, upotuksen tulos on lista numeroita. Nämä numerot kuvastavat tekstin merkitystä, ja niiden avulla voidaan vertailla tekstien samankaltaisuutta matemaattisin keinoin. Mitä hyötyä on upotuksista? Upotusten avulla tekstimassoja voidaan tallentaa nopeasti haettaviksi vektoritietokantaan. Näin tietokantahakua ei tehdä kirjainmerkkien vaan merkityksen avulla. Yleisin käyttötapaus tällaisille vektoritietokannoille on tällä hetkellä RAG-malli. RAG tulee sanoista Retrieval-Augmented Generation ja se tarkoittaa sitä, että suurelle kielimallille haetaan kehotteen lisäksi lähdeaineistoa, jonka avulla malli tuottaa vastauksen. Lähdeaineiston hakeminen tapahtuu hakemalla upotusten avulla käyttäjän syötteeseen sopivia dokumentteja vektoritietokannasta. Esimerkiksi Metropolian oma Mikro-Mikko toimii tällä periaatteella. Upotusten avulla tekstidokumentteja voi myös ryhmitellä automaattisesti samankaltaisten tekstien ryhmiin. UralicNLP:llä tämä hoituu seuraavalla tavalla. from uralicNLP.llm import get_llmfrom uralicNLP import semanticsllm = get_llm("chatgpt", "VAIHDA TÄHÄN API-AVAIMESI", model="text-embedding-3-small")texts = [“koirat on hauskoja”, “autot ajaa nopeasti”, “kissat leikkii keskenään”, “rekat ajaa kaupungista toiseen”]semantics.cluster(texts, llm)>>[[“koirat on hauskoja”, “kissat leikkii keskenään”], [“autot ajaa nopeasti”, “rekat ajaa kaupungista toiseen”]] Tuloksena tekstit ryhmitellään samankaltaisten tekstien ryhmiin käyttäen upotuksia sekä laskien niiden samankaltaisuuden. Onko mallilla väliä upottaessa? Upotuksia voidaan tuottaa sekä kaupallisilla suurilla kielimalleilla että avoimilla kielimalleilla. Mallia valittaessa kannattaa muistaa, etteivät upotukset ole keskenään yhteensopivia. Osaa upotuksista ei siis voi tehdä OpenAI:n GPT-4:llä ja osaa avoimella LLaMA:lla, ja olettaa, että ne toimisivat yhteen. Jokainen malli on oppinut omanlaisensa merkitysrepresentaation datasta, joten upotuksen numeerinen sisältö vaihtelee eri mallien välillä. Mallia valitessa kannattaa miettiä mallin hintaa, sen tukemia kieliä sekä konteksti-ikkunaa. Suuremmat mallit voivat mahduttaa suurenkin tekstin konteksti-ikkunaan, jolloin kokonaiselle tekstille voidaan tehdä yksi upotus. Pienemmät mallit vaativat tekstin pilkkomista osiin. Tämä tekninen rajoite voi olla merkityksellinen riippuen siitä, mihin upotuksia käyttää. Kaikki mallit eivät myöskään osaa kaikkia kieliä. Jos kielimalli tuottaa kehnoa suomea vastauksena kehotteisiin, se ei todennäköisesti myöskään ymmärrä suomea kovinkaan hyvin. Tästä seuraa se, että suomenkieliselle tekstille tehtävät upotuksetkaan eivät kuvaa merkitystä riittävän hyvin.
Korvasiko generatiivinen tekoäly ihmisen luovuuden?
Generatiiviset tekoälymallit kuten ChatGPT ja Midjourney osaavat tuottaa luovaa tekstiä ja kuvia ihmistä nopeammin. Mihin tarvitaan enää runoilijoita, jos ChatGPT:ltä tulee runoja niin monta kappaletta, kuin siltä vain jaksaa pyytää? Entäpä kuvittajia? Midjourney tuottaa äärettömän hienoja kuvia jopa amatööripromptailijan käsissä. Onko todella niin, että ihmisen luovuuden voi korvata koneella? Mitä luovuus edes on? Ihmisen ja tietokoneen luovuutta on tutkittu jo pitkään. Jo kauan ennen ChatGPT:n aikaa tutkijat kehittivät tekoälymalleja, jotka tuottivat tarinoita, musiikkia ja kuvia. Tätä tieteenalaa nimitetään laskennalliseksi luovuudeksi. Ihmisen ja koneen luovuuden suhde on jo pitkään kiehtonut alan tutkijoita. Boden on yksi laskennallisen luovuuden teoreetikkoja. Hänen mukaansa luovuus voidaan jakaa kahteen kategoriaan: tutkivaan (exploratory) luovuuteen ja muuntavaan (transformational) luovuuteen. Tämä erottelu on tärkeää, kun haluamme ymmärtää laskennallisen luovuuden rajat. Tekoäly tutkimassa luovia mahdollisuuksia Tällä hetkellä kaikki suurimmat tekoälymallit kykenevät tutkivaan luovuuteen. Tämä tarkoittaa sitä, että tekoälymallit liikkuvat luovassa hakuavaruudessa ja tutkivat sieltä löytyviä vaihtoehtoja. Jos ajatellaan kuvaa, joka koostuu 512x512 pikselistä, joista jokaisen on edustettava jotain värikartan ennalta määrätyistä väreisetä, on selvää, että mahdollisten kuvien joukko on rajallinen. Tutkivasti luova tekoälymalli voi siis tuottaa kuvia vain näiden sääntöjen puitteissa - ne siis rajaavat luovan hakuavaruuden. Tekoäly tutkii sopivia pandoja rajatusta hakuavaruudesta. Kuvat on tuottanut Khalid Alnajjar. Tilanne on todellisuudessa vielä tätäkin rajatumpi. Yksikään generatiivinen tekoälymalli ei pysty tuottamaan kaikkia mahdollisia kuvia, jotka voivat esiintyä 512x512 koossa. Tekoälyn toimintaa rajoittaa myös data, jolla tekoäly on koulutettu. Jos tekoälyltä pyytää pandan kuvaa, se ei tuota kaikkia mahdollisia pandan kuvia, vain ainoastaan sellaisia pandan kuvia, jotka sopivat datasta opittuun käsitykseen pandasta. Luovuudessa rajat on tehty rikottaviksi Tutkivat luovuus on selkeästi rajoittunut johonkin hakuavaruuteen. Mutta millainen luovuus on kahlittu rajoitteisiin? Rajathan on tehty rikottaviksi! Rajoja rikkova luovuus on muuntavaa luovuutta, sillä se muuntaa hakuavaruuden rajoja. Jos minulle annetaan A4-paperi ja tehtäväksi piirtää siihen talo, luovuuteni on rajattu kaksiulotteiseen kuvaan. Ihmisenä voin ottaa paperin käsiini ja taitella siitä talon, näin olen tehnyt muuntavaa luovuutta ja muuntanut hakuavaruuden. Kolmas ulottuvuus mahdollistaa täysin erilaisten talojen tekemisen A4-paperista kuin alkuperäinen kaksiulotteinen paperi. Tekoäly ei vielä kykene rikkomaan rajoja. Yksikään suosituista tekoälytyökaluista ei osaa muntaa hakuavaruuttaan ja todeta, että en teekään kuvaa pikseleistä, vaan maalaankin sen pensselillä. Tai että kokeilenpa uutta tyylilajia, jota minulle ei edes ole koulutusdatassa opetettu. Ihmisen rooli säilyy Tekoäly pystyy tuottamaan hienoja ja luovia asioita, mutta se on kaavoihinsa kangistunut. Tekoälyn luovuus pysyy tehtävänannon ja koulutusdatan asettamissa rajoitteissa, eikä tekoäly pysty tuottamaan mitää kaavojensa ulkopuolelta. Tämä ei tarkoita sitä, etteikö tekoäly olisi luova tai että se olisi jotenkin huono luovassa työssä. Tämä tarkoittaa vain sitä, ettei sen luovuus ole vielä ihmisen tasolla. Ihmisen luovuudelle on siis vielä tarvetta jatkossakin, kunnes kehitämme kategorisesti erilaisen tekoälyn.