sunnuntai 18. kesäkuuta 2023

Tekoäly, faktat ja laskeminen

Helsingin korkein rakennus?
(© Joneikifi, CC BY-SA 4.0)

Jatkan edellisessä blogipostauksessa aloittamaani tekoälyn pohdiskelua. Viime aikoina paljon huomiota herättänyt tekoälybotti ChatGPT juttelee sujuvasti ja inhimillisesti, mutta faktat ja matemaattinen laskeminen eivät ole sen vahvoja puolia. Eikä muuta toki ole väitettykään, kyseessä on ennen muuta ns. kielimalli, ts. se on opetettu isolla tekstimassalla, minkä perusteella se rakentaa oman tekstinsä, mutta ajattelua tai edes faktakokoelmia sillä ei ole. Matematiikastakaan se ei kovin hyvin suoriudu, vaikka saa myös oikeita tuloksia; esimerkkinä vaikkapa YouTube-video Can ChatGPT Pass the Oxford University Admissions Test?.

ChatGPT muodostaa yhden askelen siinä jatkumossa, jonka tunnetuimpia palasia ovat hakukoneet, Wikipedia ja lukuisat muut verkon informaatiolähteet. Tällainen on myös kesäkuussa 1988 symbolisen laskennan ohjelmistona syntynyt Wolfram Researchin Mathematica. Historiansa aikana siihen on ympätty — usein ilmeisesti kokeellisina hankkeina — monenlaisia piirteitä: ohjelmointikieli (Wolfram Language) on monipuolistunut, on luotu käsite computable document format (CDF), tarjolla on alkeisgeometrista päättelyä, monenlaista dataa sisältäviä tietokantoja jne. Käyttöliittymänä on Mathematica-ohjelmiston lisäksi verkkosivusto Wolfram|Alpha.

Kovin kaukana ei ole ajatus yhdistää ChatGPT:n kielimalli ja Mathematican laskentakyky sekä Wolfram Researchin tietokannat. Tämä antaa mahdollisuuden paikata ChatGPT:n faktatiedoissa ja matemaattisissa kyvyissä olevia puutteita. Itse asiassa yhdistämiseen tarvittava plugin on olemassa, kuten Stephen Wolfram kirjoittaa blogissaan. Pluginin avulla ChatGPT käy tarvittaessa tutkimassa tietokantoja.  En ole kokeillut, ainakaan vielä. Ei ilmeisesti ole vapaasti käytettävissä.

ChatGPT pystyy myös ainakin periaatteessa kirjoittamaan ohjelmakoodia Wolfram Languagea käyttäen. Koodi voidaan sitten ajaa Mathematicalla tai Wolfram Researchin pilvipalvelussa (jonka käyttöön tarvitaan sopimus).

Wolfram Researchin resurssit eivät luonnollisestikaan ole ainoa mahdollisuus laajentaa tekoälyjärjestelmien kykyjä. Tähän suuntaan varmasti edetään emmekä vielä ole nähneet alkua enempää.

Missä sitten tällä hetkellä ollaan? Miten luotettavia vastauksia ja miten helposti tekoälyltä saadaan? Seuraavassa kuvaan muutamia kokeilujani.

Yksinkertaista faktaa koskeva kysymys

Esitin ChatGPT:lle kysymyksen: Which is the highest building in Helsinki? Se ilmoitti tietojensa ulottuvan vain syyskuuhun 2021 ja tällöin korkein rakennus oli 134 metriä korkea 'the Maamerkki Tower, also known as the Landmark Tower or Pasila Tripla Tower'. En kommentoinut vastausta, mutta kysyin uudelleen. Tällä kertaa vastaus oli 19-kerroksinen 'the Helsingin Pörssitalo (Helsinki Stock Exchange Building), also known as the KPMG Tower'. Kysyin kolmannen kerran, jolloin vastaukseksi tuli 70-metrinen 'Torni Hotel'.

Kysyin samaa asiaa Mathematicalla Wolfram Researchin tietokannoista. Saman voisi tehdä Wolfram|Alphaa käyttäen. Vastaukseksi tuli 74-metrinen Johanneksen kirkko.

Seuraavaksi kysyin kummaltakin, oliko Englannin kuningas Henrik VIII naimisissa. Molemmat antoivat oikean vastauksen ja luettelivat kaikki kuusi vaimoa avioliittovuosineen.

Epämääräisempi pyyntö

Pyysin luetteloa Helsingissä syntyneistä merkittävistä henkilöistä. (Give a list of the most notable persons born in Helsinki.) Tähän ei tietenkään ole yhtä oikeata vastausta, mutta tulos kertonee jotakin tekoälyn luotettavuudesta. Kärkikymmenikkö:

ChatGPT: Jean Sibelius, Linus Torvalds, Aki Kaurismäki, Tove Jansson, Renny Harlin, Armi Ratia, Tarja Halonen, Juha Kankkunen, Tom of Finland, Esa-Pekka Salonen.

Wolfram Research: Linus Torvalds, Ville Valo, Teemu Selänne, George Gaynes, Tarja Halonen, Tove Jansson, Sam Lake, Michael Monroe, Pihla Viitala, Lauri Ylönen.

Kysyin kummaltakin myös syitä Suomen kansalaissotaan. (What are the reasons for the Finnish civil war in 1918?) ChatGPT antoi noin 300-sanaisen jokseenkin paikkansapitävän selostuksen. Wolfram|Alpha antoi sekalaista faktatietoa sodasta,  kun kysymys tehtiin verkkosivulla, Mathematicasta lähetettyä kysymystä se ei ymmärtänyt.

Ohjelmakoodit

Wolfram|Alpha-spesialisti Michael Trottin artikkelissa 100+ ChatGPT-generated Wolfram Language codes on esimerkkejä ChatGPT:n generoimista koodeista erilaisiin laskentatehtäviin. Ohjelmointikielenä on Mathematican käyttämä Wolfram Language.

Yhtenä esimerkkinä on Wolfram Researchin tietokantoja hyödyntävä koodi, joka tuottaa kartan Saksan dorf-, bach-, berg-, burg- ja feld-loppuisista kaupungeista eri väreillä merkittyinä. Trottin mukaan koodi on ChatGPT:n generoima. Kokeilin vastaavaa Suomen mäki-, järvi-, joki-, salmi- ja lahti-loppuisiin kuntiin sovellettuna. Pyysin ChatGPT:tä kirjoittamaan Wolfram Language -koodin tällaisen kartan tekemiseen käyttäen samoja ilmaisuja kuin Trott. Koodi tuli hetkessä ja siirsin sen ajettavaksi Mathematicaan. Ei toiminut, syntaksivirheitä. Valitin tästä ChatGPT:lle, se pyysi anteeksi ja teki uuden koodin. Ei taaskaan toiminut. Tämä toistui muutaman kerran eikä lopultakaan syntynyt toimivaa. Olisin voinut paikata koodin itse, mutta sen sekavuuden takia muunsin mieluummin Trottin esittämän koodin Suomea koskevaksi. Tulos alla.



Todennäköisesti Trottilla on ollut käytössään uudempi versio ChatGPT:stä, joten hän on voinut saada suoraan toimivan koodin. Toisaalta ChatGPT ei ole deterministinen, vaan se tekee samaankin pyyntöön eri kerroilla erilaisia koodeja. Virheellinenkin koodi voi tietenkin antaa hyvän pohjan kehittelyyn, mikäli sen rakenne on selkeä.

Esimerkki osoittaa myös tietokantojen mukaan kytkemisen mahdollisuudet. Koodi hakee ensin tietokannasta kaikki Suomen kunnat ('cities'). Wolfram Language tarjoaa suhteellisen valmiin keinon verrata näiden nimiä tarkasteltuihin loppuihin. Tietokannasta löytyvät myös kuntien maantieteelliset koordinaatit ja Wolfram Languagesta työkalut karttaprojektioihin ja grafiikkaan. Alla kuva koodista joki-päätteen osalta.



Toisena esimerkkinä pyysin ChatGPT:tä tekemään kartan lyhimmästä reitistä, jolla kierretään kaikki Euroopan pääkaupungit. Mathematica, Wolfram Language ja tietokannat antavat tähän tarvikkeet, myös valmiin funktion lyhimmän reitin laskemiseen. Tämäkään ei onnistunut. En saanut toimivaa koodia, vaikka yritin antaa yksityiskohtaisia ohjeita koodin kirjoittamiseen. Tein sitten itse. Ei ollut ihan helppoa, sillä vaikka Wolfram Languagessa tarvikkeet ovat olemassa, niiden logiikan hahmottaminen ei ole selkeää. (Lieneekö ChatGPT:lläkin ollut tässä vaikeuksia?) Kuva alla.



Miten luotettavia tekoälyn vastaukset sitten ovat?

Helsingin korkeinta rakennusta koskeva kysymys ei mennyt hyvin, mutta Henrik VIII:n vaimot olivat oikein. Erona tietenkin on, että jälkimmäinen on jo pysyvää tietoa, edellisessä täytyy pysyä ajan tasalla. Kriittisyyden merkitys korostuu, ja tieto lähteestä ja sen ajankohdasta olisi tarpeen. Epämääräisempiin kysymyksiin saadaan tietenkin epämääräisiä vastauksia, mutta ne saattavat olla kelvollisia lähtökohtia omalle pohdiskelulle. Faktoihin ja näkökulmiin ei kuitenkaan voi luottaa ja muitakin lähteitä on syytä katsoa. ChatGPT vähät välitti vaatimuksesta, että olisi pitänyt syntyä Helsingissä, mutta ei esittänyt mitään varauksia.

Ohjelmakoodin generointi ei esimerkeissä sujunut. Riittävän yksinkertaisissa tapauksissa kuitenkin syntyy toimivaa koodia, tai ainakin koodia, joka kelpaa kehittelyn pohjaksi. Wolfram Languagen liittymä tietokantoihin ei minusta myöskään ole selkeä, jolloin edellä olevat esimerkit saattoivat olla hieman epäreiluja ChatGPT:llekin.

Tarkkaavainen lukija on saattanut havaita, että kartta tiettyihin päätteisiin liittyvistä kunnista ei vastaa nykyistä kuntajakoa. Tietokantojen perusteella muodostettu kuntalista on nimittäin vanhentunut. Ongelmallista on myös, mihin termi 'city' oikeastaan viittaa. Ns. ääkkösissä on myös horjuvuutta. Esimerkin kaltaisissa tilanteissa tällaiset puutteet eivät ole kovin merkityksellisiä, mutta tietokannoissa on paljon dataa, joka on pidettävä ajan tasalla (tai lähteistettävä tarkasti). Suhtaudun tietyllä epäluulolla Wolfram Researchin tietokantoihin.

Kaikkiaan: Tekoälyllä on hauska leikkiä, ja hyötyäkin siitä on sopivissa tehtävissä, mutta kriittisyyttä ei pidä unohtaa. Tulevaisuutta varmasti on, mutta luotettavuuden ja käyttökelpoisuuden hyväksi on vielä paljon tehtävää.


Ei kommentteja: