Inspectable Control for Structure-Preserving Software Regeneration

Инспектируемое управление регенерацией программного обеспечения с сохранением структуры

Управляемая частичная регенерация кода с помощью иерархических дискретных латентных представлений.

Alexey Gavrilov1Alan-Barsag Gazzaev1Mikhail Mozikov2Ilya Makarov2Sergey Muravyov1

  1. Университет ИТМО, Санкт-Петербург, Российская Федерация
  2. АХХХ, Москва, Российская Федерация

Читать полный текст статьи в 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.Сопутствующий плакат

DOI https://doi.org/10.1145/3803437.3807386

Поделиться этой статьёйПоделиться

Ключевые результаты

Ключевые результаты работы Inspectable Control for Structure-Preserving Software Regeneration
ПараметрСкорость анализаСкелетПодписьРазблокировано изменение
Ввод (усеченный)0.9940.9940.994
Реконструкция кодека0.8570.8480.4930
Безусловная генерация0.4530.0800.995
Условное, префикс k=40.5910.2950.0610,936
Условный диапазон сигнатур0.60.3020.063не сообщается

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

Набор данных
2000 предварительно обработанных функций Python из подмножества CodeParrot Clean.
Размер выборки
2000 предварительно обработанных функций Python; уникальность условной выборки равна 0,998.
Метрики
Скорость разбора; Скелет и прокси-серверы сохранения подписи; Скорость изменения разблокированной позиции; Уникальность и энтропия выборки
Неопределенность
В двухстраничном исследовании представлены точечные оценки без доверительных интервалов или статистического анализа с несколькими исходными данными.
Условия
Функции с 64 токенами, декодирование argmax, 16 кодов верхнего уровня и 32 кода нижнего уровня; полная блокировка точно восстанавливает реконструкцию кодека.
Результаты скачивания:

PDF и цитирование

Цитировать эту статью BibTeX — рекомендуемый формат. Все приведенные ниже варианты создаются на основе одной и той же записи публикации.

Открыть PDF
@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},
}
Скачать .bib
Файлы цитирования:

Текст в формате APAIEEE текстRISCSL-JSONSchema.org JSON-LDOAI-DC XMLOpenAIRE v4 XMLMODS XMLXML с метаданными JATS 1.4Полнотекстовый XML JATS 1.4RDF TurtleLink Set (JSON)Link Set (HTTP)RO-Crate

ДОИ:https://doi.org/10.1145/3803437.3807386

Полное руководство

Полное руководство по исследованию

Метод

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

  1. Кодировать

    Сжимайте функцию Python с 64 токенами в 16 кодов верхнего уровня и 32 кода нижнего уровня с помощью иерархического VQ-VAE.

  2. Замок

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

  3. Регенерировать

    Запускайте дискретную генерацию в маске только для разблокированных позиций и декодируйте завершенную иерархию обратно в исходный код.

  4. Осмотреть

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

Выбранные грубые программные коды остаются фиксированными, в то время как замаскированные точные дискретные коды регенерируются и декодируются в модифицированную функцию Python.
Иерархическое дискретное редактирование скрытого кода сохраняет выбранную грубую структуру программы, одновременно восстанавливая тонкие коды в редактируемой области.Источник: Пояснительная схема создана автором на основе опубликованного метода и результатов..Условия повторного использования: CC BY 4.0.Предлагаемая атрибуция: Гаврилов и др. (2026), Инспектируемый контроль регенерации программного обеспечения, сохраняющего структуру. Скачать SVG.

Основная идея

Управление применяется к обученному представлению над уровнем токенов: латентные позиции верхнего уровня явно задают, где структура фиксируется, тогда как связанные детали реализации остаются редактируемыми.

Отличие от близлежащих подходов

Ограничения на уровне запроса или токенов действуют на поверхностный текст. Предлагаемый интерфейс предоставляет дискретные точки управления верхнего и нижнего уровней и измеряет возникающий компромисс между стабильностью и свободой изменений.

Что нового

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

Вопросы, на которые помогает ответить эта статья

Откройте нужный вопрос, чтобы прочитать краткий ответ, основанный на статье. Подробные границы применимости перечислены в разделе «Ограничения».

  1. Как ИИ может редактировать код, не переписывая все?

    В статье изучается частичная регенерация кода выше уровня токена. Иерархический VQ-VAE отображает короткую функцию Python в грубые и точные дискретные коды; выбранные грубые позиции блокируются, а маскированная дискретная генерация изменяет только оставшиеся скрытые позиции перед декодированием. Это обеспечивает явную границу сохранения вместо регенерации всей функции.

  2. Какие методы сохраняют структуру программы во время генерации кода?

    В данной работе тестируется иерархическое дискретное скрытое управление. Грубые скрытые позиции могут быть зафиксированы, в то время как разблокированные позиции регенерируются, после чего измеряются скорость синтаксического анализа и структурные прокси. Доказательства касаются вероятностной структурной устойчивости коротких функций Python; он не устанавливает точную сохранность AST, семантическую эквивалентность или функциональную корректность.

  3. Могут ли иерархические дискретные скрытые возможности обеспечить локализованный контроль над кодом?

    В эксперименте с 2000 функциями, о котором сообщалось, блокировка четырех кодов верхнего уровня увеличила скорость анализа с 0,453 до 0,591. При этом изменилось 0,936 разблокированных позиций и 0,998 условных выборок стали уникальными. Эти результаты являются первым свидетельством того, что грубые скрытые ограничения могут сохранять некоторую структуру, не исключая при этом свободу локального редактирования или разнообразие выборки.

  4. Как генерация кода может сбалансировать структурную стабильность и разнообразие?

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

  5. Как эта работа связана с редактированием кода с помощью LLM?

    Тестируемая модель представляет собой иерархическую VQ-VAE с замаскированной дискретной генерацией, а не большую языковую модель. Тем не менее, проблема контроля актуальна для редактирования с помощью LLM, поскольку ненужные изменения за пределами запрошенного региона представляют собой практическую проблему. В статье представлен дополнительный механизм скрытого пространства и структура оценки, а не эталон редактирования LLM.

Сравнение с соседними подходами

Inspectable Control для программного обеспечения, сохраняющего структуру. Фактическое сравнение регенерации с соседними подходами.
ВозможностьКонтроль на уровне токенаИерархический скрытый контроль
Зафиксировать структуру верхнего уровняОграниченныйНепосредственная фиксация кодов верхнего уровня
Частичная регенерацияХрупкие поверхностные ограниченияМаскированная повторная выборка выбранных кодов
Проверяемые контрольные точкиНет явного промежуточного слояДискретные позиции верхнего и нижнего уровней
Доказательства в этой статьеНе оценивается как полный базовый уровеньСинтаксическая стабильность и диагностика свободы редактирования

В таблице описаны интерфейсы и измеренные данные исследования; он не претендует на функциональную правильность или универсальное превосходство.

Релевантность и область применения

Этот документ наиболее актуален для работ, требующих явного контроля над тем, что может изменить преобразование кода с помощью ИИ и какие части программы должны оставаться стабильными.

  1. Управляемая и сохраняющая структуру генерация кода

  2. Локализованное восстановление программы и ограниченный рефакторинг

  3. Иерархические дискретные представления исходного кода

  4. Маскированная дискретная генерация исходного кода

  5. Латентное управление программными артефактами

Посмотреть ограничения и границы применимости

Ограничения

  • Исследование ограничено короткими функциями Python, усеченными до 64 токенов.
  • При оценке используется декодирование argmax и синтаксические или структурные прокси, а не тесты функциональной эквивалентности.
  • Точное сохранение подписи остается слабым.
  • Контроль нижнего уровня слабее контроля верхнего уровня.
  • Скрытые позиции еще не согласованы с семантическими областями, такими как диапазоны AST, сигнатуры или структура потока управления.
  • Результаты не подтверждают правильность практического ремонта, рефакторинга или изменений на уровне репозитория.

Литература, цитируемая в статье

Эти записи соответствуют нумерованному списку литературы в PDF статьи.

  1. Ali Razavi, Aaron van den Oord, Oriol Vinyals. . Generating Diverse High-Fidelity Images with VQ-VAE-2. Advances in Neural Information Processing Systems.
  2. 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.
  3. 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.
  4. Shraddha Barke, Michael B. James, Nadia Polikarpova. . Grounded Copilot: How Programmers Interact with Code-Generating Models. Proceedings of the ACM on Programming Languages.
  5. 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
Ресурсы публикации
Здесь доступны общедоступная рукопись, таблицы результатов, пояснительная схема и файлы цитирования. Код реализации и контрольные точки модели публично не выпускались.

Сведения о данных

Источник
Предварительно обработанное подмножество CodeParrot Clean, содержащее 2000 функций Python.
Лицензия
Этот сайт не распространяет файлы наборов данных; повторное использование по-прежнему регулируется лицензиями на набор исходных данных CodeParrot и исходный код.
Предварительная обработка
Функции Python токенизируются и усекаются или дополняются до 64 токенов перед иерархическим кодированием.
Разбиение
На плакате сообщается о наборе оценок из 2000 функций; неизменяемый разделенный манифест обучения/проверки не включен в общедоступный документ.
Формат
Исходные функции Python, последовательности токенов в стиле GPT, последовательности кода верхнего уровня длиной 16 и последовательности нижнего уровня длиной 32.
Версия/контрольная сумма
Контрольная сумма набора данных и неизменяемый идентификатор снимка не указаны в двухстраничном документе.
Получение данных
Сценарий публичного приобретения не публикуется на странице публикации.
Ограничения использования
Образец не репрезентативен для программного обеспечения масштаба репозитория, нескольких языков программирования или задач восстановления с проверкой поведения.

Версии

  1. Опубликованная версияКомпаньон ACM FSE, 2026 г.
  2. Внешнее зеркало полного текстаАвторская рукопись CC BY 4.0 на Hugging Face
  3. Открытая репозиторная записьЗапись Zenodo, индексируемая OpenAIRE
  4. Авторские материалыПостер и слайды
  5. Библиографическая записьDBLP
  6. Открытая научная записьOpenAlex
  7. Запись графика цитированияSemantic Scholar
  8. Полный текст, предоставленный авторомResearchGate
  9. Краткое изложение простым языкомKudos

Опубликованный DOI является основным библиографическим идентификатором. Эта страница остается единственным каноническим URL-адресом проекта во всех версиях.