SkelDPO: 효율적인 코드 생성을 위한 스켈레톤 가이드 직접 선호 최적화 (Direct Preference Optimization)
요약
SkelDPO는 코드 생성 모델의 실행 효율성을 높이기 위해 스켈레톤 가이드 방식의 직접 선호 최적화(DPO)를 제안합니다. 코드의 구조적 특징인 스켈레톤을 활용해 효율적인 구현을 학습함으로써 기존 모델의 한계를 극복합니다.
핵심 포인트
- 코드의 구조적 스켈레톤을 활용한 효율성 최적화 프레임워크 제안
- 코드와 스켈레톤 공동 선호 손실(joint loss) 도입
- 기존 SOTA 방식 대비 Pass@1 및 효율성 지표 대폭 향상
- 의미론적 정확성과 실행 효율성을 동시에 강화
코드 대규모 언어 모델 (Code LLMs)이 의미론적 정확성 (semantic correctness)을 달성하며 놀라운 발전을 이룸에 따라, 실행 효율성 (execution efficiency)은 모델의 실질적인 유용성을 평가하는 데 있어 점점 더 중요한 차원이 되었습니다. 그러나 기존 방식들은 일반적으로 훈련 과정에서 전체 프로그램을 단일 최적화 대상으로 취급하며, 효율성에 영향을 미치는 구조적 요인들을 명시적으로 모델링하지 않습니다. 그 결과, 이러한 모델들은 의미론적으로 정확한 코드를 생성할 수는 있지만, 효율적인 구현으로 이어지는 근본적인 스켈레톤 (skeleton) 특징들을 미세한 수준 (fine-grained level)에서 학습하는 데 실패합니다. 이러한 한계를 해결하기 위해, 우리는 코드 생성의 효율성을 체계적으로 향상시키는 스켈레톤 가이드 선호 최적화 프레임워크인 SkelDPO (Skeleton-Guided Direct Preference Optimization)를 제안합니다. SkelDPO는 먼저 코드 데이터셋에서 효율적인 구현과 비효율적인 구현을 식별하고, 비교 분석을 통해 효율성이 높은 지점과 비효율성이 높은 지점을 찾아내어 효율적 스켈레톤과 비효율적 스켈레톤 사이의 정렬 신호 (alignment signals)를 형성합니다. 훈련 과정에서는 코드와 스켈레톤 공동 선호 손실 (joint code and skeleton preference loss)이 도입되어, 모델이 의미론적 정확성을 학습하는 동시에 코드 내 효율성 핵심 구성 요소에 대한 이해를 강화할 수 있도록 합니다. 결과에 따르면 SkelDPO는 기존 방법들을 지속적으로 능가합니다. 효율적/비효율적 코드 선호 최적화에만 의존하는 최신 기술 (SOTA) 방식과 비교했을 때, Pass@1, Beyond@1, Effi@1을 각각 3-6%, 3-7%, 2-5% 향상시켰으며, 복잡한 작업에서 더 큰 개선이 관찰되었습니다. 전반적으로 SkelDPO는 스켈레톤 수준의 효율성 정렬에 대한 새로운 관점을 제공하며, 정확성 또는 효율성 쌍에만 의존하는 기존 선호 최적화의 한계를 극복합니다. 모든 데이터셋과 소스 코드는 다음에서 공개적으로 사용할 수 있습니다: https://github.com/icpcSkelDPO/SkelDPO.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기