ChatGPT:n käyttö ohjelmistoyrityksessä 

ai chatgpt ohjelmistokehitys ohjelmointi tekoäly

Teknologian, ja sitä kautta myös AI:n eli tekoälyn, kehittyminen on ollut huomattavaa erityisesti viime vuosina. Entistä älykkäämpien AI-ohjelmien ilmaantuminen ja niiden ansaitsema suosio on johtanut lopulta siihen, että myös työelämässä on alettu hyödyntämään tekoälypohjaisia ohjelmia. Tekoälyalan kehitys onkin nopeaa ja uusia suosittuja tekoälytyökaluja ja -alustoja kehitetään jatkuvasti. 

Yksi tämän hetken suosituimmista tekoälyistä on OpenAI-nimisen tutkimuskeskuksen kehittämä ChatGPT. ChatGPT on vuonna 2022 julkaistu tekoälypohjainen chatbot, joka kykenee kommunikoimaan lukuisilla eri kielillä sekä vastaamaan erilaisiin kysymyksiin ja antamaan ratkaisuja ja neuvoja aiheeseen kuin aiheeseen. Onkin siis luonnollista, että näin lupaavalta kuulostavaa resurssia hyödynnetään työn ohella.

ChatGPT apuna ohjelmistokehityksessä

ChatGPT voi tehostaa ohjelmistokehitysprosessia monin tavoin. Se voi auttaa kirjoittamaan koodia ja antaa vinkkejä sen optimointiin, tarkastaa kirjoitettua koodia, auttaa ongelmanratkaisussa ja ehdottaa koodin korjaamistapoja, sekä ohjeistaa kehittäjää selittämällä hänelle tuntemattomia käsitteitä tai toimintoja. ChatGPT:ltä voi myös kysyä mahdollisia vaihtoehtoisia ratkaisutapoja sille esitettyyn ongelmaan. Tekoälylle voi esimerkiksi syöttää haluamansa funktion ja kysyä, kuinka sitä voisi optimoida. Näin ChatGPT:tä voi parhaimmillaan hyödyntää oppimistyökaluna. 

Kyseinen tekoäly soveltuu myös muun muassa dokumentointiin ja testaukseen. Se voi auttaa laatimaan dokumentaatiota erilaisille ohjelmistokehitysprojekteille vaikkapa kirjoittamalla käyttöohjeita. Testauksessa taas ChatGPT voi suunnitella testitapauksia sekä analysoida testien tuloksia ja raportoida mahdollisista virheistä. Tekoäly voi lisäksi tuottaa yksinkertaista testidataa ohjelmoijan käyttöön.  

Testidatan tuottaminen ChatGPT:n avulla onnistuu esimerkiksi seuraavasti: “Voitko muodostaa minulle viisi projektia, joissa on seuraavat tiedot: projectName, projectNo ja id. Voitko antaa vastauksen JSON-muodossa”. ChatGPT on tietoinen keskustelun kontekstista, minkä vuoksi dataa on helppo muokata tai täsmentää tarvittaessa.

ChatGPT:n käyttö voi olla ohjelmistokehittäjän näkökulmasta hieman vaivalloista, sillä hän sitä käyttäessään saattaa joutua liikkumaan usean ikkunan välillä. Esimerkiksi oman koodin tarkistuttaminen ChatGPT:n avulla edellyttää selaimella ChatGPT:n nettisivulle siirtymistä, koodin kopioimista koodieditorista, ja kopioidun koodin liittämistä selaimen chat-palstalle. Ohjelmointikeskeisempi ja -ystävällisempi lähestymistapa olisi integroida kyseinen työkalu suoraan ohjelmoijan työympäristöön, kuten koodieditoriin. Käyttäjät ovat kehittäneet tätä varten lisäosia (esimerkiksi ChatGPT Extension for VSCode); niiden avulla ChatGPT:n käyttäminen vaikkapa Visual Studio Coden sisällä on mahdollista.  

Tekoälyn kehitys etenee nopeaan tahtiin, ja ohjelmistokehittäjille sopivampia vaihtoehtoja onkin jo tulossa. Esimerkiksi GitHubin Copilot X on kehitteillä juuri tähän käyttötarkoitukseen ja integroituu useisiin suosittuihin koodieditoreihin. Copilot X kykenee tunnistamaan ja selittämään koodia, sekä esittämään parannusehdotuksia. Tekoälystä on tällä hetkellä saatavilla betaversio, ja se on käytettävissä vain Copilotin tilaajilla. 

Nopeuttaako ChatGPT kehitystyötä?

ChatGPT voi joissain tilanteissa nopeuttaa kehitystyötä. Tekoäly mahdollistaa vastausten saamisen sekunneissa. Kun aiemmin ongelmatilanteissa on tullut turvauduttua Google-hakukoneeseen ja koodausta käsitteleviin tukifoorumeihin (mikä saattoi viedä paljon aikaa, jos suoraa vastausta juuri omaan ongelmaan ei hakuhetkellä ollut saatavilla), voi nyt kysymyksensä esittää suoraan AI:lle, joka antaa vastauksensa saman tien. Kysymysten esittämistä voi tosin hankaloittaa se, että joissain tilanteissa tekoäly reagoi herkästi pieniinkin sanamuodon tai lauserakenteen muutoksiin, ja voi tällöin ymmärtää kysymyksen eri tavalla ja esittää toisistaan poikkeavia vastauksia. Esitetyn kysymyksen ei siis tulisi olla epäselvä tai monitulkintainen, jotta tekoäly ymmärtää, millaista vastausta käyttäjä hakee. Tämän lisäksi tekoälyn antama tieto voi olla virheellistä. Näistä muodostuukin yksi ChatGPT:n kaltaisen tekoälyn ongelmakohdista: se ei aina ole luotettava.  

Tekoälyn antaman tiedon luotettavuus

Vaikka tekoäly voi ehdottaa ensisilmäykseltä päteviltä vaikuttavia ratkaisuja, on erittäin tärkeää muistaa, että kyseessä on vain tekoäly ja että se on erehtyväinen. OpenAI huomauttaakin ChatGPT:tä koskevalla blogisivullaan, että tekoäly saattaa joskus esittää virheellistä tietoa faktana. Virheellisen tiedon esittämistä OpenAI selittää sillä, että tekoälyn koulutuksessa totuuden lähdettä ei ole tai ei voida määritellä:

ChatGPT sometimes writes plausible-sounding but incorrect or nonsensical answers. Fixing this issue is challenging, as: (1) during RL training, there’s currently no source of truth; (2) training the model to be more cautious causes it to decline questions that it can answer correctly; and (3) supervised training misleads the model because the ideal answer depends on what the model knows, rather than what the human demonstrator knows.  

Voiko tekoälyn hyödyntäminen olla vaarallista?

Mitä tahansa tekoälyn esittämää ratkaisua ei kannata hyödyntää sellaisenaan, varsinkin, jos esitetty ratkaisu ei vaikuta sisältönsä puolesta ohjelmoijalle entuudestaan tutulta. Esitettyä ratkaisua kannattaa siis vähintään testata ennen käyttöönottoa ja tiedon oikeellisuus tarkistaa. Ohjelmointityössä saatetaan lisäksi olla tekemisissä arkaluontoisten tietojen kanssa, ja jos tällaisissa tilanteissa hyödynnetään tekoälyä, tulee ohjelmoijan noudattaa varovaisuutta ja kriittistä ajattelutapaa. 

ChatGPT:n esittämien vastausten lisäksi ohjelmoijan tulee suhtautua erittäin kriittisesti myös siihen, minkälaista tietoa hän itse luovuttaa tekoälylle. ChatGPT:n kehittäjät OpenAI:lla myöntävät hyödyntävänsä tekoälyn ja käyttäjien välisiä chat-keskusteluja kouluttaakseen ChatGPT:tä entistä älykkäämmäksi. Toisin sanoen mikä tahansa ChatGPT:lle luovutettu tieto säilytetään, ja voi tätä kautta levitä eteenpäin.  

Yksityisten tietojen levittäminen voi tapahtua tahattomasti esimerkiksi silloin, kun ohjelmoija syöttää ChatGPT:lle viallista koodiaan korjaustarkoituksessa, mutta unohtaakin oikolukea koodin arkaluontoisten tietojen varalta. Yhtenä nyrkkisääntönä voitaisi sanoa, että tekoälylle ei kannata luovuttaa minkäänlaisia sellaisia tietoja, joita ei uskaltaisi jakaa julkisesti. 

Edes suuremmat teknologiayritykset eivät ole turvallisuusongelmilta välttyneet. Huhtikuussa 2023 selvisi, että Samsungin työntekijät olivat ainakin kolmeen otteeseen luovuttaneet yrityksen yksityisiä tietoja ChatGPT:lle etsiessään ratkaisuja työtehtäviinsä. Työntekijät olivat syöttäneet tekoälylle salaisia, toimimattomia lähdekoodeja ja pyytäneet ratkaisua niihin. Yhdessä tapauksessa työntekijä oli syöttänyt ChatGPT:lle kokonaisen palaverin ja pyytänyt tekoälyä laatimaan sen pohjalta pöytäkirjan. Vuodot tapahtuivat vain kolme viikkoa sen jälkeen, kun Samsung luopui ChatGPT:n käyttöä koskevista rajoituksista. Tapahtuneen jälkeen Samsung on jälleen kerran kieltänyt tekoälyn käytön yrityksen sisällä.   

Oletusasetus on, että tietojen käyttö on sallittu, tosin asetuksissa käyttäjä voi erikseen kieltäytyä keskustelujen tallentamisesta ja hyödyntämisestä tekoälyn koulutuksessa. Kieltäytymisestä huolimatta ChatGPT:n kanssa käydyt keskustelut tallentuvat silti järjestelmään 30 päiväksi (OpenAI:n mukaan mahdollisen väärinkäytön monitorointia varten).  

Asenteet ChatGPT:tä kohtaan

Jotkut osapuolet eivät lainkaan hyväksy ChatGPT:n kaltaisia tekoälytyökaluja. Esimerkiksi ohjelmistokehittäjien runsaassa käytössä oleva tukifoorumi Stack Overflow on kieltänyt ChatGPT:ltä peräisin olevat vastaukset nettisivuiltaan täysin. Se perustelee päätöstään sillä, että tekoälyn kirjoittamat, mahdollisesti virheelliset vastaukset olisivat pahaksi sivuston maineelle vapaaehtoista ohjelmointiapua tarjoavana foorumina, ja että virheellisen tekoälylähtöisen tiedon jakamisen yleistyminen heikentäisi foorumin luotettavuutta ohjelmistokehittäjien keskuudessa. 

ChatGPT ja tekijänoikeuskysymys

ChatGPT-tekoälyn koulutuksessa on hyödynnetty suuria määriä internetissä saatavilla olevaa dataa. Kysyttäessä tekoälyltä itseltään, se luettelee ohjelmointiaiheisen koulutusdatan lähteiksi muun muassa ohjelmointiaiheiset kirjat, verkkosivustot ja blogit, sekä avoimen lähdekoodin. Esimerkkiverkkosivuiksi se mainitsee Stack Overflow:n, GitHubin, Dev.to:n ja Mediumin.  

ChatGPT:n koulutusdatan alkuperä voi luonnollisesti herättää kysymyksiä. Millä tavoin tekoäly hyödyntää tätä dataa? Onko ChatGPT:n generoima koodi riittävän omaperäistä ja muunneltua? Voisiko esimerkiksi yksittäinen generoitu koodinpätkä olla täysin plagioitu? Vastauksia näihin kysymyksiin voi olla mahdotonta saada; edes ChatGPT ei kysyttäessä kykene antamaan yksittäisiä konkreettisia esimerkkejä koulutuksessaan hyödynnetyistä lähteistä, eikä näin ollen vertailua generoidun datan ja alkuperäisen koulutusdatan välillä voi suorittaa. 

ChatGPT:tä ja muita tekoälyjä ympäröivä tekijänoikeuskeskustelu on tuonut esille monia mahdollisia ongelmakohtia: onko edes mahdollista monitoroida, kuinka suuri osa generoidusta materiaalista on riittävän originaalia, kuinka suuri osa taas muualta kopioitua? Loukkaako tekoäly tekijänoikeuksia hyödyntäessään ihmisten kirjoittamaa koodia, jos se ei samalla mainitse kyseisen lähdekoodin luojia? Aiheesta on jo kehitteillä oikeusjuttukin; Microsoft, GitHub ja OpenAI on haastettu oikeuteen tekijänoikeuksien rikkomisesta. 

On ilmennyt tapauksia, joissa tekoäly on generoinut tekijänoikeussuojattua, ulkopuolisesta lähteestä kopioitua koodia ja esittänyt sitä omanaan. 

Yllä mainitut huolet voivat korostua myös ChatGPT:n generoiman koodin jatkokäyttöön liittyvissä kysymyksissä. Koodin hyödyntäminen omissa projekteissa voi tuntua kyseenalaiselta, jos on olemassa se mahdollisuus, että tämä koodi onkin kolmannelta osapuolelta plagioitua.  

Tässä korostunee jälleen se, että tekoälyn generoimaa koodia ei välttämättä kannata käyttää sellaisenaan. Siinä missä koodi voi olla virheellistä, voi se myös yllättäen sisältönsä puitteissa rikkoa tekijänoikeuksia, eikä sen käyttö näin ollen ole suositeltavaa. Sen sijaan ChatGPT:n generoima koodi voi toimia erinomaisesti vinkkinä uusien ratkaisujen löytämiseen ja työkaluna uuden oppimiseen. Tekoälyn generoima koodi voi antaa ideoita siihen, miten kehittää omaa koodia eteenpäin. Joka tapauksessa ohjelmoijan rooli on olennainen, ja tekoälyn luomiin ratkaisuihin ei tulisi luottaa sokeasti. 

Loppuyhteenveto

ChatGPT ja sen kaltaiset tekoälyt voivat olla hyödyllisiä apuvälineitä ohjelmistokehittäjän työssä. Koska tekoälyn kehitys ei näillä näkymin ole hidastumassa pitkään aikaan, on luultavaa, että ohjelmistokehittäjän työ tulee muuttumaan entisestään: on erittäin mahdollista, että tulevaisuudessa tekoälypohjaisia työkaluja tullaan hyödyntämään työn ohella yhä enemmän. Tämä taas voi tukea ohjelmistokehittäjän ammattitaitoa ja osaamista, ja parhaimmillaan myös tehostaa työntekoa ja uuden oppimista. Tekoälyn hyödyntämisessä tulee kuitenkin muistaa kriittisyys tekoälyn antaman tiedon suhteen, sekä varovaisuus siitä, mitä tietoa tekoälylle itse luovuttaa. 

On tärkeää muistaa, että tekoäly ei voi korvata kokenutta ohjelmistokehittäjää. Loppujen lopuksi ChatGPT:kin on vain tietokoneohjelma, ja sen tietämys koostuu pelkästään siitä datasta, jota on käytetty sen kehittämisessä. Tekoälyyn verrattuna ihminen on tarkkaavaisempi ja luovempi, sekä omaa hyvän ongelmanratkaisukyvyn. Tekoälyllä ei myöskään voi olla ihmisen kokemusta tai intuitiota, joten se tuskin kykenee tarjoamaan parasta mahdollista neuvoa tai ratkaisua kaikkiin ohjelmistokehityksen haasteisiin. Hyödyistään huolimatta tekoäly on kuitenkin vain yksi työkalu ohjelmistokehittäjän työkalupakissa.

Muuta ajankohtaista luettavaa
12.4.2024
käyttöliittymäsuunnittelu ohjelmistokehitys prototyyppi ui/ux

Lue blogikirjoitus »
26.3.2024
ohjelmistokehitys saavutettavuus

Lue blogikirjoitus »
13.3.2024
uutiskirje

Lue blogikirjoitus »
13.3.2024
Lue blogikirjoitus »
Scroll to Top
Tilaa uutiskirjeemme!

Kylkiäiseksi saat maksuttoman tuotekehitysoppaan! *

Voit perua uutiskirjeen tilauksen koska tahansa.

* Oppaan on tarkoitus selventää mahdollista tuotekehitysprosessia Sebitin kanssa ja on tarkoitettu erityisesti niille yrityksille ja henkilöille, jotka harkitsevat yhteistyöprojektia kanssamme.