Suuret kielimallit ohjelmistokehityksen työkaluina: Kirjallisuuskatsaus
Liukko, Väinö (2024)
Liukko, Väinö
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-03-07
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202402192327
https://urn.fi/URN:NBN:fi:tuni-202402192327
Tiivistelmä
Suuret kielimallit teknologiana ja niihin pohjautuvat tekoälysovellukset, kuten ChatGPT ja GitHub Copilot, ovat lisänneet kiinnostusta tekoälyn hyödyntämiseen työtehtävissä. Tämä näkyy monella alalla uutena tutkimuksena, myös ohjelmistotekniikan parissa. Kielimallipohjaiset tekoälysovellukset kykenevät tuottamaan koodia, kirjoittamaan käyttäjätarinoita, jäljittämään vaatimuksia ja korjaamaan bugeja.
Tämän työn tavoitteena on kartoittaa kirjallisuuskatsauksen menetelmin, miten kielimallisovelluksia voidaan hyödyntää ohjelmistokehityksessä. Tavoitteena on tunnistaa trendejä ja puutteita tutkimuksessa, jotta tulevaa tutkimusta voidaan painottaa paremmin. Tämän tueksi esitellään kielimallien teknistä toteutusta, koulutusmenetelmiä, käyttöä ja tunnettuja rajoitteita. Näitä rajoitteita ovat muun muassa koulutusaineiston ja kontekstin rajallisuus, kielimallien vastausten epädeterministisyys sekä hallusinointi. Hallusinoinnilla viitataan kielimallien tapaan joissain tilanteissa tuottaa valheellista tai järjetöntä tekstiä.
Kirjallisuuskatsauksen pohjalta huomattiin, että tämänhetkinen tutkimus aiheesta on painottunut OpenAI:n kielimalleihin ja erityisesti ChatGPT ja Github Copilot -sovelluksiin. Yhtenä selityksenä tähän on sovellusten saama julkisuus sekä saavutettavuus. Tutkimusta kielimallien soveltamisesta löytyy laajasti koko ohjelmiston elinkaarelta, alkaen vaatimusmäärittelystä aina suunnitteluun, toteutukseen ja testaukseen asti. Käyttäjäkyselyt antavat näyttöä ohjelmistoassistenttien käytöstä ohjelmistoteollisuudessa niin toteutuksen kuin testauksen tehtävissä.
Kirjallisuuskatsaus tukee aiemmin tunnistetuja havaintoja kielimallien rajoitteista, joiden seurauksena mallien luotettava hyödyntäminen vaatii ihmisen valvontaa. Parhaat tulokset saavutetaan lähestymällä kielimalleja ohjelmistokehityksen työkaluna. Työkaluna, joka vaatii käyttäjältään tietotaitoa, mutta mahdollistaa työn tehostamisen. Näin ollen voidaan arvioida kielimallisovellusten käyttöönoton vaikuttavan ohjelmistoalalla ihmisten työpanosta tehostavasti, eikä ihmistä korvaavana.
Tämän työn tavoitteena on kartoittaa kirjallisuuskatsauksen menetelmin, miten kielimallisovelluksia voidaan hyödyntää ohjelmistokehityksessä. Tavoitteena on tunnistaa trendejä ja puutteita tutkimuksessa, jotta tulevaa tutkimusta voidaan painottaa paremmin. Tämän tueksi esitellään kielimallien teknistä toteutusta, koulutusmenetelmiä, käyttöä ja tunnettuja rajoitteita. Näitä rajoitteita ovat muun muassa koulutusaineiston ja kontekstin rajallisuus, kielimallien vastausten epädeterministisyys sekä hallusinointi. Hallusinoinnilla viitataan kielimallien tapaan joissain tilanteissa tuottaa valheellista tai järjetöntä tekstiä.
Kirjallisuuskatsauksen pohjalta huomattiin, että tämänhetkinen tutkimus aiheesta on painottunut OpenAI:n kielimalleihin ja erityisesti ChatGPT ja Github Copilot -sovelluksiin. Yhtenä selityksenä tähän on sovellusten saama julkisuus sekä saavutettavuus. Tutkimusta kielimallien soveltamisesta löytyy laajasti koko ohjelmiston elinkaarelta, alkaen vaatimusmäärittelystä aina suunnitteluun, toteutukseen ja testaukseen asti. Käyttäjäkyselyt antavat näyttöä ohjelmistoassistenttien käytöstä ohjelmistoteollisuudessa niin toteutuksen kuin testauksen tehtävissä.
Kirjallisuuskatsaus tukee aiemmin tunnistetuja havaintoja kielimallien rajoitteista, joiden seurauksena mallien luotettava hyödyntäminen vaatii ihmisen valvontaa. Parhaat tulokset saavutetaan lähestymällä kielimalleja ohjelmistokehityksen työkaluna. Työkaluna, joka vaatii käyttäjältään tietotaitoa, mutta mahdollistaa työn tehostamisen. Näin ollen voidaan arvioida kielimallisovellusten käyttöönoton vaikuttavan ohjelmistoalalla ihmisten työpanosta tehostavasti, eikä ihmistä korvaavana.
Kokoelmat
- Kandidaatintutkielmat [8381]