레이어별 비대조적 표현 학습을 통한 Type-IV 코드 복제 탐지
요약
본 논문은 전통적인 방법으로 탐지하기 어려운 Type-IV 코드 복제(의미론적으로 동일하나 구문적으로 다른)를 탐지하는 새로운 접근 방식 LWVIC4Code를 제안합니다. 이 모델은 Variance-Invariance-Covariance Regularization (VICReg) 프레임워크를 기반으로, 교차 레이어 일관성 정규화와 깊이 의존적 가중치 부여를 통해 견고한 코드 표현을 학습합니다. 실험 결과, LWVIC4Code는 네거티브 샘플링 없이도 높은 성능을 보이며, 다양한 언어로의 일반화 능력을 입증했습니다.
핵심 포인트
- Type-IV 클론 탐지를 위해 비대조적 표현 학습 접근 방식(LWVIC4Code) 제안
- 교차 레이어 일관성 정규화 및 깊이 의존적 가중치 부여를 활용하여 코드 표현력 강화
- 네거티브 샘플링 없이도 대조 학습 기준선 대비 우수한 성능 달성 입증
- Python에서 Java, C# 등 다른 언어로의 효과적인 일반화 가능성을 제시
소프트웨어 클론은 서로 유사하거나 기능적으로 동등한 코드 조각입니다. 이는 유지보수, 리팩토링 및 버그 감지에 심각한 어려움을 야기합니다. 의미론적으로는 동일하지만 구문적으로 다를 수 있는 Type-IV 클론을 탐지하는 것은 전통적인 토큰 기반 또는 구문 기반 방법으로는 특히 어렵습니다. 최근의 머신러닝 접근 방식은 대조 학습(contrastive learning)에 의존하는데, 이는 신중한 네거티브 샘플링(negative sampling)을 요구하며 편향을 도입할 수 있습니다. 본 논문에서는 Type-IV 클론 탐지를 위해 특별히 설계된 비대조적 표현 학습 접근 방식인 LWVIC4Code를 제안합니다. Variance-Invariance-Covariance Regularization (VICReg) 프레임워크와 이전의 레이어별 VICReg 훈련을 기반으로, LWVIC4Code는 교차 레이어 일관성 정규화(cross-layer consistency regularization)와 깊이 의존적 레이어 가중치 부여를 도입하여 트랜스포머 레이어를 거쳐 의미론적 정보를 점진적으로 정제하고, 견고하고 판별력 있는 코드 표현을 생성합니다. 우리는 Python (Kamino) 및 다국어(GPTCloneBench) 데이터셋에서 LWVIC4Code를 대조 학습 기준선(baseline) 및 제로샷 대규모 언어 모델과 비교하는 경험적 연구를 수행했습니다. 그 결과, LWVIC4Code는 네거티브 샘플 없이도 경쟁적이거나 우수한 성능을 달성하며, 레이어별 지도 학습(layer-wise supervision)의 이점을 얻고, 특히 Java와 C#로 Python에서 효과적으로 일반화됨을 보여줍니다. 이러한 결과는 비대조적이고 레이어별 표현 학습이 견고한 의미론적 코드 클론 탐지를 위한 유망한 방향임을 입증합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기