OpenAI가 SWE-Bench Pro를 감사한 결과는 코딩 AI 평가를 읽는 방식에 꽤 큰 경고를 던진다. SWE-Bench Pro는 실제 저장소의 기능 변경 이력을 바탕으로, 모델이 코드를 수정해 새 테스트를 통과하고 기존 기능을 깨지 않도록 요구하는 벤치마크다. SWE-bench Verified의 한계를 보완하려는 더 현실적인 평가로 여겨졌고, 731개 public split에서 frontier model의 pass rate는 8개월 만에 23.3%에서 80.3%까지 올랐다.
문제는 그 점수가 모두 모델 실력의 신호인지 확실하지 않다는 데 있다. OpenAI의 데이터포인트 분석 파이프라인은 200개 태스크, 즉 27.4%를 broken task로 표시했다. 별도의 인간 annotation 캠페인에서는 249개, 34.1%가 문제 있다고 판단됐다. 이를 바탕으로 OpenAI는 SWE-Bench Pro 태스크의 약 30%가 깨져 있을 수 있다고 추정한다.
깨진 방식은 다양하지만 공통점은 프롬프트와 테스트의 경계가 어긋난다는 것이다. hidden test가 프롬프트에 없는 조건을 요구하거나, 기능적으로 맞는 풀이 대신 특정 구현 방식만 통과시키거나, 테스트 커버리지가 낮아 불완전한 수정도 통과하는 경우가 있었다. OpenLibrary-77c16d5 사례에서는 table-of-contents 항목을 Markdown으로 렌더링하는 문제에서 프롬프트 예시는 앞 공백 하나를 보여주지만, hidden test는 두 칸을 기대했다. 모델이 설명을 충실히 따르면 오히려 오답 처리되는 구조다.
이 사례가 중요한 이유는 실제 GitHub issue와 PR이 원래 평가 문항으로 작성된 것이 아니기 때문이다. 사람 사이의 협업에서는 maintainer의 댓글, 저장소 관습, 이전 논의가 빈틈을 메운다. 하지만 벤치마크는 그 맥락을 잘라내고 독립된 문제로 만든다. 그 순간 빠진 맥락은 모델의 한계처럼 보이는 잡음이 될 수 있다.
따라서 이번 분석의 메시지는 단순히 특정 벤치마크를 깎아내리는 것이 아니다. 코딩 에이전트의 성능을 말하려면 pass rate뿐 아니라 평가 데이터의 품질도 함께 봐야 한다는 뜻이다. 실패가 정말 모델의 실패인지, 성공이 정말 완성된 구현인지, 테스트가 공정한 기준인지 확인해야 한다.
흥미로운 점은 더 강한 모델이 이 문제를 드러내는 데도 쓰이고 있다는 것이다. OpenAI는 agent-assisted audit를 통해 프롬프트, 테스트, 패치, 실패 trace를 함께 검토했다. 앞으로의 코딩 AI 평가는 모델을 시험하는 동시에, 그 모델을 재는 자 자체도 계속 검증하는 방향으로 갈 가능성이 크다.