# Hogyan szerkesztheti a mesterséges intelligencia a kódot a teljes program újbóli generálása nélkül?

Canonical HTML: https://aogavrilov.com/hu/projects/discrete-latent-generation/

Document language: hu

Gyakorlati kutatási útmutató a kód generatív modellekkel végzett lokalizált módosításához: minek kell rögzítettnek maradnia, mi változhat, és milyen bizonyíték szükséges ahhoz, hogy egy átalakítást szerkezetmegőrzőnek nevezzünk.

Megjelent 2026. július 25. Frissítve 2026. július 30. [Alexey Gavrilov](https://aogavrilov.com/about/)

## Mi a tényleges probléma?

A kódszerkesztés nem pusztán rövidebb prompttal végzett kódgenerálás. A szerkesztő egy meglévő artefaktumot, egy kívánt módosítást és egy implicit megőrzési szerződést kap. A központi kérdés ezért kétoldalú: **mely tartomány változhat, és a fennmaradó rész mely tulajdonságainak kell stabilnak maradniuk?**

Ez az útmutató az MI-vel támogatott szoftverszerkesztéssel most ismerkedő, műszaki háttérrel rendelkező olvasóknak szól. Elkülöníti a lokális szerkesztés intuitív fogalmát a szintaktikai, szerkezeti, szemantikai és funkcionális megőrzés erősebb állításaitól.

## Alapgondolat

Egy behatárolt szerkesztőnek nemcsak generálási célra, hanem explicit megőrzési határra is szüksége van.

### Minek kell változatlanul maradnia?

Ez lehet szövegrész, nyelvtan, API-aláírás, AST-tartomány, tesztviselkedés, függőségi szerződés vagy tanult durva reprezentáció. Mindegyik választás a stabilitás más-más értelmezését védi.

### Mi változhat?

A szerkeszthető régiónak elegendő szabadságot kell biztosítania a kívánt feladat megoldásához. A mindent lemásoló vezérlési módszer stabil, de haszontalan; a mindent átíró módszer pedig lokalitás nélküli szabadságot kínál.

## Szemléletes modell: újítsunk fel egy szobát, miközben megőrizzük az épületet

Képzeljük el egyetlen helyiség felújítását úgy, hogy a teherhordó szerkezet, a vízvezeték-csatlakozások és a szomszédos helyiségek érintetlenek maradnak. A teljes újragenerálás ahhoz hasonlít, mintha a házat szóbeli leírás alapján építenénk újjá. A lokalizált szerkesztés ehelyett kijelöli a védett szerkezetet, körülhatárolt munkaterületet nyit, elvégzi a módosítást, majd elfogadás előtt ellenőrzi az eredményt.

**Ahol az analógia érvényét veszti.** A tanult látens kód nem hitelesített architekturális terv. Egy durva felbontású kód rögzítése növelheti a mért szerkezeti stabilitást, de nem garantálja, hogy egy adott AST-csomópont, viselkedés vagy interfész változatlan marad.

## A részleges újragenerálás pontosabb szemlélete

Képeztessük le a programot egy kódolóval `x` strukturált látens reprezentációvá `z` . Egy megőrzési maszk választja ki a pozíciókat `L` rögzítendőként. A generátor csak a kiegészítő pozíciókból mintavételez, miközben kikényszeríti `z'l = zl` minden zárolt pozícióra. Ezután egy dekóder a teljes reprezentációt leképezi `z'` vissza a forráskódba.

Ez a mechanizmus a tokenek felett vizsgálható vezérlési felületet hoz létre. Jelentését azonban empirikusan kell megállapítani: a kutatóknak ellenőrizniük kell, mit őriznek meg a rögzített pozíciók a dekódolás után, és elegendő szabadságot tartanak-e meg a szerkeszthető pozíciók.

## Négyszakaszos szerkesztési munkafolyamat

1. Határozza meg a határt Azonosítsa a védett régiókat vagy tulajdonságokat, és határozza meg a kívánt módosítást.
2. A műtermék reprezentálása Használjon szöveget, szintaxist, visszakeresési kontextust, illetve durva és finom tanult kódokat.
3. Szelektív újragenerálás Csak a szerkeszthető pozíciókból vegyen mintát, a kiválasztott korlátozások megtartása mellett.
4. Elfogadás előtt ellenőrizze Mérje a lokalitást, a szintaxist, a struktúrát, a viselkedést és a nem szándékolt mellékhatásokat.

## A kódszerkesztés, a programjavítás és a korlátozott generálás nem azonos feladat

| Megközelítés | Elsődleges cél | Jellemző megőrzési mechanizmus | Mit kell még ellenőrizni? |
| --- | --- | --- | --- |
| Teljes kódgenerálás | Teljes műtermék előállítása | Utasítás és kontextus | Minden, ami a kért módosításon kívül esik |
| Automatizált programjavítás | Az azonosított hiba megszüntetése | Hibalokalizálás, tesztek, sablonok vagy javítófoltok | Helyesség a rendelkezésre álló teszteken túl, valamint a javítófolt minimalitása |
| Kiegészítő vagy szerkesztőmodellek | Kijelölt szövegrégiók módosítása | Látható prefixum, szuffixum, eltérés vagy szerkesztési kontextus | Nem szándékolt szerkezeti és viselkedésbeli változások |
| Nyelvtanilag korlátozott dekódolás | Tartsa a kimeneteket egy formális nyelven belül | Nyelvtanilag érvényes dekódolási állapotok | A program jelentése, a feladat helyes teljesítése és a lokalitás |
| Hierarchikus látens vezérlés | A kiválasztott tanult pozíciók újragenerálása | Zárolt durva vagy finom szemcsézettségű látens kódok | Mit őriznek meg ezek a kódok a dekódolás után? |

## A lokalitás és a szerkezetmegőrzés mérése

## Melyik vezérlési felület illik a szerkesztési feladathoz?

„Ne írd újra az egész függvényt” — ez követelmény, nem pedig teljes módszer. Először határozzuk meg a kiszámíthatóvá teendő eredményt, majd válasszunk hozzá vezérlési felületet és megfelelő bizonyítékot.

| Elvárt garancia | Jobban illeszkedő vezérlési felület | Elvárandó bizonyítékok |
| --- | --- | --- |
| MI-támogatott, viselkedésmegőrző refaktorálás | Az átalakítást azonosítsa vagy javasolja egy LLM, majd ahol lehetséges, megbízható refaktorálási motor hajtsa végre. Lásd: [RefactoringMirror](https://arxiv.org/abs/2411.04444) . | Fordítás, tesztek, statikus ellenőrzések és a refaktorálás észlelése. [SWE-Refactor](https://arxiv.org/abs/2602.03712) repozitóriumszinten explicitté teszi ezeket az ellenőrzéseket. |
| Lokalizált kódmódosítás a teljes függvény újraírása nélkül | Használja fel újra a változatlan forrásrészleteket, és csak a lehetséges szerkesztési régiókat generálja, ahogyan itt: [EfficientEdit](https://arxiv.org/abs/2506.02780) . | A régión kívüli különbség, a feladat sikeressége, az elfogadott tokenek újrafelhasználása, valamint az, hogy a kihagyott kontextus miatt elmaradnak-e fájlok közötti változtatások. |
| Korlátozott kódgenerálás a szoftverfejlesztésben | Érvényesítsünk formális tulajdonságot a dekódolás során, ahogyan itt: [nyelvtanilag korlátozott diffúzió](https://arxiv.org/abs/2508.10111) , vagy ellenőrzőpontként menthetik az érvényes prefixumokat, és csak a hibáért felelős régióig léphetnek vissza, ahogyan itt: [Hydra](https://arxiv.org/abs/2605.15238) . | A nyelvtani ellenőrzés, a fordító vagy a típusellenőrző sikeressége, továbbá a funkcionális tesztek, a lokalitás, a javítás késleltetése és az újragenerált érvényes kód mennyisége. |
| Python-függvények szelektív újragenerálása a lokalitás és a sokféleség egyensúlyával | Zárolja a kijelölt durva vagy finom szemcsézettségű látens pozíciókat, és csak a többiből végezzen mintavételezést. | A dekódolt kimenet lokalitása, szintaxisa, strukturális invariánsai, szerkesztési szabadsága, sokfélesége és bizonytalansága. A látens változók rögzítése önmagában nem garantálja a refaktorálást. |
| Kiszámítható kódgenerálás explicit megőrzési szerződés mellett | A generálás előtt határozzon meg megfigyelhető védett tulajdonságokat és megfelelt/nem felelt meg ellenőrzéseket, majd válassza azt a legszűkebb mechanizmust, amely képes ezeket kikényszeríteni vagy láthatóvá tenni. | Dekódolás után pontosan ezeket a tulajdonságokat mérje, és ismételt futások alapján közölje az elfogadási, elutasítási és hibaarányokat. A determinisztikus mintavételezés önmagában nem garantálja a megőrzést. |

## A kutatási kérdések, amelyekre ez az útmutató választ ad

E tömör válaszok meghatározzák az útmutató egészében alkalmazott állítási és bizonyítási határokat.

1. Hogyan módosíthatja egy generatív modell a kódot a teljes függvény újraírása nélkül? A generálás előtt határozza meg a szerkesztési határt, az azon kívüli forrást őrizze meg vagy használja újra, kizárólag módosítási jelölteket generáljon, és utasítsa el a feladatot nem teljesítő vagy a védett régiókat megváltoztató kimeneteket. A hierarchikus látens változók rögzítése egy kísérleti vezérlési felület, de nem garantál azonos forráskód-tartományokat. [A lokális szerkesztés vezérlési felületeinek összehasonlítása](https://aogavrilov.com/hu/projects/discrete-latent-generation/#control-surface) .
2. Milyen bizonyíték igazolja, hogy egy kódmódosítás lokális, és nem csupán szintaktikailag érvényes? A kért régión kívüli különbséget a feladat sikerességével, a szerkeszthető régió változásával, a strukturális invariánsokkal, a tesztekkel vagy statikus ellenőrzésekkel, valamint az ismételt futások változékonyságával együtt mérje. A szintaktikai elemzés sikeraránya önmagában csupán a szintaktikai jólformáltságot igazolja. [A lokalitási bizonyítékok ellenőrzőlistájának áttekintése](https://aogavrilov.com/hu/projects/discrete-latent-generation/#measurement) .
3. Hogyan hangolható össze a kódszerkesztés lokalitása a generálás változatosságával? A védett régió stabilitását a szerkeszthető régió szabadságával és a jelöltek egyediségével együtt mutassa be. A bemenet másolása maximalizálhatja a stabilitást anélkül, hogy a feladat előrehaladna; a korlátlan átírás pedig maximalizálhatja a változást, miközben felszámolja a lokalitást. [Lásd a stabilitás és a szabadság közötti, korlátozott érvényű bizonyítékot](https://aogavrilov.com/hu/projects/discrete-latent-generation/#evidence) .
4. Miben különbözik egymástól a lokalizált kódszerkesztés, a korlátozott generálás és a programjavítás? A lokalizált szerkesztés azt hangsúlyozza, minek kell változatlanul maradnia; a korlátozott generálás valamely formális kimeneti tulajdonságot, például egy nyelvtanhoz tartozást kényszerít ki; a programjavítás pedig megköveteli, hogy a módosítás megfeleljen a hibaleírásnak vagy a feladatspecifikációnak. A szintaktikai helyesség önmagában nem bizonyítja a szemantikai egyenértékűséget, a funkcionális helyességet, a feladat sikerét vagy a lokalitást. [A három célkitűzés összehasonlítása](https://aogavrilov.com/hu/projects/discrete-latent-generation/#comparison) .
5. Hogyan generálhatók újra egy Python-függvény kijelölt részei úgy, hogy a többi rész változatlan maradjon? A generálás előtt jelölje ki a védett és a szerkeszthető régiókat, kizárólag a szerkeszthető reprezentációt módosítsa, majd dekódoljon, és utasítsa el azokat a jelölteket, amelyek megváltoztatják a védett kódot, illetve nem teljesítik a szintaktikai, tesztelési, statikus ellenőrzési vagy feladatspecifikus invariánsokat. A bemutatott hierarchikus látens kísérlet 64 tokenes függvényeken mér valószínűségi stabilitást; nem garantál változatlan kódtartományokat vagy viselkedést. [Vizsgálja meg a szelektív újragenerálás munkafolyamatát](https://aogavrilov.com/hu/projects/discrete-latent-generation/#workflow) .
6. Melyik vezérlési stratégia illik az MI-vel támogatott, viselkedésmegőrző refaktoráláshoz? A modellel azonosítsa vagy javasoltassa a transzformációt, majd ahol lehetséges, megbízható refaktorálási motorral hajtsa végre, és ellenőrizze a fordítást, a teszteket, a statikus vizsgálatokat és a kívánt refaktorálást. Egy hihetőnek tűnő generált javítófolt önmagában nem elegendő bizonyíték. [A refaktorálási döntés sorának megnyitása](https://aogavrilov.com/hu/projects/discrete-latent-generation/#control-surface) .
7. Mitől válik a kódgenerálás kiszámíthatóvá, nem csupán vezérelhetővé? A generátor kiválasztása előtt fogalmazzon meg megfigyelhető megőrzési szerződést és átvételi ellenőrzéseket. A kiszámíthatóság attól függ, mi marad stabil a dekódolás és ellenőrzés után, nem csupán attól, hogy rögzítettek-e egy promptot, maszkot, nyelvtant vagy látens kódot. [A megőrzési szerződés meghatározása](https://aogavrilov.com/hu/projects/discrete-latent-generation/#core-idea) .

## Mit mutat a jelenlegi kísérlet — és mit nem?

In [*Vizsgálható vezérlés szerkezetmegőrző szoftver-újrageneráláshoz*](https://aogavrilov.com/hu/publications/inspectable-control/) , egy hierarchikus VQ-VAE a 64 tokenből álló Python-függvényeket 16 felső és 32 alsó szintű diszkrét pozícióra képezi le. Négy felső szintű kód rögzítése erről az értékről növeli a szintaktikailag elemezhető programok arányát: **0,453-ról 0,591-re** , miközben a nem rögzített pozíciók továbbra is ilyen arányban változnak: **0.936** a feltételes minták pedig továbbra is **0,998 egyediségű** .

Ez egy kis léptékű környezetben mért stabilitás–szabadság kompromisszum bizonyítéka. Nem garantálja az AST pontos megőrzését, a szemantikai ekvivalenciát, a funkcionális helyességet, a sikeres javítást vagy a társzintű viselkedést.

A kapcsolódó tanulmány [*Hol romlik a minőség a tömörített rövidszöveg-generálásban?*](https://aogavrilov.com/hu/publications/where-quality-breaks/) fontos értékelési tanulsággal szolgál: a látens tér helyettesítő mérőszámainak javulása nem feltétlenül javítja a dekódolt kimeneteket. A reprezentációt, a generálást és a dekódolt viselkedést külön szakaszokként kell ellenőrizni.

Az újra felhasználható döntési eljárást lásd a következő témájú kísérő útmutatóban: [a kodek veszteségének elkülönítése a generátor veszteségétől](https://aogavrilov.com/hu/projects/codec-bottleneck-diagnosis/) .

## Gyakori félreértések

### „A szintaktikai elemzés sikeres, tehát a program helyes.”

A szintaktikai elemzés csak a szintaktikai jólformáltságot bizonyítja. A program továbbra is sértheti a teszteket, a szerződéseket vagy a szándékot.

### „Egy durva felbontású kód egy AST-csomópont.”

Nem, hacsak az explicit illeszkedést nem igazolták. A tanult kódok több felszíni és strukturális tényezőt is összekeverhetnek.

### „A rögzített látens változók változatlan forrásszöveget jelentenek.”

A dekódolás globális és tanult folyamat. A rögzített látens pozíciók növelhetik a stabilitást, de nem garantálják egy adott szövegtartomány változatlanságát.

### „A kevesebb módosítás mindig jobb.”

A bemenetet lemásoló szerkesztő tökéletes stabilitást ér el, de semmit sem halad a feladattal. A lokalitást és a szerkesztés sikerét együttesen kell mérni.

## További olvasnivaló

A kapcsolódó munkák eltérő vezérlési felületeket alkalmaznak; a feladathoz való illesztés nélkül egyik sem tekinthető felcserélhető viszonyítási alapnak.

1. [Self-Edit: Fault-Aware Code Editor for Code Generation](https://arxiv.org/abs/2305.04087) A generálást szerkeszthető folyamatként kezeli, és az észlelt hibák alapján irányítja a javítást.
2. [Coeditor: Leveraging Contextual Changes for Multi-round Code Auto-editing](https://arxiv.org/abs/2305.18584) A szerkesztési körökön átívelő, kontextusfüggő kódváltozásokat modellezi, ahelyett hogy mindent az alapoktól generálna újra.
3. [PAFT: Megőrzéstudatos finomhangolás minimális módosítású programjavításhoz](https://arxiv.org/abs/2604.03113) A programjavítás tanítása során explicitté teszi a megőrzést és a minimális módosítást.
4. [Constrained Decoding of Diffusion LLMs with Context-Free Grammars](https://arxiv.org/abs/2508.10111) Bemutatja, miként nyújthatnak a formális korlátozások szintaktikai garanciákat a diffúziós dekódolás során.
5. [Neurális diszkrét reprezentációtanulás](https://arxiv.org/abs/1711.00937) Bemutatja a VQ-VAE-t, a tanult diszkrét látens reprezentációk alapvető mechanizmusát.
6. [Simple and Effective Masked Diffusion Language Models](https://arxiv.org/abs/2406.07524) Ismerteti a kísérő diagnosztikai vizsgálat látens generátoraként alkalmazott maszkolt diszkrét diffúziós keretrendszert.
7. [Empirikus vizsgálat az LLM-ekben rejlő lehetőségekről az automatizált szoftverrefaktorálásban](https://arxiv.org/abs/2411.04444) Felismeri az LLM által javasolt nem biztonságos refaktorálásokat, és megbízható refaktorálómotorokkal értékeli az észlelt transzformációk újbóli alkalmazását.
8. [SWE-Refactor: A Repository-Level Benchmark for Real-World LLM-Based Code Refactoring](https://arxiv.org/abs/2602.03712) A viselkedést megőrző, társzintű refaktorálást fordítással, tesztekkel és refaktorálás-észleléssel értékeli.
9. [EfficientEdit: Accelerating Code Editing via Edit-Oriented Speculative Decoding](https://arxiv.org/abs/2506.02780) Újrafelhasználja a változatlan forrásszegmenseket, és előre jelzi a szerkesztési helyeket ahelyett, hogy a módosítást teljes autoregresszív újragenerálásként kezelné.
10. [Hydra: hatékony és helyes kódgenerálás ellenőrzőpont- és visszaállítás-támogatással](https://arxiv.org/abs/2605.15238) Statikus ellenőrzéssel, ellenőrzőpontokkal és célzott visszaállítással kerüli el, hogy hiba után a már érvényes prefixumokat is újragenerálja.

## Rövid összefoglaló

A lokális kód-újragenerálás két követelmény összehangolása: **módosítás** és **megőrzés** . A hierarchikus diszkrét látens változók lehetővé teszik e szerződés ellenőrizhető kifejezését, de a reprezentáció csak akkor hasznos, ha a dekódolt programokat lokalitás, szintaxis, szerkezet, viselkedés, sokféleség és bizonytalanság szempontjából is értékeljük.

## Publikációk ebben a kutatási irányban

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

Hol romlik a minőség a tömörített rövidszöveg-generálásban? A szűk keresztmetszet szakaszos lokalizálása

Diagnosztikai módszertan FRUCT 39 2026 Fő konferencia

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

Vizsgálható vezérlés szerkezetmegőrző szoftver-újrageneráláshoz

Látens térbeli vezérlési módszer FSE Companion '26 2026 Kapcsolódó poszter
