VÝSKUMNÁ POZNÁMKA
Lokálna úprava kódu pomocou generatívnych modelov
Ako predísť zbytočnému prepisovaniu celej funkcie a zároveň ponechať generatívnemu modelu dostatočnú voľnosť na vykonanie požadovanej zmeny kódu.
PRIAMA ODPOVEĎ
Ako môže generatívny model upraviť kód bez prepísania celej funkcie?
Pred generovaním vymedzte chránené a upravovateľné oblasti, chránenú reprezentáciu opätovne použite alebo obmedzte, generujte iba kandidátne zmeny a zamietnite výstupy, ktoré menia chránený kód alebo nevyhovejú kontrolám špecifickým pre úlohu. Lokálnosť úpravy a úspešnosť úlohy treba merať spoločne.
Prečo je toto rozlíšenie dôležité
Metóda aj deklarovaná záruka musia používať rovnakú pozorovateľnú hranicu.
Lokalizovaná modifikácia kódu je problém úprav, nie iba kratšie zadanie na generovanie kódu. Vstup už obsahuje artefakt, ktorý má zmysel zachovať, preto metóda potrebuje explicitnú hranicu zachovania medzi oblasťou, ktorú možno meniť, a vlastnosťami, ktoré musia zostať stabilné.
Hranicou môže byť úsek zdrojového kódu, syntaktický uzol, signatúra API, správanie testu, záväzok závislosti alebo naučená latentná pozícia. Tieto možnosti nie sú vzájomne zameniteľné: každá chráni inú pozorovateľnú vlastnosť a vyžaduje zodpovedajúci krok overenia.
Praktický postup
Stanovte záväzok zachovania
Určte upraviteľnú oblasť a presný text, štruktúru, rozhranie alebo správanie, ktoré musia zostať nezmenené.
Vyberte najužšie použiteľné kontrolné rozhranie
Opätovne použiť nezmenené úseky zdrojového kódu, využiť dopĺňanie alebo dekódovanie zamerané na úpravy, uplatniť formálne obmedzenia alebo uzamknúť vybrané latentné pozície podľa požadovanej vlastnosti.
Generujte iba tam, kde je zmena povolená
V upraviteľnej oblasti ponechajte dostatok voľnosti na vyriešenie úlohy; skopírovanie celého vstupu je síce lokálne, ale neprináša žiadny pokrok.
Lokálnosť a úspešnosť overujte spoločne
Odmietnuť kandidáty, ktoré menia chránené oblasti, neprejdú syntaktickou analýzou alebo kompiláciou, porušujú štruktúrne invarianty alebo nespĺňajú požadovanú zmenu.
Požadované dôkazy
Tvrdenie je len také presvedčivé ako vlastnosť meraná po generovaní alebo dekódovaní.
- Rozdiel mimo oblasti alebo iná priama miera stability chránenej oblasti.
- Úspešnosť úlohy v upravovateľnej oblasti.
- Podľa potreby syntaktická analýza, kompilácia, testy, statické kontroly alebo invarianty špecifické pre úlohu.
- Miera zmien v upraviteľnej oblasti, aby sa kopírovanie nezamieňalo za kontrolu.
- Jedinečnosť kandidátov a variabilita medzi opakovanými behmi, aby sa lokalita nezamieňala s kolapsom módov.
Čo uvádza prepojená štúdia
- Prepojený experiment komprimuje 64-tokenové funkcie jazyka Python do hierarchických diskrétnych pozícií a pri čiastočných obmedzeniach opätovne generuje vybrané latentné pozície.
- Uzamknutie štyroch kódov najvyššej úrovne zvýšilo mieru úspešnej syntaktickej analýzy z 0.453 na 0.591, pričom miera zmien odomknutých pozícií dosiahla 0.936 a podiel jedinečných podmienených vzoriek zostal na úrovni 0.998.
- Tieto merania odhaľujú nad úrovňou tokenov kompromis medzi stabilitou a voľnosťou; nedokazujú presné zachovanie úseku zdrojového textu, AST, sémantiky ani správania.
Hranica rozsahu
- Uzamknutý latentný kód nie je automaticky uzlom AST, chráneným úsekom zdrojového textu ani formálnym invariantom.
- Úspešnosť syntaktickej analýzy potvrdzuje syntaktickú správnosť, nie funkčnú správnosť ani úspešnú opravu.
- Uvádzané dôkazy pochádzajú z krátkych predspracovaných funkcií jazyka Python a nepreukazujú správanie v rozsahu repozitára.
Primárne a súvisiace zdroje
Pôvodné metódy, merania a uvedené obmedzenia nájdete v prepojených článkoch.
- Inspectable Control for Structure-Preserving Software Regeneration
Hlavná publikácia a experiment s ohraničenou hierarchickou latentnou reprezentáciou.
- EfficientEdit: Accelerating Code Editing via Edit-Oriented Speculative Decoding
Dekódovanie zamerané na úpravy, ktoré opätovne využíva nezmenené oblasti zdroja.
- PAFT: Preservation Aware Fine-Tuning for Minimal-Edit Program Repair
Pri trénovaní opravy programov explicitne zohľadňuje zachovanie a minimálnosť zmien.