Viime aikoina on Internet-keskusteluissa (ainakin minun kuplassani) on kohistu jonkin verran tekoälystä ja erityisesti OpenAI:n ChatGPT:stä. Tutkailen tässä miten se osaa ohjelmoida pikku koodinpätkiä. Tuotettu koodi näyttää hyvältä, mutta jotta tulos olisi oikea, niin tekoälyä pitää opettaa.
Olen tutkiskellut yksikkömurtolukuja 1/1, ½, ⅓, … ja niiden desimaalikehitelmien jakson pituuksia. Ensimmäiset versiot koodistani löytyvät syyskuun artikkelistani Yksikkömurtolukujen desimaalikehitelmien jakson pituuksista 2 – jakson pituus Pythonilla” https://mikkorahikka.blog/2022/09/29/yksikkomurtolukujen-desimaalikehitelmien-jakson-pituuksista-2-jakson-pituus-pythonilla/ Tarinassa myös selitin taustalla olevan matemaatiikan.
OpenAI:n chat löytyy osoitteesta https://chat.openai.com/auth/login, kirjauduin sinne Google-tunnuksellani. Tässä vaiheessa on hyvä muistuttaa, että ChatGPT toimii, ainakin minulla, paremmin Googlen Chrome-selaimella paremmin kuin Applen Safarilla. Otin kuvankaappauksia keskusteluistamme ja testasin koodia Googlen Colabissa.
Aluksi yritin keskustella suomen kielellä, mutta kone ei ymmärtänyt minun kieltäni riittävän hyvin. Niinpä päätin jutella englanniksi.
Kopioin koodinpätkät ja sijoitin ne Google Colabiin. Lisäsin pienen koodinpätkän, jolla sain tulostettua 20 ensimmäistä jaksoa.
Hyvältä näyttää, paitsi ½ = 0.5 ja yleensä tällaisen luvun jakso yleensä merkitään nollana. Uusi yritys.
ChatGPT:hän näyttää ymmärtävän. Nyt näyttää hyvältä. Lisäsin koodinpätkän, jolla sain 20 ekaa jakson pituutta listaksi.
Miten tuon listan tuottaminen olisi onnistunut ohjeistamalla tekoälyä.
Tuo esimerkkilista ei ole oikein. Kokeillaan koodia silti Colabissa. Alla ChatGPT:n tuottama lista. Esimerkki oli ihan hatusta tempaistu.
Tuossakin listassa on vikaa, jatketaan keskustelua. Huomannet kirjotus vihreen.
Testataan Colabissa
Taas koodissa on vikaa, nyt päättyvien desimaalikehitelmien pituudet muuttuivat ykkösiksi. Jatketaan keskustelua.
Testataan tätä koodia. Tässä alkaa sellainen tunne, että minähän opetan tuota tekoälyä.
Tämä näyttää hyvältä, paitsi kun katsoo oman koodini tuotosta, niin vikaa on n:n arvoilla 6, 12, 14, 15, 18.
Tein pienen koodin pätkän, jossa on poikkeamat ”oikeisiin” jakson pituuksiin.
Tässä vaiheessa lopetin. Eläkkeellä kun olen, niin ei jaksa enää opettaa kovin pitkää aikaa. Palaan tekoälyn luo myöhemmin.