벤치마크: SWE-bench, GAIA, AgentBench

세 벤치마크가 2026년 에이전트(Agent) 평가의 기준축을 이룹니다. SWE-bench는 코드 패치(code patching) 능력을 검증하고, GAIA는 다재다능한 도구 사용(generalist tool use)을 검증하며, AgentBench는 다중 환경 추론(multi-environment reasoning)을 검증합니다. 각 벤치마크의 구성, 오염(contamination)에 얽힌 이야기, 그리고 무엇을 측정하지 않는지를 함께 파악해야 합니다.

유형: Learn 언어: Python (stdlib) 선수 학습: Phase 14 · 06 (Tool Use) 소요 시간: 약 60분

학습 목표

  • SWE-bench의 평가 장치(test harness)인 FAIL_TO_PASS를 설명하고, 왜 단위 테스트(unit test)로 게이트(gate)를 거는지 설명할 수 있습니다.
  • SWE-bench Verified(OpenAI, 500개 task)가 왜 존재하는지, 어떤 항목을 제거하는지 설명할 수 있습니다.
  • GAIA의 설계 철학을 설명할 수 있습니다. 사람에게는 쉽지만 AI에게는 어려우며, 세 가지 난이도 단계를 갖는다는 점을 포함합니다.
  • AgentBench의 8개 환경과, 오픈소스 LLM이 마주한 주된 걸림돌(blocker)을 말할 수 있습니다.
  • SWE-bench+의 오염 분석 결과(contamination finding)와 그 의미를 요약할 수 있습니다.

문제

리더보드(leaderboard)는 어떤 모델이 한 벤치마크에서 1위를 차지했는지를 알려줍니다. 그러나 다음과 같은 것은 알려주지 않습니다.

  • 벤치마크가 오염되었는지 여부. 즉, 정답이 학습 데이터(training data)에 들어가 있거나 테스트 누출(test leakage)이 있는지 여부.
  • 그 벤치마크가 우리가 정말 관심 있는 능력을 측정하는지 여부. 코드 작성인지, 웹 탐색(browsing)인지, 다재다능한 일반 작업인지.
  • 평가자(evaluator)가 견고한지 여부. 추상 구문 트리 매칭(AST matching)인지, 상태 검사(state check)인지, 사람의 검토(human review)인지.

숫자를 인용하기 전에, 세 가지 기준 벤치마크와 그 실패 양상을 먼저 알아야 합니다.

사전 테스트

2문제 · 이 강의를 시작하기 전에 얼마나 알고 있는지 확인해보세요

1.SWE-bench의 평가 장치(harness)에서 FAIL_TO_PASS 게이트는 무엇을 검증하나요?

2.GAIA를 코드 특화 벤치마크와 구별하는 설계 철학은 무엇인가요?

0/2 답변 완료

개념

SWE-bench (Jimenez et al., ICLR 2024 oral)

  • 인기 있는 파이썬(Python) 저장소(repository) 12개에서 가져온 실제 GitHub issue 2,294개로 구성됩니다.
  • 에이전트가 입력으로 받는 것: 수정(fix) 직전 커밋(commit) 시점의 코드베이스(codebase)와 자연어로 작성된 이슈(issue) 설명.
  • 에이전트가 산출물로 내놓는 것: 패치(patch).
  • 평가자가 하는 일: 패치를 적용하고 저장소의 테스트 묶음(test suite)을 실행합니다. 이때 패치는 FAIL_TO_PASS 테스트(이전에는 실패했지만 이제는 통과해야 하는 테스트)를 뒤집어야 하며, 동시에 PASS_TO_PASS 테스트(이미 통과하던 테스트)는 깨뜨리지 않아야 합니다.

SWE-agent(Yang et al., 2024)는 공개 당시 12.5%를 기록했습니다. 이는 모델이 이해할 수 있는 파일 편집 명령(file editor commands)과 검색 문법 등, 에이전트와 컴퓨터 사이의 상호작용 방식(agent-computer interface)을 강조한 결과였습니다.

SWE-bench Verified

OpenAI가 2024년 8월에 공개했습니다. 사람이 직접 선별한 500개 task로 구성된 부분집합(subset)입니다. 모호한 이슈, 신뢰할 수 없는 테스트, 수정 방향이 불분명한 task를 제거합니다. "에이전트가 실제로 출시 가능한 패치를 만들어내는가?"를 평가하는 주된 벤치마크입니다.

오염(Contamination)

  • SWE-bench 이슈의 94% 이상이 대부분의 모델 학습 컷오프(cutoff) 이전에 작성된 것입니다.
  • SWE-bench+는 성공한 패치 중 32.67%가 이슈 본문 안에 정답이 누출(leak)되어 있었음을 발견했습니다. 즉, 모델이 설명 안에서 이미 수정 방법을 본 셈입니다. 또한 31.08%는 테스트 커버리지(test coverage)가 약해 의심스러운 것으로 분류되었습니다.
  • Verified는 이보다 깨끗하지만, 오염이 전혀 없는 상태(contamination-free)는 아닙니다.

실무적인 의미는 이렇습니다. SWE-bench에서 50%를 기록한 모델이 SWE-bench+에서는 35%를 기록할 수 있습니다. SWE-bench 성능을 주장할 때는 항상 두 점수를 함께 보고해야 합니다.

GAIA (Mialon et al., Nov 2023)

  • 총 466개 질문이며, huggingface.co/gaia-benchmark의 비공개 리더보드(private leaderboard)용으로 300개가 보존됩니다.
  • 설계 철학은 "사람에게는 개념적으로 쉽지만(92%), AI에게는 어렵다(플러그인을 사용한 GPT-4 기준 15%)"입니다.
  • 추론, 멀티모달(multi-modality), 웹, 도구 사용을 평가합니다.
  • 세 단계 난이도를 가지며, Level 3는 여러 모달리티(modality)를 가로지르는 긴 도구 호출 사슬(tool chain)을 요구합니다.

GAIA는 "다재다능한 능력(generalist capability)"을 측정하고 싶을 때 실행하는 벤치마크입니다. 코드 특화 벤치마크와 혼동하지 않도록 주의해야 합니다.

AgentBench (Liu et al., ICLR 2024)

  • 코드(Bash, DB, KG), 게임(Alfworld, LTP), 웹(WebShop, Mind2Web), 그리고 자유 형식 생성(open-ended generation)을 아우르는 8개 환경으로 구성됩니다.
  • 다중 턴(multi-turn) 방식이며, 분할(split)당 약 4k–13k 턴(turn)이 소요됩니다.
  • 주요 발견은, 오픈소스 LLM이 상용 모델을 따라잡지 못하는 주된 걸림돌이 장기 추론(long-term reasoning), 의사결정(decision-making), 지시 수행(instruction following)이라는 점입니다.

이들이 측정하지 않는 것

  • 실제 운영 비용(토큰(token), 실제 소요 시간(wall-clock)).
  • 적대적 조건에서의 안전 동작.
  • 여러분의 도메인에서의 성능(이 부분은 자체 평가(eval)를 만들어야 하며, 30강에서 다룹니다).
  • 꼬리 실패(tail failures). 벤치마크는 평균값을 내놓지만, 실제 운영자는 최악의 1%를 신경 씁니다.

벤치마킹이 잘못되는 지점

  • 단일 숫자에 대한 집착(single-number fixation). SWE-bench 50%라는 값은 P50/P75/P95 비용과 단계 분포(step distribution)에 비하면 정보량이 훨씬 적습니다.
  • 오염된 주장(contaminated claims). Verified나 SWE-bench+를 언급하지 않은 채 SWE-bench 점수만 보고하면 오해를 일으킵니다.
  • 벤치마크 자체를 개발 목표로 삼는 것(benchmark-as-development-target). 벤치마크에 과도하게 최적화하면 실제 프로덕션에서의 유용성과 멀어지게 됩니다.

만들어보기

code/main.py는 SWE-bench를 본뜬 작은 평가 장치(harness)를 구현합니다.

  • 합성된 버그 수정(bug-fix) task 3개.
  • 패치를 제안하는 스크립트형 "에이전트".
  • FAIL_TO_PASS(버그가 이제 고쳐졌는가)와 PASS_TO_PASS(기존 동작을 깨뜨리지 않았는가)를 확인하는 테스트 실행기(test runner).
  • 질문 분해 깊이를 기준으로 한 GAIA 스타일 난이도 분류기.

다음과 같이 실행합니다.

python3 code/main.py

출력은 task별 해결률(resolution rate)과 난이도별 결과를 보여 주며, 평가자 규칙을 구체적으로 체감하게 해 줍니다.

사용해보기

  • SWE-bench Verified는 코드 에이전트를 평가할 때 사용합니다. 항상 Verified 점수를 함께 보고합니다.
  • GAIA는 다재다능한 에이전트(generalist agent) 평가에 사용합니다. 비공개 리더보드 분할(private leaderboard split)을 사용합니다.
  • AgentBench는 다중 환경 비교(multi-environment comparison)에 사용합니다.
  • 자체 평가(custom evals)는 여러분 제품의 실제 모양에 맞춘 평가로, 30강에서 다룹니다.

산출물 만들기

outputs/skill-benchmark-harness.md는 임의의 코드베이스–task 쌍에 대해 FAIL_TO_PASS / PASS_TO_PASS 게이트를 갖춘 SWE-bench 스타일의 평가 장치를 만들어 줍니다.

연습문제

  1. (쉬움) 작은 평가 장치를 실제 저장소 하나에 옮겨 보세요. 알고 있는 버그에 대한 FAIL_TO_PASS 테스트 3개를 작성해 보세요.
  2. (중간) 단계 수(step-count) 지표를 추가해 보세요. 3개 task에서 해결당 평균 에이전트 단계 수는 몇 번인가요?
  3. (중간) SWE-bench+ 논문을 읽어 보세요. 정답 누출(solution-leakage) 검사를 구현해 보세요(이슈 본문과 디프(diff)를 패턴 매칭(pattern-match)합니다).
  4. (어려움) 공개 분할(public split)에서 GAIA 질문 하나를 내려받으세요. GPT-4급 에이전트가 어떻게 해결할지 추적(trace)해 보세요. 어떤 도구가 필요한가요?
  5. (어려움) AgentBench의 환경별 분석(breakdown)을 읽어 보세요. 여러분의 제품 영역과 가장 닮은 환경은 무엇이며, 그 환경에서 SOTA는 어떤 모습인가요?

핵심 용어

용어흔한 설명실제 의미
SWE-bench"코드 에이전트 벤치마크(code agent benchmark)"2,294개의 GitHub 이슈로 구성되며, 패치는 FAIL_TO_PASS 테스트를 뒤집어야 한다.
SWE-bench Verified"깨끗한 SWE-bench"OpenAI가 사람의 손으로 선별한 500개 task.
FAIL_TO_PASS"수정 게이트(fix gate)"이전에는 실패했지만 패치 후 통과해야 하는 테스트.
PASS_TO_PASS"회귀 방지 게이트(no-regression gate)"이전에 통과했고, 패치 후에도 여전히 통과해야 하는 테스트.
GAIA"다재다능한 벤치마크(generalist benchmark)"사람에게는 쉽고 AI에게는 어려운 466개의 다중 도구(multi-tool) 질문.
AgentBench"다중 환경 벤치마크(multi-env benchmark)"8개 환경에 걸친 장기 다중 턴(long-horizon multi-turn) 벤치마크.
오염(Contamination)"학습 데이터 누출(training-set leak)"벤치마크 task가 모델 학습 데이터에 포함된 상태.
SWE-bench+"오염 감사(contamination audit)"성공한 SWE-bench 패치 중 32.67%에서 정답 누출(solution leakage)을 발견.

더 읽을거리

실습 코드

이 강의의 실습 코드 1개

main
Code

산출물

이 강의에서 생성된 프롬프트, 스킬, 코드 산출물 1개

benchmark-harness

Build a SWE-bench-style harness for a codebase with FAIL_TO_PASS / PASS_TO_PASS gating, contamination checks, and step-count metrics.

Skill

확인 문제

3문제 · 모두 맞추면 완료 표시가 가능합니다

1.SWE-bench+는 성공한 패치의 32.67%에서 정답 누출(solution leakage)을 발견했습니다. 이것은 SWE-bench 점수 해석에 무엇을 의미하나요?

2.AgentBench는 8개 환경에서 테스트합니다. 오픈소스 LLM의 주된 걸림돌(blocker)로 무엇을 발견했나요?

3.SWE-bench, GAIA, AgentBench가 측정하지 않는 중요한 측면은 무엇인가요?

0/3 답변 완료

추가 문제 풀기

AI가 강의 내용을 바탕으로 새로운 문제를 생성합니다