← Nieuwste papers
💻 computer science

Do Machines Struggle Where Humans Do? LLM and Human Comprehension of Obfuscated Code

Dit artikel evalueert of grote taalmodellen dezelfde menselijke foutmodi delen bij het begrijpen van geobfusceerde code, waarbij wordt vastgesteld dat met redeneren getunede modellen significant meer overeenkomen met menselijke moeilijkheidspatronen over verschillende obfuscatie-niveaus heen, terwijl instructie-getunede modellen dat niet doen.

Oorspronkelijke auteurs: Jack Le, Anh H. N. Nguyen, Tien N. Nguyen

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

Oorspronkelijke auteurs: Jack Le, Anh H. N. Nguyen, Tien N. Nguyen

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 puzzel probeert op te lossen. Stel je nu voor dat iemand die puzzel neemt en twee dingen met hem doet:

  1. De stukjes hernoemt: In plaats van "Koning", "Koningin" en "Pion", worden de schaakstukken aangeduid als "X", "Y" en "Z". Of erger nog, de "Koning" wordt een "Pion" genoemd om je te misleiden.
  2. De instructies door elkaar haalt: In plaats van een duidelijk pad zoals "Ga naar voren, draai dan links", zijn de instructies opgedeeld in kleine, losstaande stappen die een complexe kaart vereisen om de volgorde te begrijpen.

Dit is wat code-obfuscatie doet met computerprogramma's. Het houdt het programma exact hetzelfde werkend, maar maakt het extreem moeilijk voor mensen om het te lezen en te begrijpen.

Dit artikel stelt een eenvoudige maar diepgaande vraag: Worstelen AI-modellen (Large Language Models) met deze door elkaar gehusselde puzzels op dezelfde manier als mensen dat doen? Of falen ze op een volledig andere, mysterieuze manier?

Hier is de uitslag van hun bevindingen, gebruikmakend van alledaagse analogieën:

1. De "Slimme" AI versus de "Getrainde" AI

De onderzoekers testten verschillende soorten AI-modellen. Denk aan hen als verschillende soorten studenten:

  • De "Coder/Instruct" Modellen: Dit zijn als studenten die een enorme tekst van codevoorbeelden uit hun hoofd hebben geleerd. Ze zijn geweldig in het herkennen van patronen (zoals het woord "print" zien en weten wat ze moeten doen). Maar wanneer je de puzzel door elkaar haalt, raken ze in de war omdat hun "patroonherkenning" breekt. Ze begrijpen niet echt waarom de code werkt; ze weten alleen hoe het er meestal uitziet.
  • De "Reasoning" Modellen: Dit zijn als studenten die zijn geleerd hoe ze moeten denken. Ze memoriseren niet alleen; ze proberen de logica stap voor stap door te werken.

De Grote Bevinding: De "Reasoning"-modellen worstelden met de door elkaar gehusselde puzzels precies zoals mensen dat deden. Wanneer de puzzel moeilijker werd (meer geobfusceerd), werden zowel de mensen als de reasoning-AI's trager en maakten ze meer fouten. De "Coder"-modellen gaven er echter minder om hoe moeilijk het was; ze faalden gewoon willekeurig of werden niet moeilijker, wat aantoonde dat ze niet echt een probleem aan het "doordenken" waren zoals een mens dat zou doen.

2. De "Zelfverzekerde Fout" Valstrik

Een van de meest interessante delen van de studie betreft een specifieke truc genaamd Adversarial Renaming.

  • Het Scenario: Stel je een functie voor die een belastingtarief berekent en die heet calculate_tax. De obfuscatie verandert de naam in calculate_bonus.
  • De Menselijke Reactie: Een menselijke programmeur ziet "bonus" en denkt: "Wacht, dat is niet logisch voor belasting," maar ze kunnen nog steeds in de war raken als de codestructuur rommelig is.
  • De AI-Reactie: De "Reasoning" AI's liepen soms in de val. Ze zagen het woord "bonus", gingen ervan uit dat de code over het geven van geld ging, en gaven zelfverzekerd het verkeerde antwoord.

De studie vond dat deze "zelfverzekerde fout" alleen optrad wanneer twee dingen tegelijkertijd gebeurden: de naam was misleidend EN de codestructuur was verwarrend. Het is alsof iemand je een kaart van een stad geeft, maar de "Ziekenhuis" labelt als "Pizzeria", en de straten allemaal eenrichtingsverkeer-lussen zijn. Je zou dan zelfverzekerd naar de "Pizzeria" (het ziekenhuis) rijden en verdwalen.

3. De "Denktijd" Meter

De onderzoekers keken naar hoeveel de AI "dacht" voordat hij antwoord gaf. Ze maten dit door het aantal woorden te tellen dat de AI genereerde in zijn "Chain of Thought" (zijn interne monoloog).

  • De Menselijke Parallel: Wanneer mensen voor een moeilijke puzzel staan, doen ze er langer over om deze op te lossen.
  • De AI-Parallel: Wanneer de puzzel moeilijker werd, genereerde de AI steeds langere interne monologen.
  • De Haken en ogen: Interessant genoeg werd de AI niet beter in het oplossen van de moeilijke puzzels door langer na te denken. Sterker nog, hoe langer de AI nadacht, hoe groter de kans dat hij het antwoord fout had. Het was alsof een student een uur lang naar een wiskundeprobleem staart, pagina's aan aantekeningen schrijft, maar nog steeds het verkeerde antwoord krijgt omdat het probleem zelf te lastig is. De lengte van het denken was een teken van moeilijkheidsgraad, niet een teken van succes.

4. Het "Expert" Verschil

De studie keek ook naar menselijke experts versus beginners.

  • Beginners: Wanneer de code werd door elkaar gehusseld, werden beginners veel slechter in het oplossen ervan.
  • Experts: Verrassend genoeg werden experts soms juist beter in het oplossen van de licht door elkaar gehusselde code. Waarom? Omdat ze stopten met vertrouwen op de namen van de variabelen (de "Koning" of "Pion" labels) en strikt naar de logica en structuur gingen kijken.
  • De AI-Kloof: Geen van de AI-modellen, zelfs de slimste niet, kon dit "expert"-gedrag nabootsen. Ze werden niet beter in de licht door elkaar gehusselde code; ze werden simpelweg slechter. Dit suggereert dat hoewel AI goed wordt in redeneren, het nog niet het niveau van menselijke intuïtie heeft bereikt waarbij het misleidende labels kan negeren en zich puur op de onderliggende structuur kan richten.

Samenvatting: Wat betekent dit?

  • Begrijpen AI's code zoals mensen dat doen? De "Reasoning" AI's beginnen dat te doen. Ze lopen vast op dezelfde moeilijke puzzels als mensen. De "Coder" AI's zijn slechts patroonherkenningsmachines die op een andere manier falen.
  • Kunnen we AI vertrouwen bij verwarrende code? Niet blindelings. Als de code vreemde namen of verwarrende structuren heeft, kan de AI een zeer zelfverzekerd, maar zeer foutief antwoord geven.
  • Het "Denk"-signaal: Als een AI begint met een zeer lange, warrige uitleg om een simpel probleem op te lossen, is dat geen teken van genialiteit; het is een teken dat de AI worstelt en waarschijnlijk een fout gaat maken.

Kortom, het artikel laat zien dat we AI's bouwen die beginnen te "denken" als mensen, maar ze moeten nog een lange weg afleggen voordat ze de rommelige, verwarrende en verraderlijke code kunnen afhandelen waar echte ontwikkelaars dagelijks mee te maken krijgen.

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 →