Inspectable Control for Structure-Preserving Software Regeneration

구조 보존형 소프트웨어 재생성을 위한 점검 가능한 제어

계층적 이산 잠재 표현으로 선택한 프로그램 구조를 고정하고 나머지 코드만 다시 생성한다.

Alexey Gavrilov1Alan-Barsag Gazzaev1Mikhail Mozikov2Ilya Makarov2Sergey Muravyov1

  1. ITMO University, Saint Petersburg, Russian Federation
  2. AXXX, Moscow, Russian Federation

30초 요약

연구 질문생성 모델이 선택한 프로그램 부분만 바꾸고 지정한 거친 구조는 유지하게 하려면 어떻게 해야 하는가?

문제

AI 코드 편집은 대개 제한된 변경만 요구하지만, 프로그램 전체를 다시 생성하면 관계없는 부분까지 달라질 수 있다. 토큰 수준 제약만으로는 거친 프로그램 구조를 직접 제어하기 어렵다.

접근법

64-token Python 함수를 계층적 VQ-VAE로 압축하고, 선택한 상위 이산 코드는 고정한 채 나머지 잠재 위치만 마스킹 이산 생성으로 다시 만든다.

주요 결과

상위 코드 4개를 고정하면 파싱 성공률이 0.453에서 0.591로 높아졌다. 고정하지 않은 위치의 변화율은 0.936, 조건부 표본 고유성은 0.998이었다.

의미

구조 안정성과 편집 자유도를 함께 측정할 수 있는 잠재 제어층의 초기 근거다. 다만 의미적 동등성이나 기능적 정확성을 보장하지는 않는다.

초록

제약된 복구, 단계적 정제, 구조 보존형 수정과 같은 소프트웨어 공학 절차에는 무엇을 바꾸고 무엇을 유지할지 명시적으로 제어하는 방법이 필요하다. 토큰 단위 생성은 국소적인 표면 문자열은 제약할 수 있지만, 소프트웨어 공학에서 유지하고 싶은 거친 구조 불변량을 표현하기 어렵다. 이 논문은 계층적 이산 잠재 변수를 점검 가능한 소프트웨어 산출물의 중간 표현으로 연구한다. 계층적 VQ-VAE는 64-token Python 함수를 거친 이산 코드와 세밀한 이산 코드로 압축하고, 마스킹 이산 생성은 일부 제약 아래 선택한 위치만 다시 생성한다. 전처리된 Python 함수 2,000개에서 상위 코드 4개를 고정하면 파싱 성공률이 0.453에서 0.591로 높아졌으며, 고정하지 않은 위치는 높은 변화 자유도(0.936)를 유지했고 표본 고유성은 거의 최대(0.998)였다. 거친 문맥을 고정했을 때 하위 정제 효과는 약하지만 단조롭게 변해 계층을 거친 수준에서 세밀한 수준으로 해석할 수 있음을 뒷받침한다. 이 결과는 토큰 수준 위에서 제한적이고 구조 보존적인 소프트웨어 산출물 재생성을 지원할 수 있는 제어층의 초기 근거를 제공한다.

게재 학술대회 Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering

기여 유형 잠재 공간 제어 방법

1406–1407쪽동반 포스터 논문

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

논문 공유공유

최종 저자 목록과 DOI가 포함된 영문 저자 최종본이다. 저자본은 CC BY 4.0으로 제공되며, 공식 기록은 ACM DOI 페이지이다.

핵심 결과

Inspectable Control 논문의 핵심 결과
설정파싱 성공률골격 보존율시그니처 보존율비고정 위치 변화율
절단 입력0.9940.9940.994
코덱 재구성0.8570.8480.4930
무조건 생성0.4530.0800.995
조건부 생성, 접두부 k=40.5910.2950.0610.936
조건부 생성, 시그니처 영역0.60.3020.063보고되지 않음

핵심 결론.거친 잠재 코드를 고정하면 구문 안정성이 높아지면서도 편집 가능한 영역의 변화가 사라지지 않는다. 이는 구조 제어 가능성을 보여 주지만 기능적 동등성을 보장하지는 않는다.

데이터셋
CodeParrot Clean 부분집합에서 전처리한 Python 함수 2,000개
표본 크기
전처리한 Python 함수 2,000개. 조건부 표본 고유성 0.998.
지표
파싱 성공률, 골격·시그니처 보존 대리 지표, 비고정 위치 변화율, 표본 고유성과 엔트로피
불확실성
2쪽 분량의 연구로 점 추정치만 보고하며 신뢰 구간이나 여러 랜덤 시드의 통계 분석은 제공하지 않는다.
실험 조건
64-token 함수, argmax 디코딩, 상위 코드 16개와 하위 코드 32개. 모든 코드를 고정하면 코덱 재구성과 정확히 같아진다.

PDF와 인용

학술 메타데이터와 인용。인용 정보에는 공식 영문 제목, 원래 저자 이름과 순서, 공식 학술대회명, DOI, 영문 PDF를 그대로 유지한다.

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},
}

인용 파일:APAIEEEBibTeXRISCSL-JSONSchema.org JSON-LDOAI-DC XMLMODS XMLJATS 1.4 metadata XMLFull-text JATS 1.4 XMLRDF TurtleLink Set (JSON)Link Set (HTTP)RO-Crate

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

전체 해설

전체 연구 해설

방법

짧은 Python 함수를 두 단계의 이산 코드로 압축하고, 선택한 거친 위치를 고정한 뒤 나머지를 다시 생성하여 소스 코드로 복원한다.

  1. 인코딩

    계층적 VQ-VAE로 64-token Python 함수를 상위 코드 16개와 하위 코드 32개로 압축한다.

  2. 고정

    함수 시그니처 영역의 접두부처럼 유지하려는 구조를 나타내는 거친 코드 위치를 선택한다.

  3. 재생성

    고정하지 않은 위치에만 마스킹 이산 생성을 적용하고 완성된 계층 코드를 다시 소스 코드로 디코딩한다.

  4. 점검

    결과를 받아들이기 전에 파싱 성공률, 구조 대리 지표, 비고정 위치 변화율, 표본 고유성을 측정한다.

선택한 거친 프로그램 코드는 고정하고, 마스킹된 세밀한 이산 코드를 다시 생성한 뒤 수정된 Python 함수로 디코딩하는 과정.
계층적 이산 잠재 코드 편집은 선택한 거친 프로그램 구조를 고정하고 편집 가능한 영역의 세밀한 코드만 다시 생성한다.저자가 게재된 방법과 결과를 바탕으로 작성한 설명용 도식.재사용 조건: CC BY 4.0.Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. SVG 내려받기

자주 묻는 질문

아래 답변은 논문에 보고된 실험만을 근거로 하며, 더 엄격한 범위는 제한사항에 적었다.

  1. AI가 프로그램 전체를 다시 쓰지 않고 일부만 편집하게 하려면?

    짧은 Python 함수를 거친 코드와 세밀한 코드로 바꾸고, 유지할 거친 위치는 고정한다. 마스킹 생성은 나머지 잠재 위치만 바꾼 뒤 다시 소스 코드로 디코딩한다. 따라서 전체 함수를 무조건 다시 생성하는 대신 명시적인 보존 경계를 둘 수 있다.

  2. 계층적 이산 잠재 변수가 국소 코드 제어에 실제로 도움이 되었는가?

    함수 2,000개 실험에서 상위 코드 4개를 고정하면 파싱 성공률이 0.453에서 0.591로 높아졌다. 비고정 위치 변화율은 0.936, 조건부 표본 고유성은 0.998이었다. 이는 구조 일부를 보존하면서 편집 자유도와 다양성을 유지할 수 있다는 초기 근거다.

  3. 이 결과가 기능적으로 올바른 코드 편집을 보장하는가?

    아니다. 평가는 파싱과 구조 대리 지표를 사용했고 의미적 동등성이나 기능 테스트를 수행하지 않았다. 따라서 구문·구조 안정성에 대한 근거이지 실제 프로그램 복구의 정확성 보장은 아니다.

  4. LLM 기반 코드 편집과 어떤 관련이 있는가?

    실험 모델은 LLM이 아니라 계층적 VQ-VAE와 마스킹 이산 생성기다. 기여는 요청 영역 밖의 불필요한 변화를 줄이기 위한 잠재 공간 제어 방식과 평가 관점이며, LLM 코드 편집 성능 자체를 측정한 연구는 아니다.

이 논문을 인용할 때

AI 보조 코드 변환에서 무엇을 바꿀 수 있고 어떤 프로그램 구조를 안정적으로 유지해야 하는지 명시적으로 제어하는 연구에 인용할 수 있다.

  1. 제어 가능하고 구조를 보존하는 코드 생성

  2. 국소 프로그램 복구와 제한된 리팩터링

  3. 소스 코드를 위한 계층적 이산 표현

  4. 소스 코드의 마스킹 이산 생성

  5. 소프트웨어 산출물의 잠재 공간 제어

제한사항과 근거 범위 보기

제한사항

  • 64 token으로 잘린 짧은 Python 함수만 다룬다.
  • 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.