TUTKIMUSMUISTIO
Paikallinen koodinmuokkaus generatiivisilla malleilla
Miten koko funktion tarpeeton uudelleenkirjoittaminen estetään samalla, kun generatiiviselle mallille jätetään riittävästi vapautta toteuttaa pyydetty koodimuutos.
SUORA VASTAUS
Kuinka generatiivinen malli voi muokata koodia kirjoittamatta koko funktiota uudelleen?
Määritä suojatut ja muokattavat alueet ennen generointia, käytä suojattua esitystä uudelleen tai rajoita sitä, generoi vain muutosehdokkaita ja hylkää tulokset, jotka muuttavat suojattua koodia tai eivät läpäise tehtäväkohtaisia tarkistuksia. Paikallisuutta ja tehtävässä onnistumista on mitattava yhdessä.
Miksi erottelulla on merkitystä
Menetelmä ja väitetty tae edellyttävät samaa havaittavaa rajaa.
Paikallinen koodinmuokkaus on muokkaustehtävä, ei vain tavanomaista lyhyempi koodingenerointikehote. Syöte sisältää jo säilyttämisen arvoisen artefaktin, joten menetelmässä on määriteltävä selvä raja muutettavan alueen ja vakaina säilytettävien ominaisuuksien välille.
Raja voi olla lähdekoodin jakso, syntaksisolmu, API-allekirjoitus, testikäyttäytyminen, riippuvuussopimus tai opittu latenttisijainti. Nämä vaihtoehdot eivät ole keskenään vaihdettavissa: kukin suojaa eri havaittavaa ominaisuutta ja edellyttää sitä vastaavaa varmennusvaihetta.
Käytännön menettely
Määritä säilyttämissopimus
Tunnista muokattava alue sekä täsmällinen teksti, rakenne, rajapinta tai toiminta, jonka on säilyttävä muuttumattomana.
Valitse suppein käyttökelpoinen ohjausrajapinta
Käytä muuttumattomat lähdekoodijaksot uudelleen, hyödynnä aukkojen täyttöä tai muokkaukseen suuntautunutta dekoodausta, sovella muodollisia rajoitteita tai lukitse valitut latenttipositiot vaaditun ominaisuuden mukaisesti.
Generoi vain siellä, missä muutos sallitaan
Jätä muokattavalle alueelle riittävästi vapautta tehtävän ratkaisemiseksi; koko syötteen kopiointi on paikallista mutta ei edistä tehtävää.
Varmista paikallisuus ja onnistuminen yhdessä
Hylkää ehdokkaat, jotka muuttavat suojattuja alueita, eivät läpäise jäsennystä tai käännöstä, rikkovat rakenteellisia invariantteja tai eivät toteuta pyydettyä muutosta.
Vaadittava näyttö
Väite on vain niin vahva kuin generoinnin tai dekoodauksen jälkeen mitattu ominaisuus.
- Alueen ulkopuolinen ero tai muu suora suojatun alueen vakauden mittari.
- Tehtävän onnistuminen muokattavalla alueella.
- Jäsennys, kääntäminen, testit, staattiset tarkistukset tai tehtäväkohtaiset invariantit soveltuvin osin.
- Muokattavan alueen muutosaste, jotta kopiointia ei tulkita virheellisesti ohjaukseksi.
- Ehdokkaiden yksilöllisyys ja toistettujen ajojen vaihtelu, jotta paikallisuutta ei sekoiteta moodin romahtamiseen.
Mitä linkitetty tutkimus raportoi
- Linkitetty koe pakkaa 64 tokenin Python-funktiot hierarkkisiksi diskreeteiksi sijainneiksi ja generoi valitut latenttisijainnit uudelleen osittaisten rajoitteiden alaisina.
- Neljän ylätason koodin lukitseminen nosti jäsennysasteen arvosta 0.453 arvoon 0.591; samalla lukitsemattomien positioiden muutosaste oli 0.936 ja ehdollisista näytteistä 0.998 säilyi yksilöllisinä.
- Mittaukset tuovat esiin tokenitason ylittävän vakauden ja vapauden välisen kompromissin; ne eivät todista lähdetekstijakson, AST:n, semantiikan tai toiminnan täsmällistä säilymistä.
Soveltamisalan rajat
- Lukittu latenttikoodi ei automaattisesti ole AST-solmu, suojattu lähdekoodijakso tai formaali invariantti.
- Jäsennysaste osoittaa syntaktisen oikeamuotoisuuden, ei toiminnallista oikeellisuutta tai korjauksen onnistumista.
- Raportoitu näyttö perustuu lyhyisiin esikäsiteltyihin Python-funktioihin eikä osoita käyttäytymistä repositoriotasolla.
Ensisijaiset ja läheisesti liittyvät lähteet
Tutustu alkuperäisiin menetelmiin, mittauksiin ja ilmoitettuihin rajoituksiin linkitetyistä artikkeleista.
- Inspectable Control for Structure-Preserving Software Regeneration
Pääartikkeli ja rajattuja hierarkkisia latentteja koskeva koe.
- EfficientEdit: Accelerating Code Editing via Edit-Oriented Speculative Decoding
Muokkaukseen suuntautunut dekoodaus, jossa lähteen muuttumattomia alueita käytetään uudelleen.
- PAFT: Preservation Aware Fine-Tuning for Minimal-Edit Program Repair
Tekee säilyttämisestä ja muutoksen minimaalisuudesta eksplisiittisiä tavoitteita ohjelmankorjauksen koulutuksessa.