Software development for scientific computing using AI code generation
Ylihurula, Aleksi; Niinimäki, Verneri; Paavilainen, Matias (2024-06-07)
Ylihurula, Aleksi
Niinimäki, Verneri
Paavilainen, Matias
A. Ylihurula; V. Niinimäki; M. Paavilainen
07.06.2024
© 2024 Aleksi Ylihurula, Verneri Niinimäki, Matias Paavilainen. Ellei toisin mainita, uudelleenkäyttö on sallittu Creative Commons Attribution 4.0 International (CC-BY 4.0) -lisenssillä (https://creativecommons.org/licenses/by/4.0/). Uudelleenkäyttö on sallittua edellyttäen, että lähde mainitaan asianmukaisesti ja mahdolliset muutokset merkitään. Sellaisten osien käyttö tai jäljentäminen, jotka eivät ole tekijän tai tekijöiden omaisuutta, saattaa edellyttää lupaa suoraan asianomaisilta oikeudenhaltijoilta.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:oulu-202406074295
https://urn.fi/URN:NBN:fi:oulu-202406074295
Tiivistelmä
Artificial intelligence (AI) has undergone notable transformations in recent years. These transformations include substantial technological breakthroughs and growing acceptance of AI-driven products and services among users, primarily made possible by increased accessibility and near-human-like accurate functionalities of large language models (LLM). One particular application is AI code generation which is likely to cause major upheaval in the software engineering field. While AI is efficient in writing simple software programs, a key question of interest remains: can professional-grade software tailored for the domain of scientific computing be effectively developed with the assistance of LLMsbysmaller development teams within condensed time frames, without domain expertise? This thesis aims to answer this question by exploring the application of LLMs like GitHub Copilot in programming complex software systems, using a satellite simulation application as a case study. The application implements a 3D simulation where the movements of satellites and calculated connections to the ground stations are dynamically visualised. The findings indicate that while LLMs provide significant assistance, they require careful professional oversight to preserve accuracy and functionality. Overall, this study contributes to the understanding of the practical applications and limitations of LLMs in software engineering, offering insights into how these tools can be optimised for better performance in software development. This study can also serve as a benchmark for future studies researching the potential of newer LLMs with improved performance. Tekoälyn alalla on tapahtunut huomattavia muutoksia viimeisimpien vuosien aikana. Näihin muutoksiin kuuluu suuret teknologiset läpimurrot ja tekoälypohjaisten tuotteiden lisääntynyt hyväksyntä käyttäjien keskuudessa, jotka on tehnyt mahdolliseksi pääosin kasvanut saavutettavuus ja suurten kielimallien lähes ihmismäinen tarkkuus tietyissä tehtävissä. Yksi tekoälyn käyttökohteista on koodin tuottaminen, mikä todennäköisesti tulee aiheuttamaan suuria muutoksia ohjelmistokehityksen alalla. Vaikka tekoäly on tehokas yksinkertaisten ohjelmien kirjoittaja, on edelleen avainkysymyksenä: voivatko pienet kehitystiimit tiivistetyssä aikaikkunassa ja ilman alan tuntemusta kehittää tiettyyn tieteelliseen laskentaan räätälöidyn ohjelmiston tehokkaasti suurten kielimallien avulla? Tämä tutkimus pyrkii vastaamaan tähän kysymykseen tutkimalla suurten kielimallien, kuten GitHubin Copilotin, käyttöä monimutkaisten ohjelmistojärjestelmien ohjelmoinnissa käyttäen satelliittisimulaatiosovellusta tapaustutkimuksena. Sovellus toteuttaa 3D simulaation, jossa satelliittien liikkeitä ja laskettuja yhteyksiä maassa sijaitseviin tukiasemiin visualisoidaan dynaamisesti. Tämän tutkimuksen tulokset viittaavat siihen, että vaikka suuret kielimallit tarjoavat merkittävää apua ohjelmistokehitykseen, ne vaativat myös huolellista sekä asiantuntevaa tarkkailua tarkkuuden ja toiminnallisuuden ylläpitämiseksi. Yleisellä tasolla tämä tutkimus edistää suurten kielimallien käytännön sovellusten ja rajoitusten ymmärtämistä ohjelmistotekniikassa, tarjoten näkemyksiä siitä, kuinka näitä työkaluja voidaan optimoida paremman suorituskyvyn saavuttamiseksi ohjelmistokehityksessä. Tämä tutkimus voi myös toimia vertailukohtana tulevaisuuden tutkimuksille, jotka tutkivat uudempien ja suorituskykyisempien suurten kielimallien potentiaalia.
Kokoelmat
- Avoin saatavuus [37744]