Spaghetti Architect: 오염에 강하고, 구성에 의해 라벨링된, 다국어 코드 데이터셋 생성기
요약
Spaghetti Architect는 통제된 품질과 난이도를 가진 다국어 코드 데이터셋 생성 도구입니다. 안티-최적화 트랜스파일러를 통해 깨끗한 IR을 의도적으로 지저분한 코드로 변환하여 정확성이 보장된 데이터셋을 구축합니다.
핵심 포인트
- 안티-최적화 트랜스파일러로 5개 언어의 코드 생성
- 구성 방식에 의한 데이터 정확성 및 난이도 라벨링 보장
- 데이터 오염 방지를 위한 새로운 변형 주조 기술 적용
- 기존 모델의 성능 한계를 테스트할 수 있는 벤치마크 제공
채굴된 코드 코퍼스(corpora)는 풍부하지만 통제되지 않습니다. 코드 스니펫의 의미론(semantics), 표면적인 "지저분함(messiness)", 그리고 난이도는 야생 상태에 포함된 그대로이며, 평가를 위한 알려진 최적의 참조(reference)가 존재하지 않습니다. 또한, 어떤 공개 샘플이든 이미 모델의 학습 세트에 포함되어 있을 수 있습니다. 우리는 이러한 코퍼스에 결여된 통제력을 갖춘 코드 데이터셋을 주조(mints)하는 도구인 Spaghetti Architect를 선보입니다. 안티-최적화 트랜스파일러(anti-optimization transpiler)는 깨끗하고 언어에 구애받지 않는 JSON 중간 표현(intermediate representation, IR)을 5개 언어(Python, JavaScript, Go, Java, C++)로 구성된 의도적으로 중복되고 완전히 평탄화된(fully-flattened) 프로그램으로 매핑합니다. 모든 프로그램은 컴파일되고 실행되며 참조 오라클(reference oracle)과 대조되므로, 각 인스턴스는 구성에 의해(by construction) 정확성이 보장됩니다. 깨끗한 IR은 알려진 최적의 참조이며, 지저분함은 엄격하게 중첩된 안티 패턴(anti-pattern) 프로필에 의해 조절됩니다. 각 인스턴스는 내재적(문제 크기) 및 부수적(고정된 의미론에서의 표현)이라는 두 개의 직교하는 난이도 축을 따라 라벨링되며, 오염은 비공개로 보유된 시드(seed)로부터 새로운 변형을 주조함으로써 방지됩니다. 우리는 품질 순서가 기존의 복잡도 및 가독성 지표를 이동시킨다는 구성-유효성(construct-validity) 증거를 제시하며, 4개 모델 오픈 래더(open ladder)에 대한 베이스라인을 보고합니다: 정확한 일치(exact match)는 규모에 따라 상승하며, 내재적 노브(intrinsic knob)는 가장 강력한 모델의 산술-집계(arithmetic-aggregation) 정확도조차 0으로 무너뜨립니다. 또한, 개발 세트(development-set) 점수는 새로 주조된 홀드아웃(held-out) 대응물과 $|Δ| ext ext{le} 0.012$ (이해) 및 $ ext ext{le} 0.011$ (리팩터링) 범위 내에서 일치합니다. 동일한 프로그램에서 리팩터링 등가성($0.73
ightarrow 0.99$)은 규모에 불변하는 반면 출력 예측은 무너집니다. 그리고 생성기의 자체 주석(self-annotations)을 제거(ablating)해 본 결과, 주석은 가장 약한 모델을 가장 강한 모델보다 한 자릿수 더 많이 팽창시킴을 보여줍니다($-0.173$ 대 $-0.017$). 주석이 달린 래더는 주석이 없는 경우 세 개 모두를 해결하는 세 개의 인접 쌍 중 하나를 해결합니다. 오픈 소스(MIT)이며, 의존성이 없고, 영구적인 DOI 아래 보관됩니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기