Suurten kielimallien käyttö peleissä
Kiviranta, Oskari (2024)
Kiviranta, Oskari
2024
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202403275260
https://urn.fi/URN:NBN:fi:amk-202403275260
Tiivistelmä
Tekoäly on kehittynyt viime vuosina nopeaa tahtia, ja erityisesti suuret kielimallit ovat nousseet suosituksi puheenaiheeksi. Opinäytetyön tavoite on pohtia ja testata näiden kielimallien käyttökelpoisuutta pelien tarinankerronnassa.
Esimerkeissä käytetään Unity-pelimoottoria ja kielimallien API-kutsut tehdään
Pythonilla.
Python-koodia tai kooditiedostoja ei oletuksena pysty suorittamaan C#:lla,
vaan sitä varten pitää hankkia Python.NET-lisäosa käyttäen NuGet-pakkaus hallitsijaa. Lisäosaa ei pysty suoraan hankkimaan esim. Visual Studion kautta,
koska Unity-projektin sisällä sitä ei tulla huomioimaan, sillä se on asennettuna
muualle. Unityyn pitää asentaa yhteisön tekemä pakkaus ”NuGetForUnity”,
joka toimii samalla tavalla kuin Visual Studion NuGet. Tätä pakkausta käyttäen asennetut lisäosat toimivat Unityn sisällä. Ennen API-kutsun tekoa pitää
vielä miettiä sopiva prompti eli ne ohjeet ja avainsanat, jotka annetaan kielimallille ja jonka mukaan takaisin tuleva data muotoillaan. Haluttaessa kielimalli voi palauttaa dataa JSON-muodossa, mutta sille pitää tehdä olioluokat
C#:lla siten, että olion muuttujien nimet noudattavat JSON-objektissa olevia
vastaavia nimiä.
Tulokset näyttivät lupaavilta tulevaisuutta ajatellen, mutta nykyisin kielimallien
käyttö ainakin API:n kautta tuntuu hitaalta, ja hitaus vaan kasvaa, mitä isompaa mallia käyttää. 5–10 sekunnin odotus jokaisella kutsulla helposti rikkoo
pelin tarinaan uppoutumisen. Tällä hetkellä, jos haluaa käyttää kielimalleja peleissä, kannattaa pelit rakentaa siten, että kielimallien tekstin luominen tapahtuu ennen pelin käynnistymistä, ettei pelaajan tarvitse odottaa.
Esimerkeissä käytetään Unity-pelimoottoria ja kielimallien API-kutsut tehdään
Pythonilla.
Python-koodia tai kooditiedostoja ei oletuksena pysty suorittamaan C#:lla,
vaan sitä varten pitää hankkia Python.NET-lisäosa käyttäen NuGet-pakkaus hallitsijaa. Lisäosaa ei pysty suoraan hankkimaan esim. Visual Studion kautta,
koska Unity-projektin sisällä sitä ei tulla huomioimaan, sillä se on asennettuna
muualle. Unityyn pitää asentaa yhteisön tekemä pakkaus ”NuGetForUnity”,
joka toimii samalla tavalla kuin Visual Studion NuGet. Tätä pakkausta käyttäen asennetut lisäosat toimivat Unityn sisällä. Ennen API-kutsun tekoa pitää
vielä miettiä sopiva prompti eli ne ohjeet ja avainsanat, jotka annetaan kielimallille ja jonka mukaan takaisin tuleva data muotoillaan. Haluttaessa kielimalli voi palauttaa dataa JSON-muodossa, mutta sille pitää tehdä olioluokat
C#:lla siten, että olion muuttujien nimet noudattavat JSON-objektissa olevia
vastaavia nimiä.
Tulokset näyttivät lupaavilta tulevaisuutta ajatellen, mutta nykyisin kielimallien
käyttö ainakin API:n kautta tuntuu hitaalta, ja hitaus vaan kasvaa, mitä isompaa mallia käyttää. 5–10 sekunnin odotus jokaisella kutsulla helposti rikkoo
pelin tarinaan uppoutumisen. Tällä hetkellä, jos haluaa käyttää kielimalleja peleissä, kannattaa pelit rakentaa siten, että kielimallien tekstin luominen tapahtuu ennen pelin käynnistymistä, ettei pelaajan tarvitse odottaa.