FORSKNINGSNOTAT

Lokalisert kodeendring med generative modeller

Hvordan unngå unødvendig omskriving av hele funksjoner, samtidig som en generativ modell beholder tilstrekkelig frihet til å utføre den ønskede kodeendringen.

Del dette forskningsnotatetDel

DIREKTE SVAR

Hvordan kan en generativ modell endre kode uten å skrive om hele funksjonen?

Definer beskyttede og redigerbare områder før generering, gjenbruk eller begrens den beskyttede representasjonen, generer bare endringskandidater, og forkast resultater som endrer beskyttet kode eller ikke består oppgavespesifikke kontroller. Lokalitet og vellykket oppgaveløsning må måles samlet.

Hvorfor skillet er viktig

Påstanden må avgrenses til det metoden faktisk gjør observerbart.

Lokalisert kodeendring er et redigeringsproblem, ikke bare en kortere instruksjon for kodegenerering. Inndataene inneholder allerede en artefakt som er verdt å bevare, og metoden trenger derfor en eksplisitt bevaringsgrense mellom området som kan endres, og egenskapene som må forbli stabile.

Grensen kan være et kildekodespenn, en syntaksnode, en API-signatur, testatferd, en avhengighetskontrakt eller en lært latent posisjon. Disse valgene er ikke utskiftbare: Hvert av dem beskytter en annen observerbar egenskap og krever et tilsvarende verifikasjonstrinn.

En praktisk fremgangsmåte

  1. Angi bevaringskontrakten

    Identifiser området som kan redigeres, samt den nøyaktige teksten, strukturen, grensesnittet eller atferden som må forbli uendret.

  2. Velg den smaleste nyttige kontrollflaten

    Gjenbruk uendrede kildeavsnitt, benytt utfylling eller redigeringsorientert dekoding, anvend formelle begrensninger eller lås utvalgte latente posisjoner i samsvar med den påkrevde egenskapen.

  3. Generer bare der endring er tillatt

    Behold tilstrekkelig frihet innenfor det redigerbare området til å løse oppgaven; å kopiere hele inndataene er lokalt, men gir ingen fremdrift.

  4. Kontroller lokalitet og resultat samlet

    Forkast kandidater som endrer beskyttede områder, ikke lar seg parse eller kompilere, bryter strukturelle invarianter eller ikke oppfyller den etterspurte endringen.

Påkrevd dokumentasjon

En påstand kan ikke gå lenger enn det som dokumenteres av egenskapen som måles etter generering eller dekoding.

  • Differanse utenfor området eller et annet direkte mål på stabiliteten i det beskyttede området.
  • Oppgavesuksess innenfor den redigerbare regionen.
  • Parsing, kompilering, tester, statiske kontroller eller oppgavespesifikke invarianter, alt etter hva som er relevant.
  • Endringsrate i det redigerbare området, slik at kopiering ikke forveksles med kontroll.
  • Unike kandidater og variasjon mellom gjentatte kjøringer, slik at lokalitet ikke forveksles med moduskollaps.

Resultater fra den tilknyttede studien

  • Det tilknyttede eksperimentet komprimerer Python-funksjoner på 64 tokener til hierarkiske diskrete posisjoner og regenererer utvalgte latente posisjoner under partielle begrensninger.
  • Låsing av fire koder på øverste nivå økte parseraten fra 0.453 til 0.591, samtidig som ulåste posisjoner hadde en endringsrate på 0.936 og de betingede utvalgene fortsatt var 0.998 unike.
  • Målingene synliggjør en avveiing mellom stabilitet og frihet over tokennivået; de beviser ikke eksakt bevaring av kildespenn, AST, semantikk eller atferd.

Les publikasjonsoversikten Søk i hele artikkelteksten

Avgrensning

  • En låst latentkode er ikke automatisk en AST-node, et beskyttet kildespenn eller en formell invariant.
  • Parseraten fastslår syntaktisk velformethet, ikke funksjonell korrekthet eller vellykket reparasjon.
  • Den rapporterte evidensen stammer fra korte, forbehandlede Python-funksjoner og dokumenterer ikke atferd på repositorienivå.
Sammenlign kontrollflater for lokalisert redigering

Primærkilder og nærliggende kilder

Se de lenkede artiklene for de opprinnelige metodene, målingene og oppgitte begrensningene.

  1. Inspectable Control for Structure-Preserving Software Regeneration

    Hovedartikkelen og eksperimentet med avgrensede hierarkiske latenter.

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

    Redigeringsorientert dekoding som gjenbruker uendrede områder i kilden.

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

    Gjør bevaring og minimale endringer eksplisitte i trening for programreparasjon.

Vedlikeholdes av . Denne siden sammenfatter eksisterende dokumentasjon og tilfører ingen eksperimentelle resultater utover de siterte kildene.

Se alle forskningsnotater