Cost-Effective Detection of Self-Admitted Technical Debt: A Collaborative Framework of Proxy Active Learning and Large Language Models
Dit artikel stelt een kosteneffectief collaboratief framework voor dat een BERT-gebaseerde proxy active learning-strategie combineert met full-parameter Flan-T5 training om Self-Admitted Technical Debt nauwkeurig te detecteren met slechts 30% van de gelabelde data die vereist is door traditionele full-supervision methoden.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
In het leven van een softwareproject wint snelheid vaak het van perfectie. Wanneer ontwikkelaars strijden om een deadline te halen, maken ze soms een bewuste keuze om code te schrijven die niet helemaal juist is, wetende dat ze dit later zullen moeten herstellen. Ze laten aantekeningen achter in de code zelf, waarin ze toegeven dat dit gedeelte een tijdelijke oplossing of een compromis is. In de softwarewereld staat dit bekend als zelfgeëindigde technische schuld (self-admitted technical debt). Het is een verborgen belasting op de toekomst; hoewel het het team helpt om vandaag een product te leveren, maakt die slordige code de software moeilijker te begrijpen, gevoeliger voor fouten en veel duurder in onderhoud morgen. Het vinden van deze verborgen aantekeningen is cruciaal voor het gezond houden van software, maar het is een moeilijke taak. De aantekeningen liggen begraven in miljoenen regels tekst, en ze zijn zeldzaam, waarbij ze vaak slechts in één of twee van de honderd commentaren voorkomen. Bovendien is de gebruikte taal informeel en vol menselijke nuances, wat het voor standaard computerprogramma's moeilijk maakt om ze te ontdekken zonder een enorme hoeveelheid menselijke hulp om het systeem te leren waar het naar moet zoeken.
Een team onderzoekers van de Jilin Universiteit in China heeft een nieuwe manier ontwikkeld om deze technische schuld te vinden die tijd en geld bespaart zonder in te boeten op nauwkeurigheid. Ze stonden voor een dilemma: de krachtigste computermodellen van dit moment, bekend als large language models, zijn uitstekend in het begrijpen van menselijke taal en zouden deze schuldnotities met hoge precisie kunnen opsporen, maar ze zijn extreem duur om te draaien en vereisen enorme hoeveelheden gelabelde data om te leren. Aan de andere kant zijn kleinere, snellere modellen goedkoop in gebruik, maar missen ze vaak de subtiele betekenis achter de aantekeningen. De onderzoekers losten dit op door een tweestaps-partnerschap te creëren tussen een snel, eenvoudig model en een krachtig, complex model. Ze gebruikten eerst het snelle model om als verkenner te fungenen, die duizenden codecommentaren doorzoekt om de meest interessante en moeilijke voorbeelden te vinden. Alleen deze geselecteerde, hoogwaardige voorbeelden werden vervolgens doorgegeven aan het krachtige model voor diep leren. Deze aanpak stelde hen in staat om een zeer nauwkeurig systeem te trainen met slechts 30 procent van de data die normaal gesproken nodig zou zijn.
De studie, die deze methode testte op tien populaire open-source softwareprojecten geschreven in de programmeertaal Java, toonde aan dat deze collaboratieve strategie opmerkelijk goed werkt. Door het snelle model te gebruiken om de data te filteren, waren de onderzoekers in staat om het krachtige model net zo goed te trainen als wanneer het op de volledige dataset zou zijn getraind, maar met een fractie van de handmatige inspanning. Sterker nog, voor verschillende van de geteste projecten presteerde de nieuwe methode zelfs beter dan de standaardaanpak die alle data gebruikt. De onderzoekers ontdekten dat wanneer ze het trainingsproces stopten na het labelen van slechts 30 procent van de commentaren, het systeem al even goed was als, of soms zelfs beter dan, systemen die getraind waren op 100 procent van de data. Dit suggereert dat de sleutel tot efficiëntie niet alleen het hebben van meer data is, maar het hebben van de juiste data. Het snelle model identificeerde succesvol de specifieke commentaren die het meest nuttig waren om het systeem te onderwijzen, waardoor het krachtige model snel en effectief kon leren van een kleine, gecureerde set voorbeelden.
Dit werk keek ook naar de vraag of de methode kon werken over verschillende softwareprojecten heen, een scenario waarin een systeem dat op één project is getraind, wordt gevraagd om schuld te vinden in een totaal ander project. Dit is een veelvoorkomende uitdaging omdat verschillende teams verschillende woorden en stijlen gebruiken. De onderzoekers kwamen tot de conclusie dat hun methode hier ook erg goed in was. Het krachtige model, dat had geleerd van de zorgvuldig geselecteerde voorbeelden, was in staat om zijn kennis te generaliseren en met hoge nauwkeurigheid schuld in nieuwe projecten te vinden, waarbij het vaak andere methoden versloeg die probeerden te leren van dezelfde projecten zonder deze filterstap. De resultaten wijzen erop dat door de snelheid van een eenvoudig model te combineren met het diepe begrip van een groot model, softwareteams hun technische schuld veel efficiënter kunnen identificeren en oplossen. Dit betekent dat ze minder tijd kunnen besteden aan het handmatig zoeken naar problemen en meer tijd aan het bouwen van betrouwbare software, wat het gehele proces van softwareonderhoud duurzamer en kosteneffectiever maakt.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.