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.

Deze onderzoeksnotitie delenDelen

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

  1. Formuleer het behoudscontract

    Bepaal het bewerkbare gebied en de exacte tekst, structuur, interface of het exacte gedrag dat ongewijzigd moet blijven.

  2. 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.

  3. 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.

  4. 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.
Vergelijk sturingsinterfaces voor lokale bewerking

Primaire en verwante bronnen

Raadpleeg de gekoppelde artikelen voor de oorspronkelijke methoden, metingen en vermelde beperkingen.

  1. Inspectable Control for Structure-Preserving Software Regeneration

    Hoofdartikel en experiment met begrensde hiërarchische latente representaties.

  2. EfficientEdit: Accelerating Code Editing via Edit-Oriented Speculative Decoding

    Op bewerking gerichte decodering waarbij ongewijzigde delen van de bron opnieuw worden gebruikt.

  3. PAFT: Preservation Aware Fine-Tuning for Minimal-Edit Program Repair

    Maakt behoud en minimale wijzigingen expliciet in de training voor programmacorrectie.

Onderhouden door . Deze pagina vat bestaand bewijsmateriaal samen en voegt geen experimentele resultaten toe buiten de aangehaalde bronnen.

Alle onderzoeksnotities bekijken