Efficiency of small open-source LLMs in software coding : Evaluation of LLMs and consumer hardware
Jussila, Petrus (2024)
Jussila, Petrus
2024
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
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-05-23
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202404294863
https://urn.fi/URN:NBN:fi:tuni-202404294863
Tiivistelmä
Large language models (LLMs) are widely used in many different fields, for example in software development. They can be used to generate and review code which can make development process easier, faster, and cheaper. Problems arise when we need to validate the generated responses. Is the code working and doing what it’s supposed to do? Deployment of LLM requires a lot of processing power and memory from the hardware which needs to be taken into consideration. Can these LLMs be efficiently run with consumer-tier hardware?
HumanEval is an open-source dataset that can be used to evaluate LLMs capability in producing efficient and understandable code. It contains both hand-written coding tasks and their respective hand-written solutions. Evaluation is based on comparing the generated response's functionality to the one found in dataset's example solutions. It’s a widely used dataset and many different LLMs include its evaluation scores in their reports and advertisements.
To evaluate how well our hardware can run LLMs, we use an open-source benchmark called AI Benchmark Alpha. This benchmark evaluates the hardware’s potential in running different artificial intelligences and their capabilities, including text generation which is the key in code generative AIs.
In this work we are evaluating multiple different open-source LLMs that have been advertised as efficient tools in software development, whether through managing project or helping in coding. Through the evaluation scores we can see how they measure up to each other and when compared to big and popular LLMs, like ChatGPT, are they even close to it. Results show that smallsized LLMs, those with three or less billion parameters, should be used with caution. They produce often inaccurate responses which are incapable of solving simple and advanced coding tasks. Important is to notice that provided answer could guide the user towards the right answer even when failing the test case in the benchmark. With current state of consumer hardware, the deployment of LLMs is very limited. To efficiently produce code, users should opt into either making initial investment for hardware that could run larger LLMs or use commercial ones. The latter raises security concerns as the user alone wouldn’t handle their own data anymore. Isot kielimallit ovat hyvin yleisessä käytössä eri aloilla. Niitä voidaan käyttää koodin luomiseen sekä sen tarkastamiseen, mikä tekee ohjelmiston tuotantoprosessista helpompaa, nopeampaa ja edullisempaa. Ongelmia ilmaantuu, kun tarpeena on validoida generoidut vastaukset. Onko koodi toimivaa ja tekeekö se mitä sen halutaan tekevän? Suurten kielimallien ajaminen vaatii paljon prosessointitehoa ja muistia, mikä pitää ottaa huomioon. Pystytäänkö näitä suuria kielimalleja ajamaan tehokkaasti kuluttajatasoisilla laitteilla?
HumanEval on avoimen lähdekoodin datasetti, jota voidaan käyttää kielimallin tuottaman koodin arviointiin. Se sisältää käsin kirjoitettuja ohjelmointitehtäviä ja tehtäviä vastaavia esimerkkivastauksia. Arviointi perustuu generoidun vastauksen toimivuuden vertaamiseen datasetistä löytyvän esimerkkivastauksen kanssa. Se on yleisesti käytetty datasetti ja monet eri kielimallit sisältävät tämän arvioinnin tuloksia niiden raporteissa sekä mainoksissa.
Laitteiston arviointiin käytämme avoimen lähdekoodin ohjelmaa AI Benchmark Alpha. Tämä ohjelma arvioi laitteiston kykeneväisyyttä ajaa eri tekoälyjä sekä niiden kykeneväisyyttä eri osaalueilla, kuten tekstin tuotannossa, mikä on avain roolissa koodia tuottavissa suurissa kielimalleissa.
Tässä työssä arvioimme useita avoimen lähdekoodin suuria kielimalleja, joita on mainostettu tehokkaina työkaluina ohjelmoinnissa, joko projektin hallinnan tai koodaamisen työkaluina. Saatujen tulosten perusteella näemme, kuinka nämä suuret kielimallit sijoittuvat toisiinsa nähden. Tämän lisäksi vertaamme tuloksia myös suosittuihin kielimalleihin, kuten ChatGPT:hen ja arvioimme, ovatko tulokset lähellä. Tulokset näyttävät, että pienikokoiset suuret kielimallit tuottavat usein epätarkkoja vastauksia yksinkertaisiin ja vaikeampiinkin koodaustehtäviin. Tärkeää on huomata, että myös osittain väärät vastaukset voivat ohjata käyttäjää oikean vastauksen suuntaan. Nykyisillä kuluttajatason laitteilla ei ole kykeneväisyyttä ajaa suurikokoisia suuria kielimalleja. Jotta käyttäjät voisivat tuottaa tehokkaasti koodia, on harkittava joko ison investoinnin toteutusta laitteistolle tai siirtyä käyttämään kaupallisia kielimalleja. Jälkimmäinen kuitenkin herättää tietoturvallisuus kysymyksiä, sillä käyttäjä yksin ei olisi enää datan käyttäjänä.
HumanEval is an open-source dataset that can be used to evaluate LLMs capability in producing efficient and understandable code. It contains both hand-written coding tasks and their respective hand-written solutions. Evaluation is based on comparing the generated response's functionality to the one found in dataset's example solutions. It’s a widely used dataset and many different LLMs include its evaluation scores in their reports and advertisements.
To evaluate how well our hardware can run LLMs, we use an open-source benchmark called AI Benchmark Alpha. This benchmark evaluates the hardware’s potential in running different artificial intelligences and their capabilities, including text generation which is the key in code generative AIs.
In this work we are evaluating multiple different open-source LLMs that have been advertised as efficient tools in software development, whether through managing project or helping in coding. Through the evaluation scores we can see how they measure up to each other and when compared to big and popular LLMs, like ChatGPT, are they even close to it. Results show that smallsized LLMs, those with three or less billion parameters, should be used with caution. They produce often inaccurate responses which are incapable of solving simple and advanced coding tasks. Important is to notice that provided answer could guide the user towards the right answer even when failing the test case in the benchmark. With current state of consumer hardware, the deployment of LLMs is very limited. To efficiently produce code, users should opt into either making initial investment for hardware that could run larger LLMs or use commercial ones. The latter raises security concerns as the user alone wouldn’t handle their own data anymore.
HumanEval on avoimen lähdekoodin datasetti, jota voidaan käyttää kielimallin tuottaman koodin arviointiin. Se sisältää käsin kirjoitettuja ohjelmointitehtäviä ja tehtäviä vastaavia esimerkkivastauksia. Arviointi perustuu generoidun vastauksen toimivuuden vertaamiseen datasetistä löytyvän esimerkkivastauksen kanssa. Se on yleisesti käytetty datasetti ja monet eri kielimallit sisältävät tämän arvioinnin tuloksia niiden raporteissa sekä mainoksissa.
Laitteiston arviointiin käytämme avoimen lähdekoodin ohjelmaa AI Benchmark Alpha. Tämä ohjelma arvioi laitteiston kykeneväisyyttä ajaa eri tekoälyjä sekä niiden kykeneväisyyttä eri osaalueilla, kuten tekstin tuotannossa, mikä on avain roolissa koodia tuottavissa suurissa kielimalleissa.
Tässä työssä arvioimme useita avoimen lähdekoodin suuria kielimalleja, joita on mainostettu tehokkaina työkaluina ohjelmoinnissa, joko projektin hallinnan tai koodaamisen työkaluina. Saatujen tulosten perusteella näemme, kuinka nämä suuret kielimallit sijoittuvat toisiinsa nähden. Tämän lisäksi vertaamme tuloksia myös suosittuihin kielimalleihin, kuten ChatGPT:hen ja arvioimme, ovatko tulokset lähellä. Tulokset näyttävät, että pienikokoiset suuret kielimallit tuottavat usein epätarkkoja vastauksia yksinkertaisiin ja vaikeampiinkin koodaustehtäviin. Tärkeää on huomata, että myös osittain väärät vastaukset voivat ohjata käyttäjää oikean vastauksen suuntaan. Nykyisillä kuluttajatason laitteilla ei ole kykeneväisyyttä ajaa suurikokoisia suuria kielimalleja. Jotta käyttäjät voisivat tuottaa tehokkaasti koodia, on harkittava joko ison investoinnin toteutusta laitteistolle tai siirtyä käyttämään kaupallisia kielimalleja. Jälkimmäinen kuitenkin herättää tietoturvallisuus kysymyksiä, sillä käyttäjä yksin ei olisi enää datan käyttäjänä.