Inspectable Control for Structure-Preserving Software Regeneration
Инспектируемое управление регенерацией программного обеспечения с сохранением структуры
Управляемая частичная регенерация кода с помощью иерархических дискретных латентных представлений.
Читать полный текст статьи в HTMLТекст с поиском, формулами, таблицами, рисунками и списком литературы.
Авторская готовая к публикации рукопись с окончательным списком авторов и DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. Условия публикации и повторного использования.
Статья за 30 секунд
Вопрос исследованияКак генеративная модель может изменять выбранные части программы, сохраняя заданные элементы структуры верхнего уровня?
Проблема
При изменении кода с помощью ИИ часто требуется одно локальное изменение при сохранении выбранной структуры программы. Полная регенерация может затронуть несвязанные участки, а ограничения на уровне токенов не дают явного управления структурой верхнего уровня.
Подход
Иерархический VQ-VAE кодирует функции Python длиной 64 токена; выбранные дискретные коды верхнего уровня фиксируются, а маскированная дискретная генерация локально обновляет оставшиеся латентные позиции.
Основной результат
Фиксация четырех кодов верхнего уровня повышает долю синтаксически разбираемых результатов с 0,453 до 0,591; незаблокированные позиции при этом изменяются с частотой 0,936, а уникальность условных образцов остается на уровне 0,998.
Почему это важно
Результаты показывают измеримый компромисс между стабильностью и свободой редактирования при управляемом изменении кода и частичной регенерации программы. Это раннее свидетельство полезности проверяемого латентного слоя управления, а не доказательство семантической эквивалентности или функциональной корректности.
Аннотация
Рабочие процессы разработки ПО — ограниченное исправление, поэтапное уточнение и модификация с сохранением структуры — требуют контролировать, что меняется, а что остается неизменным. Генерация на уровне токенов слабо подходит для такого управления: она ограничивает локальный поверхностный текст, а не структурные инварианты верхнего уровня, которые обычно требуется сохранить. Мы рассматриваем иерархические дискретные латентные переменные как проверяемое промежуточное представление программных артефактов: иерархический VQ-VAE сжимает функцию Python из 64 токенов в дискретные коды верхнего и нижнего уровней, а маскированная дискретная генерация обновляет только выбранные позиции при частичных ограничениях. На 2000 предварительно обработанных функциях Python фиксация четырех кодов верхнего уровня повышает долю синтаксически разбираемых результатов с 0,453 до 0,591, сохраняя значительные изменения в незаблокированных позициях (свобода редактирования 0,936) и почти максимальную уникальность образцов (разнообразие 0,998). При фиксированном контексте верхнего уровня уточнение нижнего уровня слабее, но остается монотонным, что соответствует интерпретации иерархии от общего к детальному. Результаты дают первые свидетельства существования практического слоя управления для ограниченной регенерации программных артефактов с сохранением структуры над уровнем токенов.
Опубликовано на Материалы 34-й Международной конференции ACM по основам программной инженерии
Тип вклада Метод управления латентным пространством
стр. 1406–1407.Сопутствующий плакат
Ключевые результаты
| Параметр | Скорость анализа | Скелет | Подпись | Разблокировано изменение |
|---|---|---|---|---|
| Ввод (усеченный) | 0.994 | 0.994 | 0.994 | — |
| Реконструкция кодека | 0.857 | 0.848 | 0.493 | 0 |
| Безусловная генерация | 0.453 | 0.08 | 0 | 0.995 |
| Условное, префикс k=4 | 0.591 | 0.295 | 0.061 | 0,936 |
| Условный диапазон сигнатур | 0.6 | 0.302 | 0.063 | не сообщается |
Ключевой результат. Фиксация латентных кодов верхнего уровня повышает синтаксическую стабильность, не подавляя изменения в редактируемой области; результат демонстрирует управление структурой, но не гарантирует функциональную эквивалентность.
- Набор данных
- 2000 предварительно обработанных функций Python из подмножества CodeParrot Clean.
- Размер выборки
- 2000 предварительно обработанных функций Python; уникальность условной выборки равна 0,998.
- Метрики
- Скорость разбора; Скелет и прокси-серверы сохранения подписи; Скорость изменения разблокированной позиции; Уникальность и энтропия выборки
- Неопределенность
- В двухстраничном исследовании представлены точечные оценки без доверительных интервалов или статистического анализа с несколькими исходными данными.
- Условия
- Функции с 64 токенами, декодирование argmax, 16 кодов верхнего уровня и 32 кода нижнего уровня; полная блокировка точно восстанавливает реконструкцию кодека.
Результаты скачивания:
CSV-файлJSONMarkdownВнешнее зеркало:Карточка набора данных Hugging Face
PDF и цитирование
Цитировать эту статью BibTeX — рекомендуемый формат. Все приведенные ниже варианты создаются на основе одной и той же записи публикации.
@inproceedings{Gavrilov2026InspectableControl,
title = {Inspectable Control for Structure-Preserving Software Regeneration},
author = {Gavrilov, Alexey and Gazzaev, Alan-Barsag and Mozikov, Mikhail and Makarov, Ilya and Muravyov, Sergey},
booktitle = {Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering},
publisher = {ACM},
year = {2026},
pages = {1406--1407},
doi = {10.1145/3803437.3807386},
url = {https://doi.org/10.1145/3803437.3807386},
isbn = {979-8-4007-2636-1},
}
Gavrilov, A., Gazzaev, A.-B., Mozikov, M., Makarov, I., and Muravyov, S. (2026). Inspectable Control for Structure-Preserving Software Regeneration. In Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering (pp. 1406–1407). ACM. https://doi.org/10.1145/3803437.3807386A. Gavrilov, A.-B. Gazzaev, M. Mozikov, I. Makarov, and S. Muravyov, “Inspectable Control for Structure-Preserving Software Regeneration,” in Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering, 2026, pp. 1406–1407, doi: 10.1145/3803437.3807386.TY - CPAPER
TI - Inspectable Control for Structure-Preserving Software Regeneration
AU - Gavrilov, Alexey
AU - Gazzaev, Alan-Barsag
AU - Mozikov, Mikhail
AU - Makarov, Ilya
AU - Muravyov, Sergey
PY - 2026
DA - 2026-07-05
T2 - Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering
SP - 1406
EP - 1407
PB - ACM
DO - 10.1145/3803437.3807386
UR - https://doi.org/10.1145/3803437.3807386
SN - 979-8-4007-2636-1
ER -
Полное руководство
Полное руководство по исследованию
Метод
Метод сжимает короткую функцию Python в два уровня дискретных кодов, фиксирует выбранные позиции верхнего уровня, регенерирует остальные позиции и затем декодирует результат обратно в исходный код.
Кодировать
Сжимайте функцию Python с 64 токенами в 16 кодов верхнего уровня и 32 кода нижнего уровня с помощью иерархического VQ-VAE.
Замок
Выбирайте грубые позиции кода, которые представляют структуру, которую нужно сохранить, например префикс, охватывающий диапазон сигнатур функции.
Регенерировать
Запускайте дискретную генерацию в маске только для разблокированных позиций и декодируйте завершенную иерархию обратно в исходный код.
Осмотреть
Прежде чем принять регенерацию, измерьте скорость синтаксического анализа, структурные прокси, изменения в разблокированных позициях и уникальность выборки.
Основная идея
Управление применяется к обученному представлению над уровнем токенов: латентные позиции верхнего уровня явно задают, где структура фиксируется, тогда как связанные детали реализации остаются редактируемыми.
Отличие от близлежащих подходов
Ограничения на уровне запроса или токенов действуют на поверхностный текст. Предлагаемый интерфейс предоставляет дискретные точки управления верхнего и нижнего уровней и измеряет возникающий компромисс между стабильностью и свободой изменений.
Что нового
В работе предложен и оценен проверяемый иерархический латентный слой управления для ограниченной регенерации программных артефактов.
Вопросы, на которые помогает ответить эта статья
Откройте нужный вопрос, чтобы прочитать краткий ответ, основанный на статье. Подробные границы применимости перечислены в разделе «Ограничения».
Как ИИ может редактировать код, не переписывая все?
В статье изучается частичная регенерация кода выше уровня токена. Иерархический VQ-VAE отображает короткую функцию Python в грубые и точные дискретные коды; выбранные грубые позиции блокируются, а маскированная дискретная генерация изменяет только оставшиеся скрытые позиции перед декодированием. Это обеспечивает явную границу сохранения вместо регенерации всей функции.
Какие методы сохраняют структуру программы во время генерации кода?
В данной работе тестируется иерархическое дискретное скрытое управление. Грубые скрытые позиции могут быть зафиксированы, в то время как разблокированные позиции регенерируются, после чего измеряются скорость синтаксического анализа и структурные прокси. Доказательства касаются вероятностной структурной устойчивости коротких функций Python; он не устанавливает точную сохранность AST, семантическую эквивалентность или функциональную корректность.
Могут ли иерархические дискретные скрытые возможности обеспечить локализованный контроль над кодом?
В эксперименте с 2000 функциями, о котором сообщалось, блокировка четырех кодов верхнего уровня увеличила скорость анализа с 0,453 до 0,591. При этом изменилось 0,936 разблокированных позиций и 0,998 условных выборок стали уникальными. Эти результаты являются первым свидетельством того, что грубые скрытые ограничения могут сохранять некоторую структуру, не исключая при этом свободу локального редактирования или разнообразие выборки.
Как генерация кода может сбалансировать структурную стабильность и разнообразие?
В статье стабильность и свобода оцениваются вместе, а не оптимизируются только валидность. Грубая блокировка кода повышает синтаксическую достоверность, в то время как изменение разблокированной позиции остается высоким, а условные образцы остаются почти полностью уникальными. Результат демонстрирует измеримый компромисс между стабильностью и свободой в тестируемой конфигурации, а не универсальный оптимум.
Как эта работа связана с редактированием кода с помощью LLM?
Тестируемая модель представляет собой иерархическую VQ-VAE с замаскированной дискретной генерацией, а не большую языковую модель. Тем не менее, проблема контроля актуальна для редактирования с помощью LLM, поскольку ненужные изменения за пределами запрошенного региона представляют собой практическую проблему. В статье представлен дополнительный механизм скрытого пространства и структура оценки, а не эталон редактирования LLM.
Сравнение с соседними подходами
| Возможность | Контроль на уровне токена | Иерархический скрытый контроль |
|---|---|---|
| Зафиксировать структуру верхнего уровня | Ограниченный | Непосредственная фиксация кодов верхнего уровня |
| Частичная регенерация | Хрупкие поверхностные ограничения | Маскированная повторная выборка выбранных кодов |
| Проверяемые контрольные точки | Нет явного промежуточного слоя | Дискретные позиции верхнего и нижнего уровней |
| Доказательства в этой статье | Не оценивается как полный базовый уровень | Синтаксическая стабильность и диагностика свободы редактирования |
В таблице описаны интерфейсы и измеренные данные исследования; он не претендует на функциональную правильность или универсальное превосходство.
Релевантность и область применения
Этот документ наиболее актуален для работ, требующих явного контроля над тем, что может изменить преобразование кода с помощью ИИ и какие части программы должны оставаться стабильными.
Управляемая и сохраняющая структуру генерация кода
Локализованное восстановление программы и ограниченный рефакторинг
Иерархические дискретные представления исходного кода
Маскированная дискретная генерация исходного кода
Латентное управление программными артефактами
Ограничения
- Исследование ограничено короткими функциями Python, усеченными до 64 токенов.
- При оценке используется декодирование argmax и синтаксические или структурные прокси, а не тесты функциональной эквивалентности.
- Точное сохранение подписи остается слабым.
- Контроль нижнего уровня слабее контроля верхнего уровня.
- Скрытые позиции еще не согласованы с семантическими областями, такими как диапазоны AST, сигнатуры или структура потока управления.
- Результаты не подтверждают правильность практического ремонта, рефакторинга или изменений на уровне репозитория.
Литература, цитируемая в статье
Эти записи соответствуют нумерованному списку литературы в PDF статьи.
- Ali Razavi, Aaron van den Oord, Oriol Vinyals. . Generating Diverse High-Fidelity Images with VQ-VAE-2. Advances in Neural Information Processing Systems.
- Jacob Austin, Daniel D. Johnson, Jonathan Ho, Daniel Tarlow, Rianne van den Berg. . Structured Denoising Diffusion Models in Discrete State-Spaces. Advances in Neural Information Processing Systems.
- Subham Sekhar Sahoo, Marianne Arriola, Yair Schiff, Aaron Gokaslan, Edgar Marroquin, Justin T Chiu, Alexander Rush, Volodymyr Kuleshov. . Simple and Effective Masked Diffusion Language Models. Advances in Neural Information Processing Systems.
- Shraddha Barke, Michael B. James, Nadia Polikarpova. . Grounded Copilot: How Programmers Interact with Code-Generating Models. Proceedings of the ACM on Programming Languages.
- Fengji Zhang, Bei Chen, Yue Zhang, Jacky Keung, Jin Liu, Daoguang Zan, Yi Mao, Jian-Guang Lou, Weizhu Chen. . RepoCoder: Repository-Level Code Completion Through Iterative Retrieval and Generation. Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing.
Материалы и воспроизводимость
- Издатель
- ACM
- Локальный PDF с текстовым слоем
- Авторская рукопись, готовая к публикации, с окончательным списком авторов и DOI.
- Ресурсы публикации
- Здесь доступны общедоступная рукопись, таблицы результатов, пояснительная схема и файлы цитирования. Код реализации и контрольные точки модели публично не выпускались.
Сведения о данных
- Источник
- Предварительно обработанное подмножество CodeParrot Clean, содержащее 2000 функций Python.
- Лицензия
- Этот сайт не распространяет файлы наборов данных; повторное использование по-прежнему регулируется лицензиями на набор исходных данных CodeParrot и исходный код.
- Предварительная обработка
- Функции Python токенизируются и усекаются или дополняются до 64 токенов перед иерархическим кодированием.
- Разбиение
- На плакате сообщается о наборе оценок из 2000 функций; неизменяемый разделенный манифест обучения/проверки не включен в общедоступный документ.
- Формат
- Исходные функции Python, последовательности токенов в стиле GPT, последовательности кода верхнего уровня длиной 16 и последовательности нижнего уровня длиной 32.
- Версия/контрольная сумма
- Контрольная сумма набора данных и неизменяемый идентификатор снимка не указаны в двухстраничном документе.
- Получение данных
- Сценарий публичного приобретения не публикуется на странице публикации.
- Ограничения использования
- Образец не репрезентативен для программного обеспечения масштаба репозитория, нескольких языков программирования или задач восстановления с проверкой поведения.
Версии
- Опубликованная версияКомпаньон ACM FSE, 2026 г.
- Внешнее зеркало полного текстаАвторская рукопись CC BY 4.0 на Hugging Face
- Открытая репозиторная записьЗапись Zenodo, индексируемая OpenAIRE
- Полный текст в открытом репозиторииАвторская рукопись CC BY 4.0 в Zenodo; текст эквивалентен локальной рукописи
- Авторские материалыПостер и слайды
- Библиографическая записьDBLP
- Открытая научная записьOpenAlex
- Запись графика цитированияSemantic Scholar
- Полный текст, предоставленный авторомResearchGate
- Краткое изложение простым языкомKudos
Опубликованный DOI является основным библиографическим идентификатором. Эта страница остается единственным каноническим URL-адресом проекта во всех версиях.