벤치마크 · agentic
SWE-bench
SWE-bench는 AI 시스템이 실제 소프트웨어 버그를 고칠 수 있는지 평가하는 벤치마크로, GitHub의 인기 오픈소스 Python 저장소에서 2,294개의 실제 issue를 모아 모델이 코드를 수정하는 patch를 생성하도록 합니다. 핵심 지표는 해결한 issue의 비율입니다.
자세히 보기
- 예시
- 전형적인 항목은 Python 프로젝트에 실제로 등록된 버그 리포트나 기능 요청(예: Django나 scikit-learn의 issue)을 해당 저장소의 코드와 함께 모델에 제공하고, 문제를 해결하는 patch를 생성하도록 요구합니다.
- 채점 방식
- 점수는 2,294개 issue 중 해결한 비율입니다. 모델의 patch를 적용했을 때 그 저장소 자체의 테스트 스위트가 통과하는 경우에만 해당 issue가 해결로 집계됩니다.
- 검증 방식
- 검증은 완전히 자동입니다. 생성된 patch를 저장소에 적용하고 프로젝트의 실제 테스트를 실행하며, 목표로 한 실패 테스트가 통과로 바뀌고 기존에 통과하던 테스트도 계속 통과할 때에만 과제가 해결로 인정됩니다. 사람의 판단이나 정확 일치는 사용하지 않습니다.
- 왜 중요한가
- 장난감 같은 문제가 아니라 실제 코드에 대한 엔드투엔드 소프트웨어 엔지니어링 능력을 측정하기 때문에 코딩 에이전트의 발전을 보여주는 주목받는 지표입니다. 다만 헤드라인 수치로는 사람이 검증한 부분집합 SWE-bench Verified가 대체로 그 자리를 대신하게 되었습니다.
예제 풀이
문제
저장소
psf/requests. 한 사용자가, 세션의 기본 헤더를 제거하려고 request 헤더를 None 으로 설정해도 효과가 없어 값이 None 인 key가 삭제되지 않고 병합된 헤더에 남는다고 보고했습니다. 버그가 있는 commit 상태의 저장소와 이 issue가 주어졌을 때, requests.sessions.merge_setting 이 값이 None 인 key를 제거하도록 하는 patch를 작성하세요.해답
--- a/requests/sessions.py
+++ b/requests/sessions.py
@@ -412,6 +412,11 @@ def merge_setting(request_setting, session_setting, dict_class=OrderedDict):
merged_setting = dict_class(to_key_val_list(session_setting))
merged_setting.update(to_key_val_list(request_setting))
+ # Remove keys that are set to None. Extract the keys first to avoid
+ # mutating the dictionary while iterating over it.
+ none_keys = [k for (k, v) in merged_setting.items() if v is None]
+ for key in none_keys:
+ del merged_setting[key]
+
return merged_setting
풀이
세션과 request 딕셔너리를 병합한 뒤
None 을 가리키는 key는 기본값을 지우려는 request 수준의 명시적 재정의에서 온 것이므로, 수정은 그런 key들을 모아 삭제합니다(반복 중 딕셔너리를 변경하지 않도록 먼저 목록을 만듭니다). SWE-bench는 patch를 적용하고 해당 인스턴스의 FAIL_TO_PASS 및 PASS_TO_PASS 테스트를 실행해 채점하며, 모두 통과해야만 해결로 인정합니다.| 날짜 | 모델 | 점수 | 출처 |
|---|---|---|---|
| 2025-11-25 | Claude Opus 4.5 | 80.9% | Anthropic, 최첨단 코딩 및 컴퓨터 사용 기능을 갖춘 Claude Opus 4.5 출시 |
| 2025-10-17 | Qwen3-Coder-480B-A35B-Instruct | 55.4% | 알리바바, 독점 모델 수준의 성능을 갖춘 오픈소스 코딩 모델 'Qwen3-Coder-480B-A35B-Instruct' 출시 |
| 2025-07-10 | Grok 4 Code | 75.0% | xAI, 무거운 다중 에이전트 티어와 실시간 웹 데이터를 갖춘 Grok 4 출시 |
| 2025-05-22 | Claude Sonnet 4 | 72.7% | Anthropic이 ASL-3 안전 조치를 갖춘 Claude Opus 4와 Sonnet 4를 출시 |
| 2025-05-22 | Claude Opus 4 | 72.5% | Anthropic이 ASL-3 안전 조치를 갖춘 Claude Opus 4와 Sonnet 4를 출시 |
| 2025-05-22 | Claude Opus 4 | 72.5% | Anthropic, 확장된 사고와 도구 사용 기능을 갖춘 Claude Opus 4 및 Sonnet 4 출시 |
| 2025-05-22 | Claude Sonnet 4 | 72.7% | Anthropic, 확장된 사고와 도구 사용 기능을 갖춘 Claude Opus 4 및 Sonnet 4 출시 |
| 2025-02-24 | Claude 3.7 Sonnet | 70.3% | Anthropic, 동적 추론 제어가 가능한 Claude 3.7 Sonnet 출시 |
| 2023-10-10 | Claude 2 | 1.96% | SWE-bench, 실제 GitHub 이슈에 대한 LM 평가 프레임워크 도입 |