Fine-Tuning Pre-Trained Code Models for AI-Generated Code Detection
Het artikel presenteert het systeem van het "Archaeology"-team voor SemEval-2026 Taak 13, dat gebruikmaakt van fijngefineerde vooraf getrainde code-modellen en gespecialiseerde strategieën zoals leave-one-language-out cross-validatie en sandwich-token-packing om topprestaties te behalen bij het detecteren van door AI gegenereerde code en het attribueren van de bron.
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 een digitaal detectivebureau voor dat Archaeology heet. Hun werk is niet om oude aardewerk op te graven, maar om door stapels computercode te waden om twee grote vragen te beantwoorden:
- Wie heeft dit geschreven? Was het een menselijke programmeur of een robot (AI)?
- Welke robot heeft het geschreven? Als het een robot was, welk specifiek AI-model heeft het gemaakt?
Dit team nam deel aan een hoog-risico competitie genaamd SemEval-2026 Task 13 om hun vaardigheden te bewijzen. Hier is hoe ze het deden, eenvoudig uitgelegd.
De Uitdaging: Een Tweeledig Mysterie
De competitie bestond uit twee verschillende puzzels, waarbij elk een andere detective-strategie vereiste.
Puzzel A: De "Mens vs. Robot" Test (Binaire Classificatie)
- Het Doel: Kijk naar een stuk code en zeg: "Mens" of "AI".
- De Valstrik: Het team werd voornamelijk getraind op Python-code (91% van hun trainingsdata), maar de finale test bevatte talen die ze nooit eerder hadden gezien, zoals JavaScript, Go en C#. Het is alsof je een chef kookt alleen Italiaans voedsel leert, en vervolgens vraagt of een gerecht zelfgemaakt of fabrieksmatig is, terwijl het eigenlijk een Thaise curry is.
- De aanwijzing: AI-code neigt langer en uniformer te zijn, terwijl menselijke code korter en chaotischer is. Deze regel keert echter om afhankelijk van de taal (bijvoorbeeld in C++ schrijven mensen eigenlijk langere code dan AI).
Puzzel B: De "Welke Robot?" Test (Multi-class Toewijzing)
- Het Doel: Als de code door AI is gegenereerd, identificeer dan precies welk van de 11 verschillende AI-modellen het heeft geschreven.
- De Valstrik: De data was wild onbalans. Eén categorie (door mensen geschreven code) maakte 88% van de data uit, terwijl sommige specifieke AI-modellen minder dan 2.000 voorbeelden hadden. Het is alsof je een naald in een hooiberg probeert te vinden, waarbij de hooiberg 99% hooi is en de naalden verschillende kleuren hebben, maar je hebt slechts één rode naald en een miljoen blauwe.
- De aanwijzing: Verschillende AI-modellen hebben subtiele "handschrift"-stijlen, maar deze stijlen zijn moeilijk te ontdekken in lange, complexe code.
De Toolkit van de Detective
Het team gokte niet zomaar; ze gebruikten vier verschillende "super-oogjes" (voorgetrainde AI-modellen) en gaven ze speciale trainings technieken voor elke puzzel.
Voor Puzzel A (Mens vs. Robot)
- De "Taalwissel" Oefening: Om voorbereid te zijn op de verrassingstalen in de test, trainden ze de modellen door één taal per keer te verbergen. Ze leerden het model patronen te herkennen zonder afhankelijk te zijn van specifieke taaltrucs (zoals hoe Python
#gebruikt voor commentaar). - De "Schoonmaak en Masker" Workout: Ze verwijderden commentaar en vervangen cijfers door placeholders tijdens de training. Dit dwong de modellen om naar de logica van de code te kijken, niet alleen naar de oppervlakkige decoraties.
- De "Chunking" Strategie: Aangezien de testcode vaak te lang was om in één keer te lezen, sneden ze het in overlappende stukken (zoals het lezen van een lang boek door een paar pagina's tegelijk te lezen). Vervolgens namen ze het gemiddelde van deze stukken, waarbij ze de meest extreme "ruisende" gissingen negeerden, om een definitieve beslissing te nemen.
- De "Moeilijke Geval" Kalibratie: Ze creëerden een speciale "harde test" met voorbeelden waar een simpel computerprogramma op fout liep. Ze stelden hun beslissingsdrempel (de lijn tussen "Mens" en "AI") in op basis van deze lastige gevallen om ervoor te zorgen dat ze niet voor de testdata werden bedrogen.
Voor Puzzel B (Welke Robot?)
- De "Sandwich" Techniek: Aangezien de code te lang was om in het geheugen van het model te passen, hakten ze niet zomaar het midden eraf. In plaats daarvan hielden ze het Hoofd (begin) en de Staart (einde) van de code vast en propten ze samen als een sandwich, met een speciaal marker in het midden. Dit behield de stijl aan het begin en einde, wat vaak is waar de "robot-handtekening" zich verbergt.
- De "Fairness" Weegfactor: Omdat sommige AI-modellen zeldzaam waren in de data, vertelde het team het model: "Raad niet zomaar de meest voorkomende! Besteed extra aandacht aan de zeldzame." Ze passten het scoresysteem aan zodat het model leerde om de zeldzame robots te spotten, niet alleen de populaire.
- De "Wijze van de Menigte" Stemming: Ze voerden dezelfde code meerdere keren door het model met lichte variaties en lieten de modellen stemmen over het antwoord. Dit verminderde fouten en verhoogde het vertrouwen.
De Resultaten
Het "Archaeology"-team deed het zeer goed:
- Puzzel A: Ze behaalden een score van 0.737, wat hen 6e plaats gaf van de 81 teams. Hun beste tool was CodeBERT, die leek de "logica" van code beter te begrijpen dan de anderen.
- Puzzel B: Ze behaalden een score van 0.422, wat hen 7e plaats gaf van de 34 teams. Hun beste tool hier was UniXcoder, die profiteerde van het bekijken van langere stukken code en het gebruik van de "stemming"-strategie.
De Grote Les
Het team ontdekte dat hoe een model is getraind belangrijker is dan hoe groot het is.
- De kleinere modellen (125 miljoen parameters) die specifiek waren getraind om de logica van code te begrijpen, presteerden beter in het opsporen van AI.
- Het gigantische model (220 miljoen parameters) won niet, wat suggereert dat voor deze specifieke taak een "specialist" zijn beter is dan een "generalist".
Kortom, het team bewees dat met de juiste trainings trucs—zoals het snijden van lange code, het negeren van oppervlakkige ruis en het stemmen over antwoorden—je een systeem kunt bouwen dat verrassend goed is in het opsporen van door AI gegenereerde code, zelfs wanneer het probeert zich te vermommen in nieuwe talen.
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.