Suuret kielimallit ohjelmistokehityksessä
Honkasaari, Anniina (2024)
Honkasaari, Anniina
2024
Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2024-06-05
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202406087048
https://urn.fi/URN:NBN:fi:tuni-202406087048
Tiivistelmä
Ohjelmistokehitys on jatkuvasti kasvava ala, jonka tehokkuutta pyritään lisäämään. Suuret kielimallit eli suurella datamäärällä koulutetut syvät neuroverkkomallit ovat viime vuosina yleistyneet. Niitä voidaan käyttää avuksi ohjelmistokehityksessä, mutta asiaan sisältyy myös riskejä. Tämä työ on kirjallisuuskatsaus aiheeseen. Työssä pyritään vastaamaan kysymykseen “Kuinka suuria kielimalleja on kannattavaa käyttää ohjelmistokehityksessä?”.
Suurten kielimallien käyttökohteita ohjelmistokehityksessä ovat muun muassa koodinäytteiden luominen, analyyttiset kysymykset ja reaaliaikainen koodin kommentointi. Nykytekniikalla suuret kielimallit ovat erityisen hyödyllisiä yksinkertaisiin ja rajattuihin ohjelmistokehityksen pyyntöihin.
Suurten kielimallien käytön riskeihin kuuluvat esimerkiksi virheelliset vastaukset, kielimallin koulutusdatan laatu ja tietoturvakysymykset. Jotta ohjelmistokehittäjä voi käyttää turvallisesti ja tehokkaasti suuria kielimalleja, tulee hänen osata tarkastella suurten kielimallien tuottamia vastauksia kriittisesti ja luoda oikeanlaisia käskyjä suurille kielimallille.
Työssä käsitellään myös tutkimusta ChatGPT:n tuottaman ohjelmiston laadusta. Tutkimus on tällä hetkellä niin rajattua, että siitä ei voida vetää suuria johtopäätöksiä. Kaikissa käsitellyissä tutkimuksissa on kuitenkin yhtenevä ajatus siitä, että nykyteknologialla ChatGPT ei osaa tuottaa luotettavasti vastauksia vaikeisiin ohjelmointitehtäviin. Helpommat ohjelmointitehtävät ja niiden laadun vertautuminen ihmisiin tuottaa alustavasti lupaavia tuloksia, mutta tarvitsee jatkotutkimusta.
Työssä selviää, että ohjelmistokehittäjien korvaaminen suurilla kielimalleilla on epätodennäköistä lähitulevaisuudessa. Ohjelmistokehityksen tehostamisen kannalta on kuitenkin järkevää selvittää suurten kielimallien ja ihmisten vahvuudet, ja jakaa ohjelmistokehityksen työtehtäviä näiden mukaan. Nykyisellään suurten kielimallien vahvuudet näyttäisivät olevan yksinkertaiset aikaa vievät tehtävät ja staattinen analyysi, ihmisten vahvuudet taas kontekstiin sitominen, tiedon soveltaminen ja kriittisyys.
Suurten kielimallien käyttökohteita ohjelmistokehityksessä ovat muun muassa koodinäytteiden luominen, analyyttiset kysymykset ja reaaliaikainen koodin kommentointi. Nykytekniikalla suuret kielimallit ovat erityisen hyödyllisiä yksinkertaisiin ja rajattuihin ohjelmistokehityksen pyyntöihin.
Suurten kielimallien käytön riskeihin kuuluvat esimerkiksi virheelliset vastaukset, kielimallin koulutusdatan laatu ja tietoturvakysymykset. Jotta ohjelmistokehittäjä voi käyttää turvallisesti ja tehokkaasti suuria kielimalleja, tulee hänen osata tarkastella suurten kielimallien tuottamia vastauksia kriittisesti ja luoda oikeanlaisia käskyjä suurille kielimallille.
Työssä käsitellään myös tutkimusta ChatGPT:n tuottaman ohjelmiston laadusta. Tutkimus on tällä hetkellä niin rajattua, että siitä ei voida vetää suuria johtopäätöksiä. Kaikissa käsitellyissä tutkimuksissa on kuitenkin yhtenevä ajatus siitä, että nykyteknologialla ChatGPT ei osaa tuottaa luotettavasti vastauksia vaikeisiin ohjelmointitehtäviin. Helpommat ohjelmointitehtävät ja niiden laadun vertautuminen ihmisiin tuottaa alustavasti lupaavia tuloksia, mutta tarvitsee jatkotutkimusta.
Työssä selviää, että ohjelmistokehittäjien korvaaminen suurilla kielimalleilla on epätodennäköistä lähitulevaisuudessa. Ohjelmistokehityksen tehostamisen kannalta on kuitenkin järkevää selvittää suurten kielimallien ja ihmisten vahvuudet, ja jakaa ohjelmistokehityksen työtehtäviä näiden mukaan. Nykyisellään suurten kielimallien vahvuudet näyttäisivät olevan yksinkertaiset aikaa vievät tehtävät ja staattinen analyysi, ihmisten vahvuudet taas kontekstiin sitominen, tiedon soveltaminen ja kriittisyys.
Kokoelmat
- Kandidaatintutkielmat [8997]