Enhancing Large Language Models with Retrieval Augmented Generation for Software Testing and Inspection Automation
Dit artikel beschrijft hoe Retrieval Augmented Generation (RAG) wordt ingezet om hallucinaties in Large Language Models te verminderen en zo de automatisering van softwaretesten en code-inspectie te verbeteren, wat leidt tot kostenbesparingen en een hogere efficiëntie.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://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
Hoe we AI helpen om software te testen zonder in de war te raken
Stel je voor dat je een enorme, complexe stad bouwt: de software. Om te zorgen dat deze stad veilig is en alles werkt zoals het moet, heb je twee dingen nodig:
- De inspecteur: Iemand die elke straat, elk gebouw en elke leiding controleert op fouten (dit heet code inspectie).
- De testpiloot: Iemand die proefritten maakt om te zien of de auto's (de programma's) niet uit elkaar vallen als ze over een hobbel rijden (dit heet testen).
Vroeger deden mensen dit werk. Maar dat is saai, duur en duurt lang. Daarom wilden we AI (specifiek grote taalmodellen, of LLMs) dit werk laten doen. Deze AI's zijn als super-intelligente studenten die miljoenen boeken hebben gelezen. Ze kunnen prima code schrijven en fouten vinden.
Het probleem: De "Hallucinerende" AI
Er is één groot nadeel aan deze AI's: ze zijn soms te zelfverzekerd. Als ze iets niet weten, verzinnen ze het gewoon. Dit noemen we hallucineren.
- Vergelijking: Stel je voor dat je een detective vraagt: "Wie heeft de vaas gebroken?" Als de detective geen bewijs heeft, zegt hij misschien: "Het was de kat!" terwijl er geen kat in huis was. Hij heeft het gewoon verzonnen omdat hij een antwoord wil geven. In software is dit gevaarlijk; een verzonnen oplossing kan de hele stad doen instorten.
De oplossing: De "Slimme Assistent" (RAG)
Om dit op te lossen, hebben de auteurs van dit papier een slimme truc bedacht: Retrieval Augmented Generation (RAG).
- De analogie: Stel je voor dat de detective (de AI) niet alleen op zijn geheugen moet vertrouwen, maar dat hij een assistent heeft die een enorme bibliotheek bij de hand heeft.
- Als de detective een vraag krijgt, kijkt de assistent eerst in de bibliotheek (de kennisbank) of er eerdere gevallen of regels zijn die hierop lijken.
- De assistent geeft de detective dan een stapeltje relevante documenten mee.
- Nu kan de detective zijn antwoord geven gebaseerd op die feiten, in plaats van iets te verzinnen.
Wat hebben ze gedaan?
De onderzoekers hebben deze "Slimme Assistent" ingebouwd in hun AI voor twee taken:
- Code Inspectie: De AI kijkt naar code en zegt: "Hier is een fout, en hier is de reden waarom, gebaseerd op voorbeelden uit de bibliotheek."
- Testen genereren: De AI bedenkt zelf tests om te kijken of de software werkt, weer geholpen door de bibliotheek met goede voorbeelden.
Wat ontdekten ze?
Hun experimenten (met verschillende AI-modellen zoals GPT-3.5 en GPT-4) gaven een duidelijk beeld:
- Minder fouten: De AI met de "Slimme Assistent" (RAG) maakte veel minder hallucinaties. Ze vonden meer echte fouten en gaven minder verzonnen antwoorden. Het was alsof de detective nu 90% van de tijd gelijk had, in plaats van 66%.
- Beter testen: De tests die de AI bedacht, waren vollediger. Ze dekten meer onderdelen van de software af.
- Snelheid: Dit hangt af van welke AI je gebruikt.
- Bij de kleinere, snellere AI (GPT-3.5) duurde het zoeken in de bibliotheek soms net iets langer, maar de resultaten waren zo veel beter dat het de moeite waard was.
- Bij de zwaardere AI (GPT-4o) hielp de assistent zelfs om sneller te werken, omdat de AI minder hoeft na te denken over wat hij moet zeggen omdat de feiten al klaarliggen.
Conclusie voor de gewone mens
Dit onderzoek laat zien dat we AI niet alleen moeten laten "dromen" op basis van wat het in zijn hoofd heeft. Als we AI koppelen aan een betrouwbare bron van feiten (zoals een digitale bibliotheek met goede code-voorbeelden), wordt het een veel betere en veiligere werknemer.
Het is alsof we een beginnende arts niet alleen laten opereren, maar hem een dikke medische atlas naast zijn hand leggen. Hij maakt dan minder fouten, is sneller klaar en we kunnen hem vertrouwen met het leven van de patiënt (of in dit geval: de veiligheid van onze software).
Kort samengevat:
- Zonder RAG: AI is slim, maar verzint soms dingen als hij het niet weet.
- Met RAG: AI is slim én heeft een naslagwerk bij de hand. Hij is betrouwbaarder, maakt minder fouten en helpt ons tijd en geld besparen bij het bouwen van veilige software.
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.