# Jak může umělá inteligence upravovat kód, aniž by znovu generovala celý program?

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

Document language: cs

Praktický výzkumný průvodce lokalizovanými úpravami kódu pomocí generativních modelů: co má zůstat pevné, co se smí změnit a jaké doklady jsou nutné, než lze transformaci označit za zachovávající strukturu.

Publikováno 25. července 2026 Aktualizováno 30. července 2026 [Alexey Gavrilov](https://aogavrilov.com/about/)

## V čem problém skutečně spočívá

Editace kódu není pouhým generováním kódu s kratším promptem. Editor dostává existující artefakt, zamýšlenou změnu a implicitní smlouvu o zachování. Ústřední otázka má proto dvě stránky: **která oblast se smí změnit a které vlastnosti zbývající části musí zůstat stabilní?**

Tento průvodce je určen technicky vzdělaným čtenářům, kteří začínají s editací softwaru podporovanou umělou inteligencí. Odlišuje intuitivní představu lokální úpravy od silnějších tvrzení o zachování syntaxe, struktury, sémantiky a funkce.

## Hlavní myšlenka

Editor s vymezeným rozsahem potřebuje explicitní hranici zachování, nikoli pouze cíl generování.

### Co musí zůstat beze změny

Může jít o textový úsek, gramatiku, signaturu API, oblast AST, chování testů, smlouvu závislostí nebo naučenou hrubou reprezentaci. Každá volba chrání jinak pojatou stabilitu.

### Co se může změnit

Upravitelná oblast musí poskytovat dostatečnou volnost k vyřešení požadované úlohy. Kontrolní metoda, která vše kopíruje, je stabilní, ale nepoužitelná; metoda, která vše přepisuje, nabízí volnost bez lokálnosti.

## Intuitivní model: renovujte jednu místnost, zachovejte budovu

Představte si rekonstrukci jedné místnosti, při níž zůstanou nedotčeny nosná konstrukce, napojení rozvodů i sousední místnosti. Úplné opětovné generování se podobá stavbě celého domu znovu podle slovního popisu. Lokalizovaná úprava naproti tomu označí chráněnou strukturu, vymezí pracovní oblast, provede změnu a před jejím přijetím zkontroluje výsledek.

**Kde analogie přestává platit.** Naučený latentní kód není certifikovaným architektonickým plánem. Fixace hrubého kódu může zvýšit naměřenou stabilitu struktury, nezaručuje však, že konkrétní uzel AST, chování nebo rozhraní zůstane beze změny.

## Přesnější pohled na částečné regenerování

Nechť kodér zobrazí program `x` do strukturované latentní reprezentace `z` . Maska zachování vybírá pozice `L` které mají zůstat pevné. Generátor vzorkuje pouze doplňkové pozice a současně vynucuje `z'l = zl` pro každou uzamčenou pozici. Dekodér poté převede dokončenou reprezentaci `z'` zpět do zdrojového kódu.

Tento mechanismus vytváří nad tokeny přezkoumatelné řídicí rozhraní. Jeho význam je však třeba empiricky ověřit: výzkumníci musí testovat, co uzamčené pozice po dekódování zachovávají a zda editovatelné pozice poskytují dostatečnou volnost.

## Čtyřfázový pracovní postup úprav

1. Vymezte hranici Určete chráněné oblasti nebo vlastnosti a vymezte zamýšlenou změnu.
2. Zvolte reprezentaci artefaktu Použijte text, syntaxi, kontext získaný vyhledáváním nebo hrubé a jemné naučené kódy.
3. Regenerujte selektivně Vzorkovat pouze upravitelné pozice a přitom zachovat zvolená omezení.
4. Před přijetím ověřte Měřte lokalitu, syntaxi, strukturu, chování a nezamýšlené vedlejší účinky.

## Editace kódu, oprava programů a omezené generování nejsou totožné úlohy

| Přístup | Hlavní cíl | Typický mechanismus zachování | Co je ještě třeba ověřit |
| --- | --- | --- | --- |
| Generování celého kódu | Vytvořit úplný artefakt | Zadání a kontext | Vše mimo požadovanou změnu |
| Automatizovaná oprava programů | Odstranit diagnostikovanou chybu | Lokalizace chyb, testy, šablony nebo záplaty | Správnost nad rámec dostupných testů a minimalita záplaty |
| Modely pro doplňování nebo úpravy | Upravit vybrané oblasti textu | Viditelný prefix, sufix, rozdíl nebo kontext úpravy | Nezamýšlené změny struktury a chování |
| Dekódování omezené gramatikou | Udržujte výstupy v mezích formálního jazyka | Stavy dekódování vyhovující gramatice | Význam programu, správnost úlohy a lokalita změn |
| Hierarchická kontrola latentní reprezentace | Regenerovat vybrané naučené pozice | Uzamčené hrubé nebo jemné latentní kódy | Co tyto kódy po dekódování zachovávají |

## Jak měřit lokalitu a zachování struktury

## Které řídicí rozhraní odpovídá dané editační úloze?

„Nepřepisujte celou funkci“ je požadavek, nikoli úplná metoda. Nejprve určete výsledek, který musí být předvídatelný, a poté zvolte ovládací rozhraní a odpovídající doklady.

| Požadovaná záruka | Vhodněji přizpůsobené ovládací rozhraní | Důkazy, které je třeba požadovat |
| --- | --- | --- |
| Refaktorizace s podporou AI zachovávající chování | Nechte velký jazykový model určit nebo navrhnout transformaci a poté ji, je-li to možné, proveďte pomocí důvěryhodného refaktorizačního nástroje. Viz [RefactoringMirror](https://arxiv.org/abs/2411.04444) . | Kompilace, testy, statické kontroly a detekce refaktorizace. [SWE-Refactor](https://arxiv.org/abs/2602.03712) explicitně zavádí tyto kontroly na úrovni repozitáře. |
| Lokalizované změny kódu bez přepisování celé funkce | Znovu použít nezměněné úseky zdrojového textu a generovat pouze kandidátní oblasti úprav, jako v [EfficientEdit](https://arxiv.org/abs/2506.02780) . | Rozdíl mimo vymezenou oblast, úspěšnost úlohy, opětovné využití přijatých tokenů a skutečnost, zda vynechaný kontext vede k přehlédnutí změn napříč soubory. |
| Omezené generování kódu pro softwarové inženýrství | Během dekódování vynuťte formální vlastnost, obdobně jako v [difuze omezená gramatikou](https://arxiv.org/abs/2508.10111) , nebo ukládat kontrolní body platných prefixů a vracet se pouze do oblasti odpovědné za chybu, jako v [Hydra](https://arxiv.org/abs/2605.15238) . | Úspěšnost kontroly gramatikou, kompilátorem či typovým analyzátorem spolu s funkčními testy, lokalitou změn, latencí opravy a množstvím regenerovaného platného kódu. |
| Selektivní regenerování funkcí v Pythonu s vyvážením lokálnosti a rozmanitosti | Uzamkněte vybrané hrubé nebo jemné latentní pozice a vzorkujte pouze zbývající. | Lokalita dekódovaného výstupu, syntax, strukturní invarianty, volnost editace, rozmanitost a nejistota. Samotné uzamčení latentních reprezentací nezaručuje refaktorizaci. |
| Předvídatelné generování kódu s explicitním kontraktem zachování | Před generováním definujte pozorovatelné chráněné vlastnosti a kontroly úspěchu či neúspěchu; poté zvolte nejužší mechanismus, který je dokáže vynutit nebo zpřístupnit inspekci. | Po dekódování změřte právě tyto vlastnosti a za opakované běhy uveďte podíly přijetí, zamítnutí a selhání. Samotné deterministické vzorkování nezaručuje zachování. |

## Výzkumné otázky, na něž tento průvodce odpovídá

Tyto stručné odpovědi vymezují tvrzení a hranice dokladů uplatňované v celém tomto průvodci.

1. Jak může generativní model upravit kód, aniž by přepsal celou funkci? Před generováním vymezte hranici editace, zachovejte nebo znovu použijte zdrojový kód mimo ni, generujte pouze kandidátní změny a zamítněte výstupy, které nesplní úlohu nebo změní chráněné oblasti. Hierarchické uzamčení latentních reprezentací je jedním z experimentálních rozhraní kontroly, nezaručuje však totožné úseky zdrojového kódu. [Porovnejte rozhraní pro lokalizovanou kontrolu editace](https://aogavrilov.com/cs/research/discrete-latent-generation/#control-surface) .
2. Jaké důkazy prokazují, že je úprava kódu lokální, a nikoli pouze syntakticky správná? Rozdíl mimo požadovanou oblast měřte společně s úspěšností úlohy, změnou v upravitelné oblasti, strukturálními invarianty, testy či statickými kontrolami a variabilitou opakovaných běhů. Samotná úspěšnost syntaktické analýzy dokládá pouze syntaktickou korektnost. [Projděte kontrolní seznam důkazů o lokalitě změn](https://aogavrilov.com/cs/research/discrete-latent-generation/#measurement) .
3. Jak při úpravách kódu vyvážit lokalitu změn a rozmanitost generování? Vedle volnosti v upravitelné oblasti a jedinečnosti kandidátů uvádět také stabilitu chráněné oblasti. Kopírování vstupu může maximalizovat stabilitu, aniž přinese jakýkoli pokrok v úloze; neomezený přepis může maximalizovat rozsah změny, ale současně zničit její lokalitu. [Viz vymezené důkazy o vztahu stability a volnosti](https://aogavrilov.com/cs/research/discrete-latent-generation/#evidence) .
4. Čím se liší lokalizované úpravy kódu, omezené generování a opravy programů? Lokalizované úpravy kladou důraz na to, co se nesmí změnit, omezené generování vynucuje formální vlastnost výstupu, například příslušnost ke gramatice, a oprava programu vyžaduje, aby změna splňovala specifikaci vady nebo úlohy. Samotná syntaxe nedokládá sémantickou ekvivalenci, funkční správnost, úspěšné splnění úlohy ani lokalitu. [Porovnejte tři cíle](https://aogavrilov.com/cs/research/discrete-latent-generation/#comparison) .
5. Jak lze znovu vygenerovat vybrané části funkce v jazyce Python a přitom zachovat stabilitu ostatních částí? Před generováním vymezte chráněné a editovatelné oblasti, upravujte pouze editovatelnou reprezentaci, proveďte dekódování a zamítněte kandidáty, kteří mění chráněný kód nebo nesplní požadavky na syntax, testy, statické kontroly či invarianty specifické pro danou úlohu. Popsaný experiment s hierarchickými latentními reprezentacemi měří pravděpodobnostní stabilitu na 64tokenových funkcích; nezaručuje nezměněné úseky ani chování. [Prozkoumejte postup selektivního opětovného generování](https://aogavrilov.com/cs/research/discrete-latent-generation/#workflow) .
6. Která strategie řízení se hodí pro refaktorizaci zachovávající chování a podporovanou umělou inteligencí? Model použijte k rozpoznání nebo návrhu transformace, poté ji pokud možno proveďte důvěryhodným refaktorizačním nástrojem a ověřte kompilaci, testy, statické kontroly i zamýšlenou refaktorizaci. Věrohodně působící vygenerovaná záplata není dostatečným dokladem. [Otevřít řádek s rozhodnutím o refaktorizaci](https://aogavrilov.com/cs/research/discrete-latent-generation/#control-surface) .
7. Co činí generování kódu předvídatelným, a nikoli pouze řiditelným? Před volbou generátoru stanovte pozorovatelný kontrakt zachování a akceptační kontroly. Předvídatelnost závisí na tom, co zůstává stabilní po dekódování a ověření, nikoli pouze na tom, zda byl pevně zadán prompt, maska, gramatika nebo latentní kód. [Definujte kontrakt zachování](https://aogavrilov.com/cs/research/discrete-latent-generation/#core-idea) .

## Co současný experiment ukazuje — a co nikoli

V [*Přezkoumatelné řízení regenerace softwaru se zachováním struktury*](https://aogavrilov.com/cs/publications/inspectable-control/) , hierarchické VQ-VAE mapuje funkce v jazyce Python o 64 tokenech na 16 diskrétních pozic nejvyšší úrovně a 32 pozic nižší úrovně. Uzamčení čtyř kódů nejvyšší úrovně zvyšuje podíl syntakticky analyzovatelných výstupů z **z 0,453 na 0,591** , zatímco neuzamčené pozice se nadále mění v míře **0.936** a podmíněné vzorky zůstávají **jedinečnost 0,998** .

Jde o doklad naměřeného kompromisu mezi stabilitou a volností v jednom malém experimentálním uspořádání. Nejde o záruku přesného zachování AST, sémantické ekvivalence, funkční správnosti, úspěšné opravy ani chování v měřítku repozitáře.

Doprovodná studie [*Kde se při generování komprimovaného krátkého textu zhoršuje kvalita*](https://aogavrilov.com/cs/publications/where-quality-breaks/) přináší důležité poučení pro hodnocení: lepší zástupné metriky v latentním prostoru nemusejí vést ke zlepšení dekódovaných výstupů. Reprezentaci, generování a chování po dekódování je třeba ověřovat jako samostatné fáze.

Opakovaně použitelný rozhodovací postup naleznete v doprovodném průvodci věnovaném tématu [oddělení ztráty kodeku od ztráty generátoru](https://aogavrilov.com/cs/research/codec-bottleneck-diagnosis/) .

## Častá nedorozumění

### „Projde syntaktickou analýzou, takže je správný.“

Syntaktická analýza dokládá pouze syntaktickou korektnost. Program přesto může porušovat testy, smlouvy či zamýšlený účel.

### „Hrubý kód je uzlem AST.“

Ne, pokud nebylo prokázáno explicitní sladění. Naučené kódy mohou směšovat několik povrchových a strukturálních faktorů.

### „Uzamčené latentní kódy znamenají nezměněný zdrojový text.“

Dekódování je globální a naučené. Fixované latentní pozice mohou zvýšit stabilitu, nezaručují však totožný úsek textu.

### „Menší změna je vždy lepší.“

Editor, který pouze zkopíruje vstup, dosahuje dokonalé stability, ale v úloze nepokročí. Lokalitu a úspěšnost úpravy je nutné měřit společně.

## Co číst dále

Příbuzné práce používají odlišná rozhraní řízení; bez sladění úloh nelze žádnou z nich považovat za zaměnitelnou referenční metodu.

1. [Self-Edit: Fault-Aware Code Editor for Code Generation](https://arxiv.org/abs/2305.04087) Pojímá generování jako editovatelný proces a zjištěné chyby využívá k řízení opravy.
2. [Coeditor: Leveraging Contextual Changes for Multi-round Code Auto-editing](https://arxiv.org/abs/2305.18584) Modeluje kontextové změny kódu napříč koly úprav, místo aby jej pokaždé generoval od začátku.
3. [PAFT: Dolaďování zohledňující zachování pro opravy programů s minimálními zásahy](https://arxiv.org/abs/2604.03113) Při trénování oprav programů explicitně vymezuje zachování a minimální rozsah změn.
4. [Constrained Decoding of Diffusion LLMs with Context-Free Grammars](https://arxiv.org/abs/2508.10111) Ukazuje, jak mohou formální omezení poskytovat záruky syntaktické správnosti při difuzním dekódování.
5. [Učení neuronových diskrétních reprezentací](https://arxiv.org/abs/1711.00937) Představuje VQ-VAE, základní mechanismus naučených diskrétních latentních reprezentací.
6. [Simple and Effective Masked Diffusion Language Models](https://arxiv.org/abs/2406.07524) Představuje rámec maskované diskrétní difuze použitý jako latentní generátor v doprovodné diagnostické studii.
7. [An Empirical Study on the Potential of LLMs in Automated Software Refactoring](https://arxiv.org/abs/2411.04444) Odhaluje nebezpečné refaktoringy navržené modelem LLM a vyhodnocuje opětovné provedení rozpoznaných transformací prostřednictvím důvěryhodných refaktorovacích nástrojů.
8. [SWE-Refactor: A Repository-Level Benchmark for Real-World LLM-Based Code Refactoring](https://arxiv.org/abs/2602.03712) Vyhodnocuje refaktoring na úrovni repozitáře zachovávající chování, a to pomocí kompilace, testů a detekce refaktoringu.
9. [EfficientEdit: Accelerating Code Editing via Edit-Oriented Speculative Decoding](https://arxiv.org/abs/2506.02780) Znovu využívá nezměněné části zdrojového textu a předpovídá místa úprav, místo aby úpravu pojímalo jako úplnou autoregresivní regeneraci.
10. [Hydra: Efficient, Correct Code Generation via Checkpoint-and-Rollback Support](https://arxiv.org/abs/2605.15238) Využívá statickou kontrolu, kontrolní body a cílený návrat, aby po chybě znovu negeneroval již platné prefixy.

## Stručné shrnutí

Lokalizované opětovné generování kódu je smlouvou mezi **změna** a **zachování** . Hierarchické diskrétní latentní reprezentace nabízejí jeden způsob, jak tuto smlouvu vyjádřit tak, aby ji bylo možné podrobit inspekci; reprezentace je však užitečná pouze tehdy, jsou-li dekódované programy hodnoceny z hlediska lokality, syntaxe, struktury, chování, rozmanitosti a nejistoty.

## Publikace v tomto směru výzkumu

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

Kde se láme kvalita při generování komprimovaných krátkých textů: vícefázová lokalizace úzkého hrdla

Diagnostická metodologie FRUCT 39 2026 Hlavní konference

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

Přezkoumatelné řízení regenerace softwaru se zachováním struktury

Metoda řízení v latentním prostoru FSE Companion '26 2026 Doprovodný poster
