# Локалізована модифікація коду за допомогою генеративних моделей

Canonical HTML: https://aogavrilov.com/uk/research-notes/localized-code-modification-generative-models/

Document language: uk

ДОСЛІДНИЦЬКА НОТАТКА

Як уникнути непотрібного переписування всієї функції, водночас залишивши генеративній моделі достатньо свободи для внесення запитаної зміни до коду.

Опубліковано 30 липня 2026 року [Alexey Gavrilov](https://aogavrilov.com/about/)

ПРЯМА ВІДПОВІДЬ

## Як генеративна модель може змінювати код, не переписуючи всю функцію?

До початку генерації визначте захищену й редаговану області, повторно використовуйте або обмежуйте захищене представлення, генеруйте лише пропоновані зміни та відхиляйте результати, що змінюють захищений код або не проходять специфічних для завдання перевірок. Локальність і успішність виконання завдання слід вимірювати разом.

## Чому ця відмінність важлива

Метод і заявлена гарантія мають спиратися на ту саму спостережувану межу.

Локалізована модифікація коду є завданням редагування, а не просто скороченим запитом на генерацію коду. Вхідні дані вже містять артефакт, який варто зберегти, тому метод потребує явної межі збереження між ділянкою, яку дозволено змінювати, і властивостями, що мають залишатися стабільними.

Межею може бути фрагмент вихідного коду, синтаксичний вузол, сигнатура API, поведінка, яку перевіряє тест, контракт залежності або навчена латентна позиція. Ці варіанти не взаємозамінні: кожен захищає іншу спостережувану властивість і потребує відповідної перевірки.

## Практична процедура

1. Сформулюйте контракт збереження Визначте редаговану ділянку, а також точний текст, структуру, інтерфейс або поведінку, що мають залишитися незмінними.
2. Оберіть найвужчий корисний інтерфейс керування Повторно використовуйте незмінені фрагменти вихідного коду, застосовуйте заповнення пропусків або декодування, орієнтоване на редагування, накладайте формальні обмеження чи блокуйте вибрані латентні позиції відповідно до потрібної властивості.
3. Генеруйте лише там, де зміни дозволено Залиште в редагованій ділянці достатньо свободи для розв’язання завдання; копіювання всіх вхідних даних є локальним, але не наближає до результату.
4. Перевіряйте локальність і успішність разом Відхиляйте кандидатів, які змінюють захищені ділянки, не проходять синтаксичного аналізу чи компіляції, порушують структурні інваріанти або не реалізують запитану зміну.

## Необхідні докази

Обґрунтованість твердження визначається тим, яку властивість виміряно після генерації або декодування.

- Різниця поза межами ділянки або інший прямий показник стабільності захищеної ділянки.
- Успішність завдання в межах редагованої ділянки.
- Синтаксичний аналіз, компіляція, тести, статичні перевірки або специфічні для завдання інваріанти — залежно від застосовності.
- Частка змін у редагованій ділянці, щоб копіювання не вважали проявом контролю.
- Унікальність кандидатів і варіативність повторних запусків, щоб локальність не плутали з колапсом мод.

### Про що повідомляє наведене дослідження

- Пов’язаний експеримент стискає 64-токенні функції Python в ієрархічні дискретні позиції та повторно генерує вибрані латентні позиції за часткових обмежень.
- Фіксація чотирьох кодів верхнього рівня підвищила частку успішного синтаксичного аналізу з 0.453 до 0.591, тоді як частка змінених незаблокованих позицій становила 0.936, а частка унікальних умовних зразків залишилася на рівні 0.998.
- Ці вимірювання виявляють компроміс між стабільністю та свободою над рівнем токенів; вони не доводять точного збереження фрагмента вихідного коду, AST, семантики чи поведінки.

[Читати огляд публікації](https://aogavrilov.com/uk/publications/inspectable-control/) [Пошук у повному тексті статті](https://aogavrilov.com/publications/inspectable-control/full-text/)

## Межі охоплення

- Зафіксований латентний код не стає автоматично вузлом AST, захищеним фрагментом вихідного коду чи формальним інваріантом.
- Частка успішного синтаксичного аналізу засвідчує синтаксичну коректність, але не функціональну правильність чи успішність виправлення.
- Наведені свідчення отримано на коротких попередньо оброблених функціях Python, і вони не характеризують поведінку в масштабі репозиторію.

## Основні та суміжні джерела

Звертайтеся до наведених статей за первинним описом методів, вимірювань і заявлених обмежень.

1. [Inspectable Control for Structure-Preserving Software Regeneration](https://aogavrilov.com/uk/publications/inspectable-control/) Основна стаття та експеримент з обмеженою генерацією в ієрархічному латентному просторі.
2. [EfficientEdit: Accelerating Code Editing via Edit-Oriented Speculative Decoding](https://arxiv.org/abs/2506.02780) Орієнтоване на редагування декодування, що повторно використовує незмінені ділянки вихідного коду.
3. [PAFT: Preservation Aware Fine-Tuning for Minimal-Edit Program Repair](https://arxiv.org/abs/2604.03113) Явно враховує збереження та мінімальність змін під час навчання виправленню програм.

Супровід здійснює Alexey Gavrilov . На цій сторінці узагальнено наявні свідчення; жодних експериментальних результатів поза наведеними джерелами вона не додає.
