FORSKNINGSANTECKNING
Lokal kodmodifiering med generativa modeller
Hur onödig omskrivning av hela funktioner kan undvikas, samtidigt som en generativ modell behåller tillräcklig frihet för att genomföra den begärda kodändringen.
DIREKT SVAR
Hur kan en generativ modell modifiera kod utan att skriva om hela funktionen?
Definiera skyddade och redigerbara regioner före genereringen, återanvänd eller begränsa den skyddade representationen, generera endast ändringskandidater och förkasta resultat som ändrar skyddad kod eller inte klarar uppgiftsspecifika kontroller. Lokalitet och uppgiftsframgång måste mätas tillsammans.
Varför åtskillnaden är viktig
Metoden och den påstådda garantin måste ha samma observerbara gräns.
Lokal kodmodifiering är ett redigeringsproblem, inte bara en kortare prompt för kodgenerering. Indatan innehåller redan en artefakt som är värd att bevara, och metoden behöver därför en explicit bevarandegräns mellan den region som får ändras och de egenskaper som måste förbli stabila.
Gränsen kan utgöras av ett källkodsintervall, en syntaxnod, en API-signatur, ett testbeteende, ett beroendekontrakt eller en inlärd latent position. Dessa val är inte utbytbara: vart och ett skyddar en annan observerbar egenskap och kräver ett motsvarande verifieringssteg.
Praktiskt tillvägagångssätt
Ange bevarandekontraktet
Identifiera den redigerbara regionen samt exakt vilken text, struktur, gränsyta eller vilket beteende som måste förbli oförändrat.
Välj den snävaste användbara styrningsytan
Återanvänd oförändrade avsnitt av källkoden, använd luckifyllnad eller redigeringsorienterad avkodning, tillämpa formella begränsningar eller lås utvalda latenta positioner utifrån den erforderliga egenskapen.
Generera endast där ändringar är tillåtna
Behåll tillräcklig frihet inom den redigerbara regionen för att lösa uppgiften; att kopiera hela indatan är lokalt men åstadkommer ingen förändring.
Verifiera lokalitet och framgång gemensamt
Förkasta kandidater som ändrar skyddade regioner, inte kan parsas eller kompileras, bryter mot strukturella invarianter eller inte genomför den begärda ändringen.
Belägg som krävs
Ett påstående är inte starkare än den egenskap som mäts efter generering eller avkodning.
- Diff utanför området eller något annat direkt mått på stabiliteten i det skyddade området.
- Uppgiftsframgång inom den redigerbara regionen.
- Parsning, kompilering, tester, statiska kontroller eller uppgiftsspecifika invarianter, beroende på vad som är tillämpligt.
- Ändringsgrad i den redigerbara regionen, så att kopiering inte misstas för styrning.
- Kandidaternas unikhetsgrad och variationen mellan upprepade körningar, så att lokalitet inte förväxlas med modkollaps.
Vad den länkade studien rapporterar
- Det länkade experimentet komprimerar Python-funktioner med 64 token till hierarkiska diskreta positioner och genererar om utvalda latenta positioner under partiella begränsningar.
- När fyra koder på högsta nivån låstes ökade andelen parsingsbara program från 0.453 till 0.591, samtidigt som ändringsfrekvensen i de olåsta positionerna var 0.936 och unikhetsgraden bland de villkorade exemplen förblev 0.998.
- Mätningarna synliggör en avvägning mellan stabilitet och frihet ovanför tokennivån; de bevisar inte exakt bevarande av källtextspann, AST, semantik eller beteende.
Avgränsning
- En låst latent kod är inte automatiskt en AST-nod, ett skyddat källtextintervall eller en formell invariant.
- Parsningstakten fastställer syntaktisk välformadhet, inte funktionell korrekthet eller en lyckad reparation.
- Den redovisade evidensen härrör från korta, förbehandlade Python-funktioner och belägger inte beteende i repositorieomfattning.
Primära och närliggande källor
Se de länkade artiklarna för originalmetoderna, mätningarna och de angivna begränsningarna.
- Inspectable Control for Structure-Preserving Software Regeneration
Huvudartikel och avgränsat experiment med hierarkiska latenta representationer.
- EfficientEdit: Accelerating Code Editing via Edit-Oriented Speculative Decoding
Redigeringsorienterad avkodning som återanvänder oförändrade delar av källan.
- PAFT: Preservation Aware Fine-Tuning for Minimal-Edit Program Repair
Gör bevarande och minimala ändringar explicita vid träning för programreparation.