ChatGPT, Bing Chat, GitHub Copilot, ja Azure AI Studio nojaavat kaikki OpenAI:n kielimalleihin, mutta sovelluksissa on eroja. Miten niitä kannattaa hyödyntää vaativissa järjestelmähankkeissa?
Cinian ohjelmistokehittäjät Lassi Laiho ja Jussi Koivumäki työskentelivät viime talvena monivuotisessa asiakasprojektissa. Tekeillä oli pilvipohjainen, räätälöity alustaratkaisu, jonka rakentaminen vaati jatkuvaa ongelmanratkaisua. Toisteisia tehtäviäkin riitti.
Kehittäjät lähtivät cinialaisten etujoukoissa kokeilemaan, mitä annettavaa generatiivisilla kielimalleilla on tavallisiin työpäiviin.
“Tekoäly tuli ohjelmistokehitykseen syöksyn lailla. Kun OpenAI julkaisi ChatGPT:n, vähään aikaan ei muusta puhuttukaan”, Laiho kertaa tunnelmia noin vuoden takaa.
ChatGPT:n voittokulku on ollut siitä asti näyttävä, mutta moni on huomannut tarpeen kehitysaskeleille kantapään kautta:
Lastentaudit tulivat tutuiksi Laiholle, joka pyöritti työpöydällään modernin pilvi-infran koodia: “Ensimmäisistä ChatGPT-kokeiluista oli enemmän haittaa kuin hyötyä. Vastauksia ei joko tullut, tai ne johtivat harhaan.”
Softatyön geneerisissä ongelmissa, joita internetin kehittäjäyhteisöissä on puitu jo vuosia, ChatGPT:llä on ollut alusta asti paljon annettavaa. Koivumäki painottaa hyvin asetellun promptin merkitystä:
“Kannattaa kokeilla erilaisia kysymyksen muotoiluja, jos ensimmäinen vastaus tuntuu menevän ohi. Yleinen käyttökohde on pyytää sovellusta ratkomaan, miten yhdestä ohjelmointikielestä tuttu konsepti kannattaa toteuttaa toisella kielellä. Joissain tapauksissa toimiva taktiikka on sisällyttää kysymykseen kaksi vaihtoehtoa tai lähestymistapaa ja pyytää vastaukseksi perusteltua vertailua niiden välillä.”
Microsoftin Bing Chat ehti ChatGPT:tä edelle reaaliaikaisessa verkkotiedonhaussa ja tulosten tarkassa lähteyttämisessä. Koivumäki suositteleekin sitä yllättävän näppäränä työkaluna:
“Bing Chatista – kuten nyttemmin myös ChatGPT:stä – saa linkit esimerkiksi ohjelmointikielen dokumentaatioon tai Stack Overflow -keskusteluun. Näin pystyn validoimaan, onko tekoälyn antama ehdotus perusteltu”, Koivumäki sanoo.
Lähivuodet näyttävät, pysyykö keskustelupohjaisten AI-sovellusten ilmaherruus ChatGPT:llä, vahvistaako Bing Chat asemiaan vai tuleeko Googlen Bardista käyttäjien suosikki. Löydöksiä on aina katsottava kriittisesti, oli käytössä mikä työkalu tahansa, Koivumäki muistuttaa:
“Chatbotin antamat vastaukset voivat olla muotoilultaan todella uskottavia, vaikka sisältö olisi pelkkää palturia.”
Vinkki: Kokeile ChatGPT:tä tai Bing Chatia tiedonhaun alkupisteenä, kun etsit ratkaisuja geneerisiin, laajasti tunnettuihin ja vakiintuneisiin ongelmiin. Microsoft-tunnuksilla voit käyttää Bing Chatia ilmaiseksi Edge-selaimessa.
“Kun saataville alkoi tulla Azuren omia AI-työkaluja, pilvi-infraa koskeviin kysymyksiin tuli heti fiksumman näköisiä vastauksia”, Laiho sanoo.
Pilvialustat tarjoavat valmiita AI-moduuleita, joita on suhteellisen helppo liittää osaksi järjestelmien toiminnallisuuksia. Lisäksi niiden omia keskustelubottisovelluksia voi käyttää saman tyyppiseen sparrailuun kuin ChatGPT:tä ja Bing Chatiakin. Sekä hakutuloksissa että käyttökokemuksessa näkyy, että pilvialustan työkalu on tehty kehittäjiä varten.
“Azure AI Studiossa voit antaa tekoälylle tietyn roolin ilman, että näkökulma tarvitsee määrittää joka kysymyksessä uudelleen. Siitä oli hyötyä esimerkiksi silloin, kun selvittelin, mitä parhaita käytäntöjä itselleni uuteen Spring WebFlux-frameworkiin liittyy”, Koivumäki kertoo.
Vinkki: Käytä pilven natiiveja työkaluja, jos tarvitset tietoa uusista teknologioista, etsit tarkasti rajattuja vastauksia tai työstät projektikohtaista koodia.
Toisteisen koodaustyön automatisointiin Laiho ja Koivumäki suosittelevat GitHubin Copilotia. Yrityslisenssin kanssa sillä voi pyörittää myös asiakasprojektien koodia. Copilotin moottorina oleva tekoälymalli on kehitetty GitHubin, Microsoftin ja OpenAI:n yhteistyönä nimenomaan ohjelmistoasiantuntijoiden käyttöön. GPT-kielimallin hyödyntäminen on osa kokonaisuutta.
“Copilot on kuin ennakoiva tekstinsyöttö steroideissa”, Lassi Laiho kuvailee. Sen arvausten osuvuus on ollut hämmästyttävän hyvällä tasolla. Molemmat kehittäjät ovat huomanneet, että puuduttava copy-paste-työ ja toisteisten rivien kirjoittaminen on selvästi vähentynyt Copilotin ansiosta.
“Copilotin suurin arvo on annetun kontekstin ymmärryksessä”, Koivumäki täsmentää. “Parhaimmillaan se on, kun olemassaolevaa koodia löytyy jo paljon. Jos teet esimerkiksi api-kehitystä backend-projektissa, voit nopeuttaa uusien päätepisteiden lisäämistä kun Copilot on ensin analysoinut nykyisten rakenteet ja toteutustavat. Oikein käskytettynä se osaa ehdottaa rivejä, jotka ovat jo hyvin lähellä lopullisia.”
Työkalu on todettu toimivaksi assistentiksi myös uusien yksikkötestien kirjoittamiseen, kun samassa tiedostossa on ennestään ollut ihmisen kirjoittamia, vastaaviin toiminnallisuuksiin kohdistuvia testiskriptejä.
“Refaktorointia tehdessä Copilot pystyy nappaamaan nimeämiskäytännön heti ensimmäisestä funktiosta”, Laiho täydentää.
Heti ensimmäisten kokeilujen jälkeen Copilot otettiin mukaan Cinian työkalupakkiin. Siihen oli hyvä syy, Koivumäki muistuttaa:
“Business-lisenssi on ehdoton, sillä yksityishenkilöille tarjottavaa versiota ei voi käyttää asiakasprojekteissa erilaisten tietosuojaehtojen vuoksi.”
Vinkki: Tarjoa GitHubin Copilotille riittävästi aiemmin tehtyä koodia, jotta se pääsee näyttämään kyntensä. Uuden projektin ensimmäisen tiedoston ideointiin saattavat sopia paremmin chatbot-tyyppiset sovellukset (mm. ChatGPT, Bing Chat).
Kun kuhina AI:n ympärillä alkoi, uusia sovelluksia nimiteltiin mediassa “koodaajien painajaisten möröiksi”. Cinialaiset eivät tulevaisuutta säikähdä.
“Näen nämä työkalut huikeana mahdollisuutena. Kehitys tulee lähivuosina olemaan käsittämättömän nopeaa. Vaikka vastausten kanssa saa olla nyt ja jatkossa skeptinen, AI-sovellusten käyttö nopeuttaa tiedon hakemista, vähentää rutiinityötä ja helpottaa hyppyjä teknologiasta toiseen”, Koivumäki listaa.
Lassi Laiholla on pitkä kokemus koneautomaatiosta, mutta sovelluskehittäjäksi alanvaihtaja siirtyi vasta kaksi vuotta sitten. Nopeuttaako tekoäly alan perusteiden oppimista?
“Voi hyvin pitää paikkansa. Eivät nämä sovellukset ainakaan aiheuta minkäänlaisia allergisia reaktioita. Omaa järkeilyä tarvitaan edelleen esimerkiksi silloin, kun on otettava haltuun JavaScript vahvasti tyypitettyjen kielien jälkeen. Ja työkalujen antamien vastausten kanssa on oltava erityisen tarkkana, jos ongelma liittyy uusimpiin teknologioihin, joista ei vielä ole riittävästi opetusdataa taustalla.”
Valitse AI-työkalu oikein, jotta et aiheuta tietovuotoa
Product Owner eli tuoteomistaja ohjelmistoprojektissa: Mitä, miten ja miksi?
Tekoälyn hyödyntäminen ohjelmistokehityksessä: 4 tehokasta tapaa