[Paper] SWE-Bench++: 오픈소스 저장소에서 소프트웨어 엔지니어링 벤치마크를 확장 가능한 방식으로 생성하기 위한 프레임워크
발행: (2025년 12월 19일 오후 07:16 GMT+9)
9 min read
원문: arXiv
Source: arXiv - 2512.17419v1
개요
SWE‑Bench++는 오픈‑소스 GitHub 프로젝트의 실제 풀 리퀘스트를 자동으로 수집해 재현 가능한 저장소 수준 코딩 작업으로 전환하는 새로운 프레임워크입니다. 11개 프로그래밍 언어에 걸친 실시간 버그 수정 및 기능 요청을 수집함으로써, 현실적인 소프트웨어 엔지니어링 문제에 대한 대형 언어 모델(LLM)의 평가를 위한 확장 가능하고 다국어 지원 벤치마크를 제공합니다.
핵심 기여
- 자동화된 벤치마크 파이프라인: 수동 큐레이션 없이 실시간 GitHub PR에서 작업을 추출, 빌드 및 검증하는 엔드‑투‑엔드 시스템.
- 다국어 지원: Python, JavaScript, Java, Go, Rust 등 11개 언어에 대한 작업을 생성하여 기존 벤치마크의 Python 중심 초점을 넘어섭니다.
- 실행 기반 평가: 각 작업은 자동으로 합성된 환경과 테스트 오라클을 포함하여 실제 빌드·테스트 결과를 반영하는 pass@k 스타일 메트릭을 가능하게 합니다.
- 힌트 기반 경로 합성: 강력한 모델이 실패하는 어려운 인스턴스를 단계별 “힌트”로 변환하여 파인튜닝이나 커리큘럼 학습에 활용할 수 있습니다.
- 대규모 데이터셋: 3,971개의 저장소에서 11,133개의 인스턴스를 수집했으며, 그 중 1,782개의 선별된 인스턴스를 정밀 평가에 사용했습니다.
- 입증된 영향: SWE‑Bench++에 대한 파인튜닝이 기존 SWE‑Bench Multilingual 벤치마크에서 성능을 향상시켜, 데이터가 모델 적응에 유용함을 보여줍니다.
방법론
- Programmatic Sourcing – 파이프라인은 GitHub API를 쿼리하여 버그‑수정 또는 기능‑추가 변경을 포함하는 최근 병합된 PR을 수집합니다.
- Environment Synthesis – 각 저장소에 대해 시스템은 자동으로 종속성을 해결(
requirements.txt,package.json,Cargo.toml등)하고 원래 개발 환경을 그대로 반영하는 Docker 컨테이너를 빌드합니다. - Test Oracle Extraction – 기존 CI 테스트 스위트(
pytest,JUnit,go test등)를 수집하여 실제 정답 오라클로 재사용합니다. 프레임워크는 PR 전 테스트 결과(실패)와 PR 후 테스트 결과(통과)를 기록합니다. - Quality Assurance – 자동 검사를 통해 PR이 깔끔하게 적용될 수 있는지, 테스트가 결정론적인지, 작업이 자체적으로 완결되는지(외부 비밀이 없음) 확인합니다.
- Hint‑Guided Trajectory Synthesis – 최상위 모델(Claude‑Sonnet‑4.5, GPT‑5, Gemini‑2.5‑Pro)이 통과하지 못하는 경우, 시스템은 중간 커밋 diff와 코멘트를 추출해 단계별 “힌트” 시퀀스를 생성하고 이를 커리큘럼‑스타일 파인‑튜닝에 활용합니다.
전체 파이프라인은 지속적으로 실행되어, 벤치마크가 변화하는 오픈‑소스 생태계와 함께 최신 상태를 유지하도록 합니다.
결과 및 발견
- Model performance (1,782‑instance subset에 대한 pass@10):
- Claude‑Sonnet‑4.5: 36.20 %
- GPT‑5 (2025‑08‑07): 34.57 %
- Gemini‑2.5‑Pro: 24.92 %
- GPT‑4o: 16.89 %
- Multilingual gap: 모든 모델이 비‑Python 언어에서 눈에 띄게 성능이 낮으며, 이는 현재 LLM 코드 능력의 제한을 강조합니다.
- Fine‑tuning benefit: SWE‑Bench++ 인스턴스로 미세조정된 모델은 별도의 SWE‑Bench Multilingual 벤치마크에서 측정 가능한 향상(절대 약 5 %까지) 을 달성하여, 생성된 데이터가 적응에 효과적임을 확인합니다.
- Scalability proof: 파이프라인은 최소한의 인간 감독으로 >11k 개의 고품질 작업을 생성했으며, 이는 벤치마크 성장 속도가 오픈소스 코드베이스의 급속한 확장에 맞춰 나갈 수 있음을 보여줍니다.
Practical Implications
- 보다 현실적인 평가: 개발자들은 이제 실제 풀‑리퀘스트 워크플로우를 반영한 작업(빌드 단계, 의존성 해결, 테스트 스위트 포함)으로 LLM을 벤치마크할 수 있으며, 인공적인 “장난감” 문제 대신에 사용할 수 있습니다.
- 다국어 도구: Go, Rust, JavaScript 등으로 작성된 마이크로서비스와 같은 다언어 코드베이스를 가진 기업은 자신들의 스택을 반영한 벤치마크를 얻어 모델 선택과 목표에 맞는 파인튜닝을 개선할 수 있습니다.
- 커리큘럼 학습 파이프라인: 힌트 기반 경로를 지속 학습 파이프라인에 투입하여 팀이 가장 어려운 실제 버그에 대한 모델 성능을 반복적으로 향상시킬 수 있습니다.
- 오픈소스 기여 루프: 벤치마크가 실시간 PR에서 파생되므로 모델이 생성한 패치의 개선 사항을 원본 저장소에 다시 반영할 수 있어, 저위험 기여를 자동화할 가능성이 있습니다.
- 도구 통합: Docker 기반 환경 합성은 CI/CD 파이프라인과 일치하여 벤치마크를 기존 테스트 인프라에 손쉽게 연결하고, 새로운 LLM 릴리스에 대한 자동 회귀 테스트를 수행할 수 있습니다.
제한 사항 및 향후 작업
- 품질 변동성: 모든 PR이 포괄적인 테스트 스위트를 가지고 있는 것은 아니며, 일부 작업은 최소한의 테스트 또는 불안정한 테스트에 의존하고 있어 평가 신뢰도에 영향을 줄 수 있습니다.
- 언어 편향: 11개의 언어를 다루고 있지만, 배포는 여전히 인기 있는 생태계(Python, JavaScript) 쪽으로 치우쳐 있습니다. 드문 언어는 여전히 충분히 대표되지 않을 수 있습니다.
- 정적 분석 부재: 현재 파이프라인은 정적 분석이나 보안 검사를 포함하고 있지 않으며, 이는 프로덕션 수준 코드 생성에 중요합니다.
- 향후 방향: 저자들은 (1) 보다 풍부한 정적 분석 오라클을 통합하고, (2) 추가 언어 및 프레임워크로 확장하며, (3) 엣지 케이스 PR에 대한 “인간이 참여하는” 검증 단계를 추가하고, (4) 파이프라인 자체를 오픈소스화하여 커뮤니티 주도 벤치마크 확장을 가능하게 할 계획입니다.
저자
- Lilin Wang
- Lucas Ramalho
- Alan Celestino
- Phuc Anthony Pham
- Yu Liu
- Umang Kumar Sinha
- Andres Portillo
- Onassis Osunwa
- Gabriel Maduekwe
논문 정보
- arXiv ID: 2512.17419v1
- 카테고리: cs.SE, cs.AI, cs.CL, cs.LG
- 출판일: 2025년 12월 19일
- PDF: PDF 다운로드