ONDERZOEKSNOTITIE
Lokale codewijziging met generatieve modellen
Hoe onnodig herschrijven van een volledige functie kan worden voorkomen, met behoud van voldoende vrijheid voor een generatief model om de gevraagde codewijziging door te voeren.
KORT ANTWOORD
Hoe kan een generatief model code wijzigen zonder de volledige functie te herschrijven?
Definieer vóór de generatie beschermde en bewerkbare gebieden, hergebruik of begrens de beschermde representatie, genereer uitsluitend kandidaatwijzigingen en verwerp uitvoer die beschermde code verandert of niet aan taakspecifieke controles voldoet. Lokaliteit en taaksucces moeten gezamenlijk worden gemeten.
Waarom het onderscheid van belang is
De methode en de geclaimde garantie moeten dezelfde waarneembare afbakening hanteren.
Lokale codewijziging is een bewerkingsprobleem en niet slechts een kortere prompt voor codegeneratie. De invoer bevat al een artefact dat behouden moet blijven; de methode vereist daarom een expliciete behoudsgrens tussen het gebied dat mag veranderen en de eigenschappen die stabiel moeten blijven.
De grens kan bestaan uit een broncodefragment, een syntactisch knooppunt, een API-signatuur, testgedrag, een afhankelijkheidscontract of een aangeleerde latente positie. Deze keuzen zijn niet onderling uitwisselbaar: elke keuze beschermt een andere waarneembare eigenschap en vereist een bijpassende verificatiestap.
Een praktische werkwijze
Formuleer het behoudscontract
Bepaal het bewerkbare gebied en de exacte tekst, structuur, interface of het exacte gedrag dat ongewijzigd moet blijven.
Kies de smalste bruikbare controle-interface
Hergebruik ongewijzigde bronfragmenten, pas infilling of bewerkingsgerichte decodering toe, leg formele beperkingen op of vergrendel geselecteerde latente posities overeenkomstig de vereiste eigenschap.
Genereer uitsluitend waar wijzigingen zijn toegestaan
Behoud binnen het bewerkbare gebied voldoende vrijheid om de taak op te lossen; het kopiëren van de volledige invoer is weliswaar lokaal, maar levert geen voortgang op.
Verifieer lokaliteit en succes gezamenlijk
Verwerp kandidaten die beschermde regio's wijzigen, niet kunnen worden geparseerd of gecompileerd, structurele invarianten schenden of niet aan de gevraagde wijziging voldoen.
Te vereisen bewijs
Een bewering is slechts zo sterk als de eigenschap die na generatie of decodering is gemeten.
- Verschil buiten het gebied of een andere directe maatstaf voor de stabiliteit van het beschermde gebied.
- Taaksucces binnen het bewerkbare gebied.
- Waar van toepassing: parsen, compilatie, tests, statische controles of taakspecifieke invarianten.
- Veranderingspercentage binnen het bewerkbare gebied, zodat kopiëren niet ten onrechte als sturing wordt aangemerkt.
- Uniciteit van kandidaten en variabiliteit tussen herhaalde runs, zodat lokaliteit niet wordt verward met mode collapse.
Wat de gekoppelde studie rapporteert
- Het gekoppelde experiment comprimeert Python-functies van 64 tokens tot hiërarchische discrete posities en regenereert geselecteerde latente posities onder gedeeltelijke beperkingen.
- Het vergrendelen van vier codes op het hoogste niveau verhoogde het parsepercentage van 0.453 naar 0.591, terwijl onvergrendelde posities met een percentage van 0.936 veranderden en conditionele steekproeven voor 0.998 uniek bleven.
- Die metingen leggen boven het tokenniveau een afweging tussen stabiliteit en vrijheid bloot; zij bewijzen geen exact behoud van bronsegmenten, AST, semantiek of gedrag.
Het publicatieoverzicht lezen Doorzoek de volledige tekst van het artikel
Afbakening van de reikwijdte
- Een vastgezette latente code is niet automatisch een AST-knooppunt, beschermd bronbereik of formele invariant.
- Het parsepercentage toont syntactische welgevormdheid aan, maar geen functionele correctheid of geslaagde reparatie.
- Het gerapporteerde bewijs is afkomstig van korte, voorbewerkte Python-functies en toont geen gedrag op repositoryschaal aan.
Primaire en verwante bronnen
Raadpleeg de gekoppelde artikelen voor de oorspronkelijke methoden, metingen en vermelde beperkingen.
- Inspectable Control for Structure-Preserving Software Regeneration
Hoofdartikel en experiment met begrensde hiërarchische latente representaties.
- EfficientEdit: Accelerating Code Editing via Edit-Oriented Speculative Decoding
Op bewerking gerichte decodering waarbij ongewijzigde delen van de bron opnieuw worden gebruikt.
- PAFT: Preservation Aware Fine-Tuning for Minimal-Edit Program Repair
Maakt behoud en minimale wijzigingen expliciet in de training voor programmacorrectie.