Parsimony
기존의 벤치마크는 해결률(solve rate)과 비용(cost)만 측정할 뿐, 과도한 코드를 작성하여 장기적으로 코드베이스를 어렵게 만드는 것을 벌하지 못합니다. Parsimony는 AI 모델이 얼마나 많은 코드를 추가하는지를 측정합니다.
이는 기존 벤치마크가 발표한 패치를 가져와 **코딩 유닛(coding units)**을 계산합니다. 코딩 유닛이란 구문 요소(statements), 호출(calls), 비교(comparisons), 이름(names), 리터럴(literals)과 같은 문법적 요소를 말합니다. 줄 수(lines)는 세지 않으므로, 코드를 빽빽하게 채우는 것이 보상받지 못하며, 삭제된 코드는 빼집니다: 순 유닛 = 추가된 유닛 − 제거된 유닛.
모델 비교 (Compare models)
사용 방법 (How to read this)
모델들은 해결한 태스크에서 평균 순 추가 유닛(mean net units added)을 기준으로 낮은 순서로 순위가 매겨집니다. '평균 순 추가 유닛(mean net units added)'에는 실패한 시도도 포함됩니다. '해결됨(Solved)'은 SWE-bench Verified를 기반으로 하며, 테스트는 재실행되지 않습니다. '측정됨(Measured)'은 측정 가능한 해결 시도의 개수입니다.
Artificial Analysis Intelligence Index는 모델별 및 추론 노력에 맞춰진 외부 점수이며, 순위에 영향을 미치지 않습니다.
Faded models는 제가 첫 5~10개의 DeepSWE Python 태스크에서 (OpenAI 모델의 pi와 GPT-6 계열(Codex 사용), Anthropic 모델의 Claude Code를 사용하여) 실행하고 각 태스크별 테스트로 평가했습니다. 이들은 검증되거나 순위가 매겨지지 않았습니다. GPT-5.6 Sol은 양방향으로 실행되었으며, 제 실행은 발표된 실행보다 0.88배 많은 코드를 추가했습니다.
리더보드 (Leaderboard)
모델이 누락되었나요? 요청해 주세요. 숫자가 잘못된 것 같나요? 보고해 주세요.
데이터 소스 (Data sources)
해시(Hashes)
방법 (Method)
- 각 패치는 태스크의 코드에 적용되며, 변경된 모든 파일의 두 버전이 파싱됩니다. 아무것도 실행되지 않습니다.
- 테스트, 문서(docs), 생성된 파일은 제외됩니다. Python만 측정합니다.
- 합격/실패 여부는 SWE-bench가 발표한 결과를 따르며, 테스트는 재실행되지 않습니다.
제한 사항 (Limits)
- 작다고 항상 좋은 것은 아닙니다: 유닛은 가독성이나 디자인이 아닌 크기를 측정합니다.
- 코드를 더 많이 작성하는 모델일수록 더 많은 태스크를 해결하는 경향이 있습니다(26개 이상의 모델을 대상으로 한 Spearman 0.33–0.60).
- 모든 모델은 동일한 에이전트(mini-SWE-agent)를 사용하지만, 이 에이전트는 여전히 얼마나 많은 코드가 작성될지에 영향을 미칩니다.
자신만의 벤치마크 추가하기
다른 벤치마크에서 코드를 크기 수치를 가지고 있나요? 예제 파일을 다운로드하여 결과를 채우고 열면 동일한 차트와 표를 얻을 수 있습니다. 이 파일은 브라우저에 남아있습니다. 형식과 공유 방법입니다.
예시: 음수 확인하기
둘 다 같은 결과를 반환합니다.
def has_negative(values):
return any(value < 0 for value in values)