SWE-bench: Can Language Models Resolve Real-World GitHub Issues?
저자: Carlos E. Jimenez, John Yang, Alexander Wettig, Shunyu Yao, Kexin Pei, Ofir Press, Karthik Narasimhan | 날짜: 2024-11-11 | DOI: 10.48550/arXiv.2310.06770📄 PDF
⚠️ 이 페이지의 요약·평가·해설은 생성형 AI(Claude)가 자동 생성한 2차적 분석물입니다. 논문 원문의 저작권은 원저작자에게 있으며, 정확한 내용은 원문(위 DOI·arXiv 등 출처)을 확인하세요.
Essence
Figure 1: SWE-bench는 GitHub 이슈를 실제 코드베이스와 함께 제시하여 언어 모델이 생성한 패치를 단위 테스트로 검증하는 방식으로 작동
실제 GitHub 이슈 2,294개를 기반으로 한 소프트웨어 엔지니어링 벤치마크 SWE-bench를 제시하며, 최고 성능 모델(Claude 2)도 1.96%의 낮은 해결율만 달성하여 대규모 언어 모델의 실제 소프트웨어 엔지니어링 능력의 한계를 명확히 드러낸다.
Motivation
Known: 기존 HumanEval, MBPP 등의 코딩 벤치마크는 수십 줄의 자체 포함된(self-contained) 문제만 평가하며, 기존 NLP 벤치마크들이 포화되어 있음
Gap: 실제 소프트웨어 엔지니어링은 대규모 리포지토리 이해, 다중 파일/함수 간 조율, 복잡한 컨텍스트 처리를 요구하는데 이를 평가할 벤치마크가 부재
Why: 언어 모델의 실제 실무 능력을 정확히 평가하고, 향후 개발 방향을 수립하기 위해 현실적이고 도전적인 벤치마크 필요
Approach: 실제 GitHub 이슈-PR 쌍을 3단계 필터링(속성 필터링, 실행 필터링)으로 정제하여 고품질 작업 인스턴스 구성
Achievement
Figure 2: 3단계 데이터 파이프라인: (1) 인기 리포지토리 90,000개 PR 수집 → (2) 이슈 해결 + 테스트 기여 PR 필터링 → (3) 실행 기반 필터링으로 2,294개 최종 작업 구성
포괄적 벤치마크 구성: 12개 인기 Python 리포지토리에서 2,294개의 실제 이슈를 기반으로 한 고품질 벤치마크 생성. 각 작업은 평균 438K 라인의 대규모 코드베이스, 195단어의 이슈 설명, 평균 1.7개 파일과 3.0개 함수 수정 필요
상태 최고 모델의 성능 한계 실증: Claude 2 (BM25 retriever 포함) 1.96%, GPT-4는 미포함되었으나 공개 모델 중 SWE-Llama 13b가 경쟁 가능 수준의 성능 달성
학습 데이터 및 파인튠드 모델 공개: 37개 추가 리포지토리에서 19,000개 비테스팅 인스턴스로 구성된 SWE-bench-train 및 CodeLlama 기반 SWE-Llama 7b/13b 모델 공개
지속적 확장 가능성: 최소 인간 개입으로 새로운 Python 리포지토리를 추가할 수 있는 자동화된 파이프라인 설계
How
Figure 3: 12개 리포지토리별 작업 분포 (django 850개가 가장 많고, flask 11개가 가장 적음)
총평: SWE-bench는 기존 코딩 벤치마크의 인공성을 벗어나 실제 GitHub 이슈 해결을 통해 언어 모델의 실무 소프트웨어 엔지니어링 능력을 엄격하게 평가하는 중요한 작업이며, 공개 데이터셋과 자동화된 확장성으로 장기적 학술 가치가 높다. 다만 검색 기반 접근과 초기 평가 모델 제한은 개선 여지가 있다.