← Nieuwste papers
💻 computer science

PuzzleMark: Implicit Jigsaw Learning for Robust Code Dataset Watermarking in Neural Code Completion Models

PuzzleMark is een robuust en onmerkbaar watermerksysteem voor neurale modellen voor het voltooien van code dat gebruikmaakt van dragerselectie op basis van codecomplexiteit en een nieuw patroon voor het samenvoegen van variabele namen om de intellectuele eigendom van datasets te beschermen, terwijl het een perfecte verificatieaccuraatheid bereikt en bestaande detectiemethoden ontwijkt.

Oorspronkelijke auteurs: Haocheng Huang, Yuchen Chen, Weisong Sun, Peizhuo Lv, Yuan Xiao, Chunrong Fang, Yang Liu, Xiaofang Zhang

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

Oorspronkelijke auteurs: Haocheng Huang, Yuchen Chen, Weisong Sun, Peizhuo Lv, Yuan Xiao, Chunrong Fang, Yang Liu, Xiaofang Zhang

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

Het Grote Probleem: De "Geheime Saus" Stelen

Stel je voor dat je een chef bent die jarenlang de beste recepten van de wereld heeft verzameld, ze hebt getest en hebt georganiseerd in een enorme, perfecte kookboek. Dit kookboek is je waardevolste bezit.

Nu stel je je voor dat iemand een restaurant wil openen met je kookboek zonder jou te betalen. Ze kunnen het boek niet zomaar fotokopiëren (dat is te voor de hand liggend), dus ze huren een robot in om je boek te lezen en te leren koken. Zodra de robot het heeft geleerd, ontslaan ze jou en openen ze hun eigen restaurant. Je hebt geen manier om te bewijzen dat de robot uit jouw boek heeft geleerd, omdat het koken van de robot er precies uitziet als normaal koken.

In de wereld van computercode is dit "kookboek" een code-dataset, en de "robot" is een AI-programmeerassistent (zoals GitHub Copilot). Het maken van deze datasets is duur en zwaar werk. Maar op dit moment is er geen goede manier om te bewijzen dat een AI is getraind op jouw specifieke dataset als iemand deze steelt.

De Oude Oplossing: De "Zelfklevende Notitie" (En Waarom Die Faalde)

Vorige onderzoekers probeerden dit op te lossen door "watermerken" in de code te verbergen. Denk hierbij aan het steken van een zelfklevende notitie in elke 10e pagina van het kookboek met de tekst: "Dit boek behoort toe aan Chef X."

  • De Fout: Deze oude zelfklevende notities waren te voor de hand liggend. Als een dief het boek bekeek, kon hij de vreemde notities gemakkelijk opmerken, ze eruit scheuren en de pagina's weggooien. Of ze konden het boek gewoon scannen, de vreemde patronen vinden en ze verwijderen voordat ze hun robot trainden. De "zelfklevende notities" waren te makkelijk te detecteren en te verwijderen.

De Nieuwe Oplossing: PuzzleMark

De auteurs van dit artikel stellen een nieuwe methode voor genaamd PuzzleMark. In plaats van een zelfklevende notitie, maken ze van de code zelf een subtiel, onzichtbaar raadsel.

Hier is hoe het werkt, opgesplitst in drie eenvoudige stappen:

1. Het Kiezen van de Juiste "Verstopplekken" (Carrier Selectie)

Stel je voor dat je probeert een geheim bericht te verbergen in een bibliotheek.

  • De Fout: Als je het bericht verbergt in een boek dat al raar, gescheurd is of in een vreemde taal is geschreven, zullen mensen direct iets in de gaten hebben.
  • De Oplossing van PuzzleMark: Het systeem scant de hele bibliotheek en gebruikt een "complexiteitsmeter" om boeken te vinden die perfect normaal, goed geschreven en veelvoorkomend zijn. Het weigert berichten te verbergen in boeken die al rommelig of verdacht zijn. Door alleen de meest "natuurlijk" ogende codefragmenten te kiezen om het geheim te dragen, wordt het watermerk veel moeilijker te spotten.

2. De "Legpuzzel"-Truc (Concatenatiepatroon)

Oude watermerken vertrouwden op een simpel patroon: "Als je het woord key ziet, moet het volgende woord value zijn." Dit is als een code die zegt: "Als je een rode auto ziet, moet er een blauwe auto naast staan." Dieven kunnen dit patroon gemakkelijk opmerken en verbreken.

PuzzleMark gebruikt een "Legpuzzel"-benadering:

  • In plaats van een vaste regel, neemt het twee bestaande variabele namen in de code (zoals key en iterator) en plakt ze samen om een nieuwe, iets ongewone naam te maken (zoals key_iterator).
  • Het is alsof je twee normale puzzelstukjes neemt en ze aan elkaar plakt om een nieuw stukje te maken dat eruitziet alsof het erbij hoort, maar alleen als je de geheime lijm kent.
  • Omdat de code er grotendeels normaal uitziet, en de "lijm" verandert afhankelijk van het specifieke codefragment, is het ongelooflijk moeilijk voor een dief om het te vinden en te verwijderen zonder de code zelf te breken.

3. De "Black Box"-Test (Verificatie)

Hoe bewijs je dat de AI uit je boek heeft geleerd?

  • Je hoeft niet in het brein van de AI te kijken. Je geeft het gewoon een specifieke "trigger" (een specifiek codefragment met de verborgen puzzelstukjes).
  • Als de AI is getraind op jouw gewatermerkte dataset, zal het instinctief de code aanvullen met de "geplakte" naam die je hebt gemaakt.
  • Als het niet op jouw data is getraind, zal het gewoon een normale naam raden.
  • De auteurs gebruiken een statistische test (Fisher's exact test) om te zien of de AI te vaak correct raadt om toeval te zijn. Als de wiskunde "ja" zegt, heb je bewijs.

Waarom Is Dit Beter? (De Resultaten)

Het artikel testte PuzzleMark tegen de oude methoden en ontdekte:

  • Het is Onzichtbaar: Menselijke ontwikkelaars en geautomatiseerde tools konden geen verschil zien tussen gewatermerkte code en normale code. Het was net zo onzichtbaar als een geest.
  • Het is Sterk: Zelfs als dieven probeerden de dataset te "schoonmaken" door verdacht ogende code te verwijderen, bleef het watermerk behouden. Zelfs als ze probeerden het te "verdunnen" door het te mengen met miljoenen andere schone codebestanden, was het watermerk nog steeds detecteerbaar.
  • Het Breekt Niets: De AI-modellen die zijn getraind op deze gewatermerkte code presteerden net zo goed als modellen die zijn getraind op schone code. De "lijm" heeft het recept niet bedorven.

De Conclusie

PuzzleMark is een nieuwe, robuuste manier om de intellectuele eigendom van code-datasets te beschermen. In plaats van voor de hand liggende "zelfklevende notities" achter te laten die dieven gemakkelijk kunnen uitscheuren, verbergt het het bewijs van eigendom in de natuurlijke stroom van de code zelf, als een geheim recept-ingredient dat zich alleen onthult als je probeert het gerecht te bereiden. Het zorgt ervoor dat als iemand je data steelt om een AI te trainen, je dit kunt bewijzen in de rechtbank, zelfs als ze proberen hun sporen uit te wissen.

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 →