# Локальное изменение кода генеративными моделями

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

Document language: ru

ИССЛЕДОВАТЕЛЬСКАЯ ЗАМЕТКА

Как избежать ненужного переписывания всей функции, сохранив генеративной модели достаточно свободы для требуемого изменения кода.

Опубликовано 30 июля 2026 г. [Алексей Гаврилов](https://aogavrilov.com/about/)

ПРЯМОЙ ОТВЕТ

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

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

## Почему это различие важно

Метод и заявленная гарантия должны относиться к одной наблюдаемой границе.

Локальное изменение кода — это задача редактирования, а не просто генерация с более коротким запросом. Во входе уже есть программный артефакт, который стоит сохранить, поэтому метод должен явно разделять область допустимых изменений и свойства, обязанные оставаться стабильными.

Границей может быть фрагмент исходного текста, синтаксический узел, сигнатура API, поведение тестов, контракт зависимости или обученная латентная позиция. Эти варианты не равнозначны: каждый защищает своё наблюдаемое свойство и требует соответствующей проверки.

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

1. Сформулировать контракт сохранения Укажите редактируемую область и точный текст, структуру, интерфейс или поведение, которые должны остаться неизменными.
2. Выбрать самый узкий достаточный механизм управления Повторно используйте неизменённые фрагменты, применяйте заполнение пропусков или декодирование для редактирования, формальные ограничения либо фиксацию выбранных латентных позиций — в зависимости от защищаемого свойства.
3. Генерировать только там, где изменение разрешено Оставьте внутри редактируемой области достаточно свободы для решения задачи: копирование всего входа локально, но не выполняет требуемое изменение.
4. Проверять локальность и успех одновременно Отклоняйте варианты, которые меняют защищённые области, не разбираются или не компилируются, нарушают структурные инварианты либо не выполняют запрос.

## Необходимые доказательства

Сила утверждения определяется свойством, действительно измеренным после генерации или декодирования.

- Diff вне редактируемой области или другая прямая мера стабильности защищённой области.
- Успешность задачи внутри редактируемой области.
- Разбор, компиляция, тесты, статические проверки или инварианты задачи — в зависимости от сценария.
- Доля изменений в редактируемой области, чтобы копирование не считалось управлением.
- Уникальность вариантов и изменчивость повторных запусков, чтобы локальность не путалась с коллапсом мод.

### Что сообщает связанное исследование

- Связанный эксперимент сжимает Python-функции длиной 64 токена в иерархические дискретные позиции и регенерирует выбранные латентные позиции при частичных ограничениях.
- Фиксация четырёх кодов верхнего уровня повысила долю синтаксически разбираемых результатов с 0,453 до 0,591; незаблокированные позиции менялись с частотой 0,936, а условные выборки оставались уникальными с долей 0,998.
- Эти измерения показывают компромисс между стабильностью и свободой выше уровня токенов, но не доказывают точное сохранение фрагментов, AST, семантики или поведения.

[Читать обзор статьи](https://aogavrilov.com/ru/publications/inspectable-control/) [Искать по полному тексту статьи](https://aogavrilov.com/publications/inspectable-control/full-text/)

## Границы применимости

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

## Основные и смежные источники

Обращайтесь к связанным статьям за исходными методами, измерениями и заявленными ограничениями.

1. [Inspectable Control for Structure-Preserving Software Regeneration](https://aogavrilov.com/ru/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) Явно учитывает сохранение и минимальность изменений при обучении исправлению программ.

Страницу поддерживает Алексей Гаврилов . Она обобщает существующие доказательства и не добавляет экспериментальных результатов сверх цитируемых источников.
