Generative AI for automating software uplifts
2024 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE credits
Student thesisAlternative title
Generativ AI för Programuppgraderingar (Swedish)
Abstract [en]
Third-party libraries are essential to modern software development since they provide pre-built functionality that accelerate the processes. These libraries are however updated frequently, which introduce changes that can potentially break software systems. Therefore, it is important to identify and manage these so-called breaking changes properly. Existing tools such as APIDiff offer capabilities to compare library versions and detect breaking changes, but it remains a research tool and is not production-ready, making it unsuitable for production use.Recently, Large Language Models (LLMs) have shown huge potential in various areas, including software development. However, the use of online LLM tools can pose risks such as information leaks, making a locally executed Generative AI model preferable for security and efficiency. Our aim is to develop a model capable of identifying whether changes are breaking or not, thereby helping software developers in maintaining software.For this study, two base models are selected: Code Llama (7 billion parameters), a decoder-only model, and Code T5+ (770 million parameters), an encoder-decoder model. Both models were pre-trained on code and natural language data. Datasets created based on APIDiff results applied on selected Java repositories are curated for fine-tuning the models. Quantized Low Rank Adaptation (QLoRA) and full fine-tuning are employed on Code Llama 7B and Code T5+ 770M, respectively. Experiments are conducted using various learning rates, maximum steps, and datasets, with evaluations based on metrics such as accuracy, precision, and recall. The final model achieves a high performance, with an accuracy of 98.76%, precision of 98.58%, and recall of 99.76% on the test dataset.This thesis demonstrates the feasibility of using generative AI models to detect breaking changes in software libraries. Furthermore, practical applications of the model are outlined.
Abstract [sv]
Tredjepartsbibliotek är avgörande för modern mjukvaruutveckling eftersom de tillhandahåller färdig funktionalitet som påskyndar utvecklingsprocesserna. Dessa bibliotek uppdateras dock ofta, vilket introducerar förändringar som potentiellt får befintliga programvarusystem att sluta fungera. Därför är det viktigt att identifiera och hantera dessa icke bakåtkompatibla förändringar på ett korrekt sätt. Befintliga verktyg som APIDiff erbjuder möjligheten att jämföra olika versioner av bibliotek och upptäcka dessa kritiska förändringar, men det är fortfarande ett forskningsverktyg och är inte redo för produktion, vilket gör det olämpligt för användning i produktionsmiljöer.Nyligen har stora språkmodeller (LLM) visat enorm potential inom olika områden, inklusive mjukvaruutveckling. Användningen av online LLM-verktyg kan dock innebära risker, såsom informationsläckor, vilket gör att en lokalt exekverad generativ AI-modell föredras för säkerhet och effektivitet. Vårt mål är att utveckla en modell som kan identifiera vilka förändringar som inte är bakåtkompatibla, och därigenom hjälpa mjukvaruutvecklare att underhålla sin mjukvara.För denna studie har två basmodeller valts ut: Code Llama (7 miljarder parametrar), en modell med enbart avkodare (eng: decoder), och Code T5+ (770 miljoner parametrar), en kodare-avkodarmodell (eng: encoder-decoder). Båda modellerna har förtränats på datorkod och naturliga språkdata. Datauppsättningar som skapats baserat på APIDiff-resultat applicerade på utvalda Java-repositorier har kurerats för att finjustera modellerna. Quantized Low Rank Adaptation (QLoRA) och full finjustering används på Code Llama 7B respektive Code T5+ 770M. Experiment utförs med olika inlärningshastigheter, maximala steg och datauppsättningar, med utvärderingar baserade på mått som noggrannhet, precision och återkallelse (eng: recall). Den slutliga modellen uppnår en hög prestanda, med en noggrannhet på 98.76%, precision på 98.58% och återkallelse på 99.76% på testdatauppsättningen.Den här avhandlingen visar potentialen i att använda generativa AI-modeller för att upptäcka icke bakåtkompatibla förändringar i programvarubibliotek. Vidare beskrivs de praktiska tillämpningarna av modellen.
Place, publisher, year, edition, pages
2024. , p. 80
Series
TRITA-SCI-GRU ; 2024:426
Keywords [en]
Generative AI, Transformer, Software, Uplift, Breaking Change
Keywords [sv]
Generativ AI, Transformator, Software, Uplift, Breaking Change
National Category
Computational Mathematics
Identifiers
URN: urn:nbn:se:kth:diva-359219OAI: oai:DiVA.org:kth-359219DiVA, id: diva2:1932354
External cooperation
Ericsson
Educational program
Master of Science - Applied and Computational Mathematics
Supervisors
Examiners
2025-01-292025-01-292025-01-29Bibliographically approved