← Nieuwste papers
🤖 AI

Effectiveness of LLM-based Software Diversity for Reliability Improvement -- an Empirical Study

Deze empirische studie toont aan dat Large Language Models kunnen dienen als een schaalbare, laagkostige bron van software-diversiteit, waarbij het combineren van door LLM's gegenereerde programma's — met name in heterogene configuraties over verschillende modellen, instellingen en talen — de systeembetrouwbaarheid effectief verbetert door gemeenschappelijke fouten te verminderen.

Oorspronkelijke auteurs: Gabriel Almeida, Ilir Gashi, Vladimir Stankovic, João R. Campos

Gepubliceerd 2026-07-07
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Gabriel Almeida, Ilir Gashi, Vladimir Stankovic, João R. Campos

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

Stel je voor dat je een cruciale brug bouwt. Om ervoor te zorgen dat deze niet instort, bouw je niet slechts één versie; je bouwt drie of vier verschillende versies met verschillende blauwdrukken, verschillende materialen en verschillende engineeringteams. Als één team een fout maakt die een scheur veroorzaakt, kunnen de anderen het opmerken omdat zij het anders hebben gebouwd. Dit is de kern van Software Diversiteit: het hebben van meerdere, verschillende versies van dezelfde software, zodat als er één faalt, de anderen blijven werken.

Decennialang was dit ongelooflijk duur en traag. Je moest verschillende teams inhuren, hen betalen om code vanaf nul te schrijven, en ze allemaal testen. Het was alsof je drie verschillende koks inhuurde om exact dezelfde soep te maken, in de hoop dat als er één het laat aanbranden, de anderen het wel goed krijgen.

De komst van de "Magische Kopieermachine" (LLM's)
Onlangs zijn Large Language Models (LLM's) gearriveerd. Denk aan deze als super-snelle, magische kopieermachines die direct code kunnen schrijven. Je kunt één machine vragen om een programma 100 keer te schrijven, en het geeft je in enkele seconden 100 lichtelijk verschillende versies. De grote vraag die de auteurs stelden was: "Als we deze magische machine gebruiken om onze 'reserve'-bruggen te creëren, zullen ze dan echt verschillend genoeg zijn om ons te redden wanneer er iets misgaat?"

Dit is wat zij ontdekten, eenvoudig uitgelegd:

1. Het "Zelfde Fout"-probleem

De onderzoekers testten drie verschillende programmeerpuzzels (zoals wiskundige problemen) met behulp van twee groepen:

  • Groep A: Echte mensen die jaren geleden code schreven (voordat AI algemeen werd).
  • Groep B: Code gegenereerd door diverse AI-modellen.

Ze ontdekten dat AI-modellen weliswaar fouten maken, maar dat ze vaak de zelfde fouten met elkaar maken. Als je twee verschillende AI-modellen vraagt om een puzzel op te lossen, kunnen ze allebei over precies dezelfde lastige stap struikelen. Dit is als het vragen aan twee studenten die uit hetzelfde tekstboek hebben gestudeerd om een toets te maken; als ze allebei een vraag fout hebben, is dat waarschijnlijk omdat het tekstboek een verwarrende uitleg gaf, en niet omdat ze anders denken.

2. De "Taalwissel"-truc

De onderzoekers ontdekten echter een slimme manier om de AI-versies veel meer van elkaar te laten verschillen. Ze dwongen de AI om de code in verschillende programmeertalen te schrijven (bijv. de een in C++, de ander in Java, een derde in Python).

  • De Analogie: Stel je voor dat je dezelfde kok vraagt om een soep te maken, maar eerst in een Franse keuken, dan in een Japanse keuken, en daarna in een Italiaanse keuken. Zelfs als ze precies dezelfde soep maken, zullen de instrumenten, ingrediënten en technieken die ze gebruiken zo verschillend zijn dat ze onwaarschijnlijk de exact zelfde fout zullen maken.
  • Het Resultaat: Wanneer de AI code in verschillende talen schreef, werden de "reserve"-versies veel betrouwbaarder. Het was voor hen minder waarschijnlijk om samen te falen. Sterker nog, het mengen van verschillende AI-talen werkte in sommige gevallen zelfs beter dan het mengen van verschillende menselijke talen.

3. Het "Mens + AI" Superteam

De meest opwindende bevinding was wat er gebeurde toen ze een door een mens geschreven programma koppelden aan een door AI geschreven programma.

  • De Analogie: Denk aan een mens als een ervaren detective die vertrouwt op intuïtie en ervaring, en een AI als een super-snelle robot die vertrouwt op patronen en data.
  • Het Resultaat: Deze twee zijn zo verschillend in hoe ze denken, dat ze zelden dezelfde fout maken. Als de mens een subtiel spoor mist, kan de AI dat misschien wel oppikken. Als de AI in de war raakt door een vreemde opmaakregel, kan de mens dat oplossen.
  • De Uitkomst: Het koppelen van een mens en een AI creëerde een "super-betrouwbaar" systeem dat vaak veel robuuster was dan het gebruik van twee mensen of twee AI's alleen. In sommige gevallen waren ze zo verschillend dat ze elkaars zwakheden perfect opvulden, waardoor ze fungeerden als een vangnet dat sterker was dan de som der delen.

4. De "Temperatuur"-draaiknop

De onderzoekers probeerden ook de "creativiteits"-draaiknop (genaamd "temperature") van de AI hoger te draaien.

  • De Analogie: Stel je voor dat je een schrijver vraagt een verhaal te schrijven. Als je hem vertelt heel strikt te zijn (lage temperatuur), schrijft hij elke keer hetzelfde verhaal. Als je hem vertelt wild en creatief te zijn (hoge temperatuur), schrijft hij heel verschillende verhalen.
  • Het Resultaat: Het creatiever maken van de AI zorgde weliswaar voor meer variatie in de code, maar het maakte de code ook eerder vatbaar voor het volledig breken (zoals een verhaal dat nergens op slaat). Hoewel het een beetje hielp, was het veranderen van de programmeertaal een veel krachtigere manier om ervoor te zorgen dat de reserves verschillend en betrouwbaar waren.

De Kernconclusie

Het artikel concludeert dat AI een fantastisch hulpmiddel is voor het creëren van softwarediversiteit, maar dat je het slim moet gebruiken.

  • Vraag de AI niet om 10 keer hetzelfde ding te schrijven in dezelfde taal. Ze zullen waarschijnlijk allemaal op dezelfde manier falen.
  • Vraag de AI wel om hetzelfde ding in verschillende talen te schrijven. Dit creëert een echt "veiligheidsnet".
  • Combineer Mens en AI. De verschillen tussen hoe mensen en machines denken, maken hen tot de perfecte partners voor betrouwbaarheid.

Kortom, AI kan ons helpen veiligere software te bouwen, niet door mensen te vervangen, maar door een enorme, goedkope voorraad van "verschillende" versies te leveren die we kunnen mixen en matchen om fouten te vangen die een enkele versie zou missen.

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.

Probeer Digest →