Large Language Model Prompt Engineering for Software Development
Törni, Mikael (2025)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2025060621081
https://urn.fi/URN:NBN:fi:amk-2025060621081
Tiivistelmä
Suuria kielimalleja voidaan käyttää tekstin tuottamiseen syöttämällä
kehotteita, jotka ohjaavat niiden käyttäytymistä. Yksi merkittävimmistä
käyttötavoista näille malleille on ohjelmistokehitys. Uusimmat kielimallit, kuten
GPT-4 ja Claude 3.5 Sonnet ovat osoittautuneet hyvin päteviksi koodaajiksi.
Suurten kielimallien huolimaton käyttö ohjelmistokehityksessä voi kuitenkin
johtaa siihen, että projektin koodikannasta tulee hyvin vaikeasti ylläpidettävä.
Opinnäytetyö keskittyy ratkaisemaan tämän ongelman luomalla räätälöityjä
kehotteita ohjelmistokehitystä varten. Ne auttavat ohjelmistokehitysprosessia
kielimalleja hyödynnettäessä. Tämän avulla koodin struktuuri pysyy
huomattavasti ylläpidettävämpänä. Sen lisäksi myös asianmukaiset
virheenkorjauslinjat lisätään automaattisesti koodiin, jotta ongelmatilanteiden
ilmestyessä sekä ihminen että kielimalli ymmärtävät paremmin, mikä koodissa
menee pieleen.
Työn viitekehystä avataan tutkimalla neuroverkkojen historiaa ja että miten ne
kehittyivät nykyajan kielimalleiksi. Työtä varten tutkitaan, miten nämä mallit
toimivat, ja niiden avainkäsitteet selitetään omassa kappaleessaan. Työ myös
tutkii monia eri tekniikoita, joita voidaan hyödyntää kehotesuunnittelussa.
Lisäksi selvitetään, miten käyttäjä- ja järjestelmäkehotteet eroavat toisistaan
käytännöllisesti. Tämän jälkeen parhaat tekniikat valitaan käytettäväksi työtä
varten. Miten nämä tekniikat toimivat selitetään niiden omassa osiossaan auki.
Eri kielimallien suorituskykytestejä tutkitaan, ja tämän tiedon avulla tehdään
johtopäätös, mitä tullaan käyttämään työn toteuttamisessa.
Työn päätteeksi luodaan moniagenttijärjestelmä ohjelmistokehitystä varten.
Tämä ohjelma ottaa syötteeksi käyttäjän pyynnön, tekee suunnitelman
monella eri vaiheella, ja sen jälkeen tuottaa ohjelman käyttäen eri agentteja,
jotka ovat erikoistunut suorittamaan oman tehtävänsä yhteistyössä muiden
agenttien kanssa omassa ryhmäkeskustelussaan.
Kehotteet, jotka kehitettiin tutkimusta varten, arvioitiin käyttämällä tähän
tarkoitettua testausjärjestelmää. Järjestelmäkehotteet, jotka kehitettiin
tutkimusta varten, joita yksinkertaiset koodaustehtävä käyttäjä kehotteet
hyödyntävät, ajettiin tutkimusta kehitetyn järjestelmäkehotteiden kanssa
testauskehikon läpi. Kehotteiden toimivuus varmistettiin onnistuneilla testeillä,
joten tutkimuksen päämäärät suoritettiin onnistuneesti.
kehotteita, jotka ohjaavat niiden käyttäytymistä. Yksi merkittävimmistä
käyttötavoista näille malleille on ohjelmistokehitys. Uusimmat kielimallit, kuten
GPT-4 ja Claude 3.5 Sonnet ovat osoittautuneet hyvin päteviksi koodaajiksi.
Suurten kielimallien huolimaton käyttö ohjelmistokehityksessä voi kuitenkin
johtaa siihen, että projektin koodikannasta tulee hyvin vaikeasti ylläpidettävä.
Opinnäytetyö keskittyy ratkaisemaan tämän ongelman luomalla räätälöityjä
kehotteita ohjelmistokehitystä varten. Ne auttavat ohjelmistokehitysprosessia
kielimalleja hyödynnettäessä. Tämän avulla koodin struktuuri pysyy
huomattavasti ylläpidettävämpänä. Sen lisäksi myös asianmukaiset
virheenkorjauslinjat lisätään automaattisesti koodiin, jotta ongelmatilanteiden
ilmestyessä sekä ihminen että kielimalli ymmärtävät paremmin, mikä koodissa
menee pieleen.
Työn viitekehystä avataan tutkimalla neuroverkkojen historiaa ja että miten ne
kehittyivät nykyajan kielimalleiksi. Työtä varten tutkitaan, miten nämä mallit
toimivat, ja niiden avainkäsitteet selitetään omassa kappaleessaan. Työ myös
tutkii monia eri tekniikoita, joita voidaan hyödyntää kehotesuunnittelussa.
Lisäksi selvitetään, miten käyttäjä- ja järjestelmäkehotteet eroavat toisistaan
käytännöllisesti. Tämän jälkeen parhaat tekniikat valitaan käytettäväksi työtä
varten. Miten nämä tekniikat toimivat selitetään niiden omassa osiossaan auki.
Eri kielimallien suorituskykytestejä tutkitaan, ja tämän tiedon avulla tehdään
johtopäätös, mitä tullaan käyttämään työn toteuttamisessa.
Työn päätteeksi luodaan moniagenttijärjestelmä ohjelmistokehitystä varten.
Tämä ohjelma ottaa syötteeksi käyttäjän pyynnön, tekee suunnitelman
monella eri vaiheella, ja sen jälkeen tuottaa ohjelman käyttäen eri agentteja,
jotka ovat erikoistunut suorittamaan oman tehtävänsä yhteistyössä muiden
agenttien kanssa omassa ryhmäkeskustelussaan.
Kehotteet, jotka kehitettiin tutkimusta varten, arvioitiin käyttämällä tähän
tarkoitettua testausjärjestelmää. Järjestelmäkehotteet, jotka kehitettiin
tutkimusta varten, joita yksinkertaiset koodaustehtävä käyttäjä kehotteet
hyödyntävät, ajettiin tutkimusta kehitetyn järjestelmäkehotteiden kanssa
testauskehikon läpi. Kehotteiden toimivuus varmistettiin onnistuneilla testeillä,
joten tutkimuksen päämäärät suoritettiin onnistuneesti.