OpenAI SWE-bench Verified 출시: 인간 검증 벤치마크가 소프트웨어 엔지니어링 평가를 개선
TL;DR
OpenAI는 SWE‑bench Verified를 공개했습니다. 이는 SWE‑bench 소프트웨어 엔지니어링 벤치마크의 500개 샘플을 인간이 검증한 하위 집합으로, 모호한 이슈와 불공정한 유닛 테스트를 제거해 AI 모델의 자율 코딩 능력을 보다 신뢰성 있게 평가할 수 있게 합니다. GPT‑4o는 이 샘플 중 33.2%를 해결했으며, 원본 벤치마크에서의 점수보다 두 배 이상 높습니다.
SWE‑bench 배경
SWE‑bench는 12개의 오픈소스 Python 저장소에서 실제 GitHub 이슈를 사용해 대형 언어 모델(LLM)의 성능을 평가합니다. 각 테스트 샘플은 이슈 설명과 저장소 코드를 제공하며, 모델은 FAIL_TO_PASS 유닛 테스트(초기에는 실패)를 통과하도록 코드를 수정하고, PASS_TO_PASS 테스트는 계속 통과하도록 해야 합니다. 이 벤치마크는 자율 소프트웨어 엔지니어링 능력을 측정하는 표준이 되었으며, 2024년 8월 5일 현재 전체 세트에서 상위 에이전트는 20%, 더 쉬운 SWE‑bench Lite에서는 43%의 성과를 보이고 있습니다.
원본 벤치마크가 개선이 필요했던 이유
OpenAI는 SWE‑bench가 모델 성능을 과소평가하게 만든 세 가지 체계적 문제를 확인했습니다:
- 과도하게 구체적이거나 관련 없는 유닛 테스트 – 일부
FAIL_TO_PASS테스트는 이슈 설명에 언급되지 않은 동작을 요구해 올바른 해결책을 거부했습니다. - 불충분한 이슈 진술 – 모호한 문제 설명으로 인해 모델이 유효한 수정을 만들 충분한 정보를 얻지 못했습니다.
- 환경 설정 취약성 – 저장소 환경을 재현하는 데 어려움이 있어 해결책과 무관하게 테스트가 실패했습니다.
예시로 scikit-learn__scikit-learn-14520 샘플을 들 수 있습니다. 이 이슈는 copy 인수가 무시된다고 언급하지만, 요구되는 테스트는 이슈 텍스트에 전혀 나타나지 않는 특정 DeprecationWarning 메시지를 확인해야 합니다. 숨겨진 테스트에 접근하지 못하면 에이전트는 요구 사항을 신뢰성 있게 만족시킬 수 없습니다.
SWE‑bench Verified: 인간 검증 하위 집합
이러한 결함을 해결하기 위해 OpenAI는 대규모 주석 작업을 진행했습니다:
- 주석자 – 93명의 전문 Python 개발자가 무작위로 선정된 1,699개의 SWE‑bench 샘플을 검토했습니다.
- 주석 기준 – 각 샘플에 문제 진술의 불충분성 및 유닛 테스트 공정성에 대해 0‑3의 네 가지 심각도 라벨을 부여하고, 숙련된 엔지니어가 해결하는 데 걸리는 시간으로 난이도를 추정했습니다.
- 합의 과정 – 모든 샘플은 세 명의 독립 주석자가 라벨링했으며, 보수적인 필터링을 위해 가장 높은 심각도 라벨을 채택했습니다.
- 필터링 기준 – 두 축 중 하나라도 심각도 라벨이 ≥ 2이거나 주요 문제가 표시된 샘플은 제거되었습니다.
그 결과 SWE‑bench Verified 세트는 500개의 고품질 샘플을 포함하게 되었으며, 식별된 문제들이 모두 사라졌습니다. 난이도 주석에 따르면 15분 이하가 소요될 것으로 추정되는 “쉬운” 작업 196개와 1시간 이상 걸릴 것으로 추정되는 “어려운” 작업 45개가 포함됩니다. 이 데이터셋은 원본 SWE‑bench와 SWE‑bench Lite를 모두 대체합니다.
새로운 평가 하니스
OpenAI는 SWE‑bench 저자들과 협력해 Docker 기반 평가 하니스를 공개했습니다. 이를 통해 환경 설정이 간소화되고 향후 벤치마킹의 재현성이 크게 향상됩니다.
SWE‑bench Verified에서의 모델 성능
새 데이터셋을 사용해 OpenAI는 기존 리더보드에서 좋은 성과를 보였던 여러 오픈소스 스캐폴드를 적용해 GPT‑4o를 평가했습니다:
- 최고 스캐폴드 – GPT‑4o는 SWE‑bench Verified에서 **33.2%**의 해결률을 기록했으며, 이는 원본 SWE‑bench에서의 16% 점수보다 두 배 이상 높은 수치입니다.
- 오픈소스 스캐폴드 개선 – 오픈소스 시스템인 Agentless 스캐폴드도 데이터셋 정제 후 점수가 16%에서 약 33%로 두 배 상승했습니다.
난이도별 성능
성능 향상은 각 난이도 구간마다 관찰되었으며, 단순히 쉬운 작업이 많아졌기 때문이 아닙니다. 이는 필터링이 실제로 실행 불가능한 샘플을 제거했음을 의미합니다.
AI 준비도에 대한 시사점
SWE‑bench Verified는 OpenAI의 Preparedness Framework 내에서 보다 신뢰할 수 있는 지표로 활용됩니다. 이 프레임워크는 모델 자율성 위험을 Medium 수준에서 추적합니다. 정확한 벤치마크는 다음에 필수적입니다:
- 실제 능력 향상과 평가 아티팩트 구분
- 모델이 더 높은 자율성 수준에 접근함에 따라 위험 평가 안내
- 커뮤니티에 엄격한 벤치마크 관리 필요성 알림
OpenAI는 세 가지 교훈을 강조합니다:
- 벤치마크에 대한 깊은 이해 – 잘 설계된 스위트라도 모델 능력을 왜곡하는 체계적 편향을 숨길 수 있습니다.
- 생태계 인식 – 외부 스캐폴드의 발전이 점수에 큰 영향을 미칠 수 있으므로 지속적인 재평가가 필수입니다.
- 제한 인식 – 정적이며 공개 GitHub 기반 데이터셋은 데이터 오염 위험이 있고 자율성 위험의 좁은 영역만을 다루므로 다른 평가와 보완해야 합니다.
데이터 공개
모든 주석, 검증된 하위 집합, 새로운 Docker 하니스는 공개되었습니다. 연구자는 원본 게시물에 제공된 링크를 통해 리소스를 다운로드할 수 있습니다.
저자 및 감사
본 연구는 Neil Chowdhury, James Aung, Chan Jun Shern, Oliver Jaffe, Dane Sherburn, Giulio Starace, Evan Mays, Rachel Dias, Marwan Aljubeh, Mia Glaese, Carlos E. Jimenez, John Yang, Leyton Ho, Tejal Patwardhan, Kevin Liu, Aleksander Madry(동등 기여) 등이 수행했습니다. 감사 대상에는 원본 SWE‑bench 제작자, Preparedness 팀, 그리고 SWE‑bench Verified를 가능하게 한 다수의 주석자들이 포함됩니다.
Citation: OpenAI, Introducing SWE‑bench Verified, August 13 2024. URL: https://openai.com/index/introducing-swe-bench-verified
Sources
- OriginalIntroducing SWE-bench Verified