깨끗한 PR로 배우는 레포 수준 코드 편집
초록
GitHub 풀 리퀘스트를 정제해 Search/Replace 형태로 변환하고, 이를 중간 학습 및 에이전트‑프리 SFT에 활용함으로써 레포 전체의 다파일 수정 능력을 모델 가중치에 직접 내재시킨다. 2 백만 건의 고품질 PR 데이터로 미세조정한 Qwen2.5‑Coder‑32B는 SWE‑bench Lite에서 13.6 %, Verified에서 12.3 % 절대 향상을 달성한다.
상세 분석
본 논문은 레포 수준 코드 편집을 위한 고품질 학습 신호가 부족하다는 현 상황을 정확히 짚고, 실제 개발 현장에서 발생하는 풀 리퀘스트(PR)를 “Clean‑PR” 파이프라인을 통해 정제·검증한다는 점에서 혁신적이다. 첫 단계인 Noise Filtering은 봇 생성 PR, 비코어 파일 변경, 미병합 PR 등을 정교한 휴리스틱과 메타데이터 기반 규칙으로 81 % 이상 제거해 신호‑대‑노이즈 비율을 크게 개선한다. 이어지는 Search/Replace 변환은 전통적인 diff가 라인 번호에 의존해 불안정한 반면, 최소한의 고유 컨텍스트를 추출해 “검색‑대체” 블록을 만든다. 이 블록은 라운드‑트립 검증을 통해 사후 코드와 완벽히 일치함을 확인함으로써 학습 데이터의 정합성을 보장한다. 또한 Issue‑Linking을 통해 PR 설명에 부족한 문제 정의를 외부 이슈 본문으로 보강함으로써, 모델이 실제 버그 보고서에서 시작해 해결책을 도출하도록 설계했다.
데이터 규모는 2 백만 건(≈17.7 B 토큰)으로, 기존 SWE‑bench 스타일 데이터셋(수천~수십만 건)과 비교해 2 ~ 3 배 이상이며, 12개 언어에 걸쳐 균형 있게 샘플링했다. 중간 학습(mid‑training) 단계에서 모델은 레포 전체 구조와 다파일 의존성을 사전 학습하고, 이후 Agentless‑Aligned SFT에서는 파일 선택, 라인 레벨 내비게이션, 패치 생성이라는 세 단계로 문제를 분해한다. 특히 Error‑Driven Augmentation은 의도적으로 방해 파일·코드 영역을 삽입해 모델이 불필요한 컨텍스트를 거부하도록 훈련시켜, 실제 추론 시 과잉 편집(over‑editing) 위험을 크게 감소시킨다.
실험 결과는 두드러진데, 베이스인 Qwen2.5‑Coder‑32B 대비 SWE‑bench Lite에서 13.6 %p, Verified에서 12.3 %p 절대 상승을 기록한다. 이는 복잡한 에이전트 체인(툴 호출, 다단계 프롬프트 등) 없이도 레포 수준 편집 능력을 모델 자체에 내재시킬 수 있음을 입증한다. 논문은 또한 데이터 파이프라인과 검증 절차를 공개함으로써, 향후 연구자들이 동일한 프레임워크를 재현·확장할 수 있는 기반을 제공한다.
댓글 및 학술 토론
Loading comments...
의견 남기기