# Hvordan kan AI redigere kode uden at generere hele programmet på ny?

Canonical HTML: https://aogavrilov.com/da/research/discrete-latent-generation/

Document language: da

En praktisk forskningsvejledning i lokaliserede kodeændringer med generative modeller: Hvad skal fastholdes, hvad må ændres, og hvilket belæg kræves, før en transformation kan betegnes som strukturbevarende?

Udgivet 25. juli 2026 Opdateret 30. juli 2026 [Alexey Gavrilov](https://aogavrilov.com/about/)

## Hvad problemet reelt består i

Koderedigering er ikke blot kodegenerering med en kortere prompt. Et redigeringssystem modtager en eksisterende artefakt, en tilsigtet ændring og en implicit bevarelseskontrakt. Det centrale spørgsmål har derfor to sider: **hvilket område må ændres, og hvilke egenskaber i resten skal forblive stabile?**

Denne vejledning henvender sig til teknisk kyndige læsere, der begynder at arbejde med AI-assisteret softwareredigering. Den skelner mellem den intuitive idé om en lokal ændring og de stærkere påstande om syntaktisk, strukturel, semantisk og funktionel bevarelse.

## Grundidé

Et redigeringsværktøj med et afgrænset virkefelt kræver en eksplicit bevarelsesgrænse, ikke blot et genereringsmål.

### Hvad skal forblive uændret?

Det kan være et tekstudsnit, en grammatik, en API-signatur, et AST-område, testadfærd, en afhængighedskontrakt eller en indlært grov repræsentation. Hvert valg beskytter en særskilt form for stabilitet.

### Hvad må ændres?

Det redigerbare område skal have tilstrækkelig frihed til at løse den ønskede opgave. En styringsmetode, der kopierer alt, er stabil, men ubrugelig; en metode, der omskriver alt, giver frihed uden lokalitet.

## En intuitiv model: Renover ét rum, og bevar bygningen

Forestil dig, at ét rum renoveres, mens den bærende konstruktion, installationernes tilslutninger og de tilstødende rum forbliver intakte. Fuld regenerering svarer til at genopføre huset ud fra en mundtlig beskrivelse. Ved lokaliseret redigering markeres den beskyttede struktur derimod, et afgrænset arbejdsområde åbnes, ændringen udføres, og resultatet inspiceres, før det godkendes.

**Hvor analogien ikke længere holder.** En indlært latent kode er ikke en certificeret arkitekturplan. Fastholdelse af en grovkornet kode kan øge den målte strukturelle stabilitet, men garanterer ikke, at en bestemt AST-node, adfærd eller grænseflade forbliver uændret.

## Et mere præcist syn på delvis regenerering

Lad en encoder afbilde et program `x` til en struktureret latent repræsentation `z` . En bevarelsesmaske udvælger positioner `L` som skal fastholdes. Generatoren sampler kun de komplementære positioner, samtidig med at den håndhæver `z'l = zl` for hver låst position. En dekoder afbilder derefter den fuldførte repræsentation `z'` tilbage til kildekoden.

Mekanismen skaber en inspicerbar styringsgrænseflade over tokenniveauet. Dens betydning skal fortsat fastslås empirisk: Forskere må undersøge, hvad de låste positioner bevarer efter afkodning, og om de redigerbare positioner har tilstrækkelig frihed.

## En redigeringsarbejdsgang i fire trin

1. Angiv grænsen Identificér beskyttede områder eller egenskaber, og definér den tilsigtede ændring.
2. Repræsentér artefakten Anvend tekst, syntaks, retrieval-kontekst eller grove og fine indlærte koder.
3. Regenerér selektivt Udtag kun stikprøver fra redigerbare positioner, mens de valgte begrænsninger fastholdes.
4. Verificér før accept Mål lokalitet, syntaks, struktur, adfærd og utilsigtede bivirkninger.

## Koderedigering, programreparation og begrænset generering er ikke den samme opgave

| Tilgang | Primært mål | Typisk bevaringsmekanisme | Hvad mangler fortsat at blive verificeret? |
| --- | --- | --- | --- |
| Fuldstændig kodegenerering | Frembring en komplet artefakt | Prompt og kontekst | Alt uden for den ønskede ændring |
| Automatiseret programreparation | Fjern en diagnosticeret fejl | Fejllokalisering, test, skabeloner eller programrettelser | Korrekthed ud over de tilgængelige test samt minimale programrettelser |
| Modeller til udfyldning eller redigering | Redigér udvalgte tekstområder | Synligt præfiks, suffiks, diff eller redigeringskontekst | Utilsigtede strukturelle og adfærdsmæssige ændringer |
| Grammatikbegrænset afkodning | Sørg for, at output tilhører et formelt sprog | Afkodningstilstande med gyldig grammatik | Programmets betydning, opgavens korrekthed og lokalitet |
| Hierarkisk latent styring | Regenerér udvalgte indlærte positioner | Låste grove eller fine latente koder | Hvad disse koder bevarer efter afkodning |

## Sådan måles lokalitet og strukturbevarelse

## Hvilken kontrolflade passer til redigeringsopgaven?

»Omskriv ikke hele funktionen« er et krav, ikke en fuldstændig metode. Tag udgangspunkt i det resultat, der skal være forudsigeligt, og vælg derefter en passende styringsgrænseflade og den tilhørende evidens.

| Påkrævet garanti | Bedre afstemt styringsflade | Evidens, der bør kræves |
| --- | --- | --- |
| AI-assisteret adfærdsbevarende refaktorering | Lad en LLM identificere eller foreslå en transformation, og udfør den derefter så vidt muligt med en betroet refaktoreringsmotor. Se [RefactoringMirror](https://arxiv.org/abs/2411.04444) . | Kompilering, test, statiske kontroller og detektion af refaktorering. [SWE-Refactor](https://arxiv.org/abs/2602.03712) gør disse kontroller eksplicitte på repositoryniveau. |
| Lokaliseret kodemodifikation uden omskrivning af hele funktionen | Genbrug uændrede passager i kildeteksten, og generér kun mulige redigeringsområder som i [EfficientEdit](https://arxiv.org/abs/2506.02780) . | Diff uden for området, opgavesucces, genbrug af accepterede tokens samt om udeladt kontekst medfører oversete ændringer på tværs af filer. |
| Begrænset kodegenerering til softwareudvikling | Håndhæv en formel egenskab under afkodningen, som i [grammatikbegrænset diffusion](https://arxiv.org/abs/2508.10111) , eller gemme kontrolpunkter for gyldige præfikser og kun rulle tilbage til det ansvarlige område, som i [Hydra](https://arxiv.org/abs/2605.15238) . | Vellykket grammatik-, compiler- eller typekontrol sammen med funktionelle test, lokalitet, reparationsforsinkelse og mængden af regenereret gyldig kode. |
| Selektiv regenerering af Python-funktioner med balance mellem lokalitet og diversitet | Lås udvalgte grove eller fine latente positioner, og foretag kun sampling af resten. | Lokalitet i den dekodede tekst, syntaks, strukturelle invarianter, redigeringsfrihed, diversitet og usikkerhed. Låsning af latente positioner udgør ikke i sig selv en garanti for refaktorering. |
| Forudsigelig kodegenerering under en eksplicit bevarelseskontrakt | Definér observerbare, beskyttede egenskaber og bestået/ikke-bestået-kontroller før genereringen; vælg dernæst den snævrest mulige mekanisme, der kan håndhæve eller synliggøre dem. | Mål netop disse egenskaber efter afkodning, og rapportér accept-, afvisnings- og fejlrater på tværs af gentagne kørsler. Deterministisk sampling er ikke i sig selv en bevarelsesgaranti. |

## Forskningsspørgsmål, som denne vejledning besvarer

Disse kortfattede svar afgrænser de påstande og den evidens, der anvendes gennem hele denne vejledning.

1. Hvordan kan en generativ model ændre kode uden at omskrive hele funktionen? Definér redigeringsgrænsen før genereringen, bevar eller genbrug kildekoden uden for denne grænse, generér kun ændringskandidater, og afvis output, der ikke løser opgaven eller ændrer beskyttede områder. Hierarkisk låsning af latente positioner er én eksperimentel styringsflade, men garanterer ikke identiske spænd i kildekoden. [Sammenlign styringsflader til lokaliseret redigering](https://aogavrilov.com/da/research/discrete-latent-generation/#control-surface) .
2. Hvilken evidens viser, at en kodeændring er lokal og ikke blot syntaktisk gyldig? Mål diffen uden for det ønskede område sammen med opgavesucces, ændringer i det redigerbare område, strukturelle invarianter, test eller statiske kontroller samt variation mellem gentagne kørsler. Parsingsraten alene påviser kun syntaktisk velformethed. [Gennemgå tjeklisten for evidens om lokalitet](https://aogavrilov.com/da/research/discrete-latent-generation/#measurement) .
3. Hvordan bør redigeringslokalitet i kode afvejes mod genereringsdiversitet? Rapportér stabiliteten i det beskyttede område sammen med friheden i det redigerbare område og kandidaternes entydighed. Kopiering af inputtet kan maksimere stabiliteten uden at løse opgaven, mens ubegrænset omskrivning kan maksimere ændringen og samtidig ødelægge lokaliteten. [Se den afgrænsede evidens for stabilitet og frihed](https://aogavrilov.com/da/research/discrete-latent-generation/#evidence) .
4. Hvordan adskiller lokaliseret koderedigering, begrænset generering og programreparation sig fra hinanden? Lokaliseret redigering fremhæver det, der skal forblive uændret; begrænset generering håndhæver en formel egenskab ved outputtet, såsom tilhørsforhold til en grammatik; og programreparation kræver, at ændringen opfylder en fejl- eller opgavespecifikation. Syntaks alene dokumenterer hverken semantisk ækvivalens, funktionel korrekthed, opgavesucces eller lokalitet. [Sammenlign de tre målfunktioner](https://aogavrilov.com/da/research/discrete-latent-generation/#comparison) .
5. Hvordan kan udvalgte dele af en Python-funktion genereres på ny, mens resten forbliver stabilt? Definér beskyttede og redigerbare områder før genereringen, modificér kun den redigerbare repræsentation, dekod, og afvis kandidater, der ændrer beskyttet kode eller ikke opfylder krav til syntaks, test, statiske kontroller eller opgavespecifikke invarianter. Det rapporterede eksperiment med hierarkiske latente repræsentationer måler probabilistisk stabilitet for funktioner på 64 tokens; det garanterer hverken uændrede spænd eller uændret adfærd. [Undersøg arbejdsgangen for selektiv regenerering](https://aogavrilov.com/da/research/discrete-latent-generation/#workflow) .
6. Hvilken kontrolstrategi egner sig til AI-assisteret adfærdsbevarende refaktorering? Anvend modellen til at identificere eller foreslå en transformation, udfør den derefter om muligt med en betroet refaktoreringsmotor, og verificér kompilering, test, statiske kontroller og den tilsigtede refaktorering. En plausibel genereret patch udgør ikke tilstrækkelig evidens. [Åbn beslutningsrækken for refaktorering](https://aogavrilov.com/da/research/discrete-latent-generation/#control-surface) .
7. Hvad gør kodegenerering forudsigelig frem for blot kontrollerbar? Angiv en observerbar bevarelseskontrakt og acceptkontroller, før generatoren vælges. Forudsigelighed afhænger af, hvad der forbliver stabilt efter afkodning og verifikation, ikke blot af om en prompt, maske, grammatik eller latent kode var fastlåst. [Definér bevarelseskontrakten](https://aogavrilov.com/da/research/discrete-latent-generation/#core-idea) .

## Hvad det aktuelle eksperiment viser — og ikke viser

I [*Inspicerbar kontrol af strukturbevarende softwareregenerering*](https://aogavrilov.com/da/publications/inspectable-control/) , afbilder en hierarkisk VQ-VAE Python-funktioner på 64 tokens til 16 diskrete positioner på øverste niveau og 32 på nederste niveau. Låsning af fire koder på øverste niveau øger parseraten fra **0.453 til 0.591** , mens ulåste positioner fortsat ændrer sig med raten **0.936** og betingede stikprøver forbliver **0.998 unikke** .

Dette er evidens for en målt afvejning mellem stabilitet og frihed i én lille forsøgsopstilling. Det er ikke en garanti for nøjagtig AST-bevarelse, semantisk ækvivalens, funktionel korrekthed, vellykket reparation eller adfærd på repository-niveau.

Den ledsagende undersøgelse [*Hvor kvaliteten svigter ved generering af komprimeret korttekst*](https://aogavrilov.com/da/publications/where-quality-breaks/) tilføjer en vigtig evalueringsindsigt: Forbedrede proxy-mål i latentrummet forbedrer ikke nødvendigvis afkodede output. Repræsentation, generering og afkodet adfærd bør kontrolleres som særskilte trin.

En genanvendelig beslutningsprocedure findes i den tilhørende vejledning om [adskillelse af codec-tab fra generatortab](https://aogavrilov.com/da/research/codec-bottleneck-diagnosis/) .

## Almindelige misforståelser

### “Den kan parses, så den er korrekt.”

Parsing beviser kun syntaktisk velformethed. Programmet kan stadig bryde test, kontrakter eller intentionen.

### “En grovkornet kode er en AST-node.”

Ikke medmindre der er påvist eksplicit tilpasning. Lærte koder kan sammenblande flere overflade- og strukturfaktorer.

### “Låste latente repræsentationer betyder uændret kildekode.”

Dekodningen er global og indlært. Fastlåste latente positioner kan øge stabiliteten uden at garantere et identisk tekstspænd.

### “Mindre ændring er altid bedre.”

Et redigeringsværktøj, der kopierer inputtet, opnår perfekt stabilitet, men ingen fremdrift i opgaven. Lokalitet og vellykket redigering skal måles samlet.

## Forslag til videre læsning

Nært beslægtede arbejder benytter andre styringsflader; ingen af dem bør behandles som et udskifteligt sammenligningsgrundlag uden tilpasning til opgaven.

1. [Self-Edit: Fault-Aware Code Editor for Code Generation](https://arxiv.org/abs/2305.04087) Behandler generering som en redigerbar proces og anvender registrerede fejl til at styre korrektionen.
2. [Coeditor: Leveraging Contextual Changes for Multi-round Code Auto-editing](https://arxiv.org/abs/2305.18584) Modellerer kontekstuelle kodeændringer på tværs af redigeringsrunder frem for at regenerere fra bunden.
3. [PAFT: Preservation Aware Fine-Tuning for Minimal-Edit Program Repair](https://arxiv.org/abs/2604.03113) Gør bevarelse og minimale ændringer eksplicitte i træning til programreparation.
4. [Constrained Decoding of Diffusion LLMs with Context-Free Grammars](https://arxiv.org/abs/2508.10111) Viser, hvordan formelle begrænsninger kan give syntaksgarantier under diffusionsafkodning.
5. [Neural Discrete Representation Learning](https://arxiv.org/abs/1711.00937) Introducerer VQ-VAE, den grundlæggende mekanisme for indlærte diskrete latente repræsentationer.
6. [Simple and Effective Masked Diffusion Language Models](https://arxiv.org/abs/2406.07524) Præsenterer rammeværket for masket diskret diffusion, der anvendes som latent generator i den ledsagende diagnostiske undersøgelse.
7. [An Empirical Study on the Potential of LLMs in Automated Software Refactoring](https://arxiv.org/abs/2411.04444) Finder usikre refaktoreringer foreslået af LLM'er og evaluerer genanvendelsen af detekterede transformationer gennem pålidelige refaktoreringsmotorer.
8. [SWE-Refactor: A Repository-Level Benchmark for Real-World LLM-Based Code Refactoring](https://arxiv.org/abs/2602.03712) Evaluerer adfærdsbevarende refaktorering på repositoryniveau ved hjælp af kompilering, test og detektion af refaktorering.
9. [EfficientEdit: Accelerating Code Editing via Edit-Oriented Speculative Decoding](https://arxiv.org/abs/2506.02780) Genbruger uændrede kildesegmenter og forudsiger redigeringssteder frem for at behandle en redigering som fuldstændig autoregressiv regenerering.
10. [Hydra: Efficient, Correct Code Generation via Checkpoint-and-Rollback Support](https://arxiv.org/abs/2605.15238) Anvender statisk kontrol, checkpoints og målrettet tilbagerulning for at undgå at regenerere allerede gyldige præfikser efter en fejl.

## Kort opsummering

Lokaliseret koderegenerering er en kontrakt mellem **ændring** og **bevarelse** . Hierarkiske diskrete latente repræsentationer giver én inspicerbar måde at udtrykke denne kontrakt på, men repræsentationen er kun nyttig, når afkodede programmer evalueres med hensyn til lokalitet, syntaks, struktur, adfærd, diversitet og usikkerhed.

## Publikationer inden for denne forskningsretning

### [Where Quality Breaks in Compressed Short-Text Generation: Staged Bottleneck Localization](https://aogavrilov.com/da/publications/where-quality-breaks/)

Hvor kvaliteten svigter i komprimeret korttekstgenerering: trinvis lokalisering af flaskehalse

Diagnostisk metodik FRUCT 39 2026 Hovedkonference

### [Inspectable Control for Structure-Preserving Software Regeneration](https://aogavrilov.com/da/publications/inspectable-control/)

Inspicerbar styring af strukturbevarende regenerering af software

Kontrolmetode for det latente rum FSE Companion '26 2026 Ledsagende poster
