← Nieuwste papers
💻 computer science

UCSC-NLP at SemEval-2026 Task 13: Multi-View Generalization and Diagnostic Analysis of Machine-Generated Code Detection

Het UCSC-NLP-team neemt deel aan SemEval-2026 Taak 13 door sterke binaire detectie van door machines gegenereerde code te realiseren via een multi-view fine-tuning-framework van UniXcoder-base, terwijl wordt aangetoond dat class-gewogen training essentieel is om catastrofale mislukking in multi-class attributie te overwinnen die wordt veroorzaakt door ernstige data-ongelijkheid.

Oorspronkelijke auteurs: Kargi Chauhan, Sadiba Nusrat Nur

Gepubliceerd 2026-05-01
📖 6 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Kargi Chauhan, Sadiba Nusrat Nur

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 leraar bent die een stapel huiswerk moet nakijken. Je hebt twee hoofduitdagingen:

  1. De "Wie heeft het gedaan?"-test: Kun je zien of een student het essay heeft geschreven of dat ze een robot hebben gebruikt om het te schrijven?
  2. De "Welke robot?"-test: Als een robot het wel heeft geschreven, kun je dan precies zeggen welk robotmodel (bijvoorbeeld Robot A, Robot B, Robot C) is gebruikt?

Dit artikel beschrijft een team van de UC Santa Cruz dat een systeem heeft gebouwd om deze problemen op te lossen voor computercode. Ze deden mee aan een wedstrijd (SemEval-2026 Taak 13) om te zien hoe goed hun systeem was in het opsporen van door AI gegenereerde code.

Hier is hoe ze de twee uitdagingen aanpakten, eenvoudig uitgelegd:

Uitdaging 1: De "Wie heeft het gedaan?"-test (Binaire detectie)

Het probleem: Het team trainde hun systeem op code geschreven in Python, C++ en Java. Maar toen ze het testten, gaven ze het code in talen die het nog nooit had gezien (zoals Go of PHP) en in verschillende stijlen (zoals onderzoeksartikelen of productiesoftware). Meestal falen AI-detectoren hier omdat ze specifieke woorden of talen uit het hoofd leren in plaats van de "sfeer" van de code te leren begrijpen.

De oplossing: De "drie-lens"-camera
In plaats van de code slechts één keer te bekijken, leerde het team hun systeem om elk stukje code tegelijkertijd door drie verschillende lenzen te bekijken:

  1. De originele lens: Kijken naar de code precies zoals hij is.
  2. De "blinddoek"-lens (Delexicalisatie): Stel je voor dat je een zin neemt en alle namen van personen, plaatsen en getallen vervangt door algemene woorden zoals "Persoon", "Plaats" en "Getal". Dit dwingt het systeem om specifieke variabele namen te negeren (die per taal veranderen) en zich te concentreren op de structuur van de logica.
  3. De "gemengde" lens: Ze mengden willekeurig wat platte Engelse tekst in de codefragmenten. Dit leerde het systeem om rommelige, real-world code te hanteren die niet perfect opgemaakt is.

De analogie: Denk aan een beveiliger die een tas controleert.

  • Oude manier: De beveiliger onthoudt dat "Rode Koffer = Slecht". Als je een Blauwe Koffer meeneemt, missen ze het.
  • Nieuwe manier: De beveiliger kijkt naar de koffer vanuit drie hoeken: de buitenkant, de binnenkant (het merklogo negerend) en een versie waarin ze willekeurige items hebben gemengd. Als de structuur van de tas in al drie weergaven verdacht lijkt, markeren ze het.

Het resultaat: Dit werkte ongelooflijk goed. Zelfs toen de code in een nieuwe taal of stijl was, identificeerde hun systeem het correct als "Mens" of "AI" ongeveer 84,5% van de tijd.


Uitdaging 2: De "Welke robot?"-test (Multi-class toewijzing)

Het probleem: Dit was veel moeilijker. Het team moest identificeren welke van de 10 verschillende AI-modellen de code had geschreven.

  • De data-scheefheid: Stel je een klas van 500 studenten voor. 442 van hen zijn mensen. De andere 58 zijn robots, maar ze zijn verdeeld over 10 verschillende robottypes. Sommige robottypes hebben maar 2 studenten in de klas.
  • De valstrik: Als je een leraar traint op deze klas, leert hij een heel gemakkelijke truc: "Als ik gewoon voor iedereen 'Mens' raad, heb ik 88% van de tijd gelijk!"
  • De mislukking: Toen het team dit probeerde, kreeg het systeem een "nauwkeurigheids"-score van 88%, maar dat was een leugen. Het negeerde de robots volledig. Het slaagde er bijna 100% van de tijd niet in om de minderheid-robotklassen te identificeren. Het was als een metaaldetector die piept voor alles, maar alleen piept voor munten en al het goud negeert.

De oplossing: De "gewogen score"
Om dit op te lossen, veranderden ze de regels van het spel. Ze vertelden het systeem: "Als je correct 'Mens' raadt, krijg je 1 punt. Maar als je correct een zeldzame robot raadt, krijg je 200 punten."
Dit dwong het systeem om niet langer lui te zijn en daadwerkelijk te leren om de zeldzame robots op te sporen.

Het resultaat:

  • Voorheen: Het systeem was een "mens-raadster" met een score van 0,08 (vreselijk in het vinden van robots).
  • Na: Met de nieuwe regels steeg het vermogen van het systeem om de specifieke robots te vinden met 301%. Het werd niet perfect, maar het begon eindelijk de minderheidsklassen te zien in plaats van ze te negeren.

Wat hebben ze geleerd? (Het "Waarom")

Het team keek in het "brein" van hun systeem (met behulp van een visualisatie genaamd t-SNE) en vond iets interessants:

  • Taak 1 (Mens vs. AI): De "menselijke" code en "AI"-code vormden twee duidelijke, gescheiden eilanden. Het systeem kon ze gemakkelijk uit elkaar houden.
  • Taak 2 (Welke AI?): Alle verschillende AI-modellen (OpenAI, Meta, IBM, enz.) zaten samengepakt in één grote, rommelige hoop, overlappend met de menselijke code.

Waarom?

  1. Gedeeld dieet: Al deze robots waren getraind op dezelfde internetdata (GitHub, StackOverflow), dus ze leerden allemaal om code te schrijven die er erg op lijkt.
  2. Zelfde architectuur: Ze gebruiken allemaal vergelijkbare hersenstructuren (transformers), dus hun "handschrift" is bijna identiek.
  3. Wiskunde is wiskunde: Er zijn vaak maar een paar juiste manieren om een programmeerprobleem op te lossen, dus iedereen (mens of robot) schrijft uiteindelijk dezelfde oplossing.

De bottom line

  • Kunnen we zien of code door AI is gemaakt? Ja, zeer goed, zelfs als de taal verandert, mits we het systeem leren om naar de structuur te kijken in plaats van alleen naar de woorden.
  • Kunnen we zien welke AI het heeft geschreven? Het is extreem moeilijk. De verschillende AI's zijn zo vergelijkbaar, en de data is zo scheef, dat standaardmethoden falen. Je moet speciale "gewicht"-trucs gebruiken om het systeem te dwingen om om de zeldzame gevallen te geven.

Een waarschuwing: De auteurs merken op dat hun systeem niet perfect is. Soms verwart het een zeer beknopte menselijke programmeur met een AI, of een uitgebreide AI met een mens. Vanwege dit zeggen ze dat dit hulpmiddel nooit alleen mag worden gebruikt om levensveranderende beslissingen te nemen (zoals iemand ontslaan of een student laten zakken); een mens moet de resultaten altijd dubbelcontroleren.

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 →