벤치마크 · agentic
SWE-bench Pro
Scale AI가 내놓은, 더 어렵고 오염에 강한 SWE-bench의 변형입니다. 모델이 학습한 적 없는, 따로 떼어 둔 기업·스타트업·오픈소스 리포지토리에서 실제 GitHub 이슈 약 1,865개를 가져오며, 수정 사항은 보통 여러 파일에 걸쳐 있습니다.
자세히 보기
- 예시
- 실제 이슈와 전체 리포지토리가 주어지면, 에이전트는 프로젝트의 숨겨진 테스트 스위트를 통과시키기 위해 — 종종 여러 파일을 건드리는 — 패치를 만들어 내야 합니다. 문제들은 학습 데이터 유출을 피하기 위해 특별히 비공개 및 상업용 리포지토리에서 가져옵니다.
- 채점 방식
- 해결된 이슈의 비율(%)이며, pass@1(한 번의 시도)로 보고됩니다. 높을수록 좋습니다. 과제가 더 어렵고 이전에 본 적 없는 것들이기 때문에 점수는 SWE-bench Verified보다 낮게 나옵니다.
- 검증 방식
- 완전 자동이며 학습에서 제외된(held-out) 방식입니다: 생성된 패치가 적용되고 리포지토리의 실제 숨겨진 단위 테스트가 샌드박스에서 실행됩니다. 대상 테스트가 모두 통과하고 다른 어떤 것도 회귀하지 않을 때에만 과제로 인정됩니다.
- 왜 중요한가
- SWE-bench Verified에서 점수를 부풀리는 오염과 포화를 견디도록 설계되어, 모델이 한 번도 본 적 없는 코드에서 실제로 일반화되는 코딩 에이전트 능력을 더 깨끗하게 보여 주는 신호가 됩니다.
예제 풀이
문제
고정된 기준 커밋 상태의
acme/payments 리포지토리. 이슈: Money('0.05').allocate([1, 1, 1])가 1센트를 누락합니다 — 세 부분의 합이 $0.05가 아니라 $0.04입니다. 배분 결과가 항상 원래 금액으로 다시 합산되도록 패치를 만드세요.해답
--- a/payments/money.py
+++ b/payments/money.py
@@ def allocate(self, ratios):
- total = sum(ratios)
- return [self._from_minor(self.minor * r // total) for r in ratios]
+ total = sum(ratios)
+ shares = [self.minor * r // total for r in ratios]
+ remainder = self.minor - sum(shares)
+ for i in range(remainder):
+ shares[i] += 1
+ return [self._from_minor(s) for s in shares]
풀이
정수 나눗셈은 값을 버림 처리하므로 남은 소액 단위(센트)가 조용히 사라졌습니다. 수정 코드는 각 몫을 계산한 다음, 나머지를 한 단위씩 앞쪽 부분들에 분배하여 배분된 부분들의 합이 항상 총액과 같도록 보장합니다. 숨겨진 테스트는 여러 금액과 비율에 걸쳐
sum(m.allocate(ratios)) == m을 검증합니다.| 날짜 | 모델 | 점수 | 출처 |
|---|---|---|---|
| 2026-07-08 | Grok 4.5 | 64.7% | xAI, 저비용 및 혼합 벤치마크 성능의 Grok 4.5 출시 |
| 2026-04-23 | GPT-5.5 | 58.6% | OpenAI, API를 통해 GPT-5.5 및 GPT-5.5 Pro 출시 |
| 2026-04-23 | GPT-5.5 | 58.6% | OpenAI, 에이전트 기능과 두 배의 API 가격으로 GPT-5.5 출시 |
| 2026-04-23 | Claude Opus 4.7 | 64.3% | OpenAI, 에이전트 기능과 두 배의 API 가격으로 GPT-5.5 출시 |
| 2025-12-11 | GPT-5.2 Thinking | 55.6% | OpenAI, 코드 작성·긴 문맥·추론 능력 개선된 GPT-5.2 출시 |
| 2025-12-11 | GPT-5.2 Thinking | 55.6% | OpenAI, GPT-5.2 출시, 코딩 및 추론 벤치마크에서 Gemini 3 압도 |