Executive Summary
2026년 2월, OpenAI는 자사가 2년 전 공개해 업계 표준으로 자리잡은 코딩 벤치마크 SWE-bench Verified를 더 이상 최전선 역량의 척도로 쓰지 않겠다고 밝혔다. 오염을 지적한 쪽이 제3자 연구자가 아니라 벤치마크를 만든 당사자라는 점에서 이 발표는 이례적이다. OpenAI는 왜, 무엇을 근거로 자기 시험지를 스스로 폐기했을까.
직접 원인은 두 가지가 겹쳤다. 하나는 포화다. 최근 6개월간 최고 점수가 74.9%에서 80.9%로만 올라, 남은 실패가 모델의 한계인지 데이터셋의 결함인지 구분할 수 없게 됐다. 다른 하나는 오염이다. OpenAI가 어려운 문제 138개를 감사하자 59.4%에서 테스트 설계 자체의 결함이 나왔고, GPT-5.2가 "거의 풀 수 없는" 과제를 풀어낸 사례에서는 문제 설명에 없는 정답을 이미 본 정황이 드러났다.
데이터 품질을 다루는 실무자에게 이 사건은 하나의 질문으로 번역된다. 평가 데이터가 오염되지 않았음을 어떻게 증명하는가. 그리고 코딩 벤치마크는 왜 유독 오염에 취약하며, 오염되지 않은 평가셋을 계속 길어 올리려면 무엇을 관리해야 하는가.
은퇴 결정을 떠받친 근거는 네 개의 숫자로 압축된다. 점수는 좁은 구간에서 포화됐고, 정작 어려운 문제의 절반 이상은 채점 기준 자체가 결함이었으며, 그 결함의 상당수는 정답을 좁게 강제하는 테스트였고, 일부 과제에서는 모델이 정답을 미리 본 정황까지 드러났다.
74.9→80.9%
6개월 포화
SOTA 점수가 좁은 폭에서 정체
59.4%
감사 문제 중 결함
138개 문제 중 테스트·설명 결함
35.5%
협소 테스트
정답이어도 기각되는 좁은 채점
31개
오염 정황 과제
GPT-5.2가 '거의 불가능'에서 풀어냄
벤치마크를 만든 회사가 그것을 버렸다
SWE-bench Verified는 코딩 에이전트의 실력을 재는 사실상의 표준 시험지였다. 실제 오픈소스 저장소에서 뽑은 이슈를 모델이 코드로 고쳐 내면, 저장소에 딸린 테스트가 통과하는지로 채점한다. OpenAI가 2024년에 공개한 뒤 프런티어 모델의 역량을 비교하는 공용 좌표가 됐고, OpenAI 자신도 위험 역량을 추적하는 내부 지표에 이 벤치마크를 썼다.
그런 벤치마크를 만든 회사가 2026년 2월, 이 시험지로는 더 이상 최전선 역량을 잴 수 없다고 선언했다. 표면적 신호는 포화였다. 최근 6개월간 최고 점수가 74.9%에서 80.9%로만 올랐다. 상단이 좁은 구간에서 붐비기 시작하면, 여전히 풀리지 않는 20%가 모델의 진짜 한계인지 아니면 문제 자체가 잘못 만들어진 것인지 구분할 방법이 없어진다. 점수는 오르는데 그 점수가 무엇을 뜻하는지가 흐려지는 지점이다.
▲ 페블러스 원본 도식 — SOTA 점수의 6개월 변화(74.9%→80.9%)와 남은 격차
포화만으로 벤치마크를 은퇴시키지는 않는다. OpenAI가 남은 문제들을 직접 열어 보자, 더 근본적인 두 결함이 나왔다. 채점 기준 자체가 틀린 문제들, 그리고 정답이 이미 모델의 학습 데이터에 새어 든 정황이었다.
정답이 새어 든 증거
OpenAI는 최신 모델 o3가 64회 독립 실행에서 일관되게 풀지 못한 어려운 문제 138개를 골라 감사했다. 각 문제는 숙련된 소프트웨어 엔지니어 여러 명이 교차로 검토했다. 결과는 벤치마크의 신뢰를 흔들었다. 138개 중 59.4%에서 테스트 설계나 문제 설명 자체에 결함이 있었다. 모델이 기능적으로 옳은 코드를 내놓아도, 채점 테스트가 특정 구현 방식을 강제하는 바람에 기각되는 경우였다.
그중 35.5%는 이른바 협소한 테스트였다. 문제는 "이 버그를 고쳐라"인데, 채점 테스트는 "정확히 이 방식으로 고쳐라"를 요구한다. 다른 방식으로도 버그가 해결되면 실제로는 정답인데, 테스트는 그것을 오답으로 처리한다. 이런 문제에서 낮은 점수는 모델이 못 푼 증거가 아니라 채점표가 좁았다는 증거였다.
2.1chain-of-thought에 남은 흔적
더 결정적인 정황은 오염 쪽에서 나왔다. GPT-5.2는 감사 과정에서 "거의 풀 수 없는" 것으로 분류된 과제 31개를 풀어냈다. 그중 한 Django 관련 과제에서, 채점 테스트는 문제 설명에 전혀 등장하지 않는 특정 파라미터를 요구했다. 그런데 모델의 사고 과정(chain-of-thought)에는 그 코드베이스 변경을 설명하는 릴리스 노트 정보가 이미 등장해 있었다. 문제를 추론으로 푼 것이 아니라, 정답을 어디선가 본 적이 있다는 뜻이다.
▲ 페블러스 원본 도식 — OpenAI가 감사에서 발견한 오염 경로 재구성
OpenAI는 이를 시험 전에 문제와 답을 학생들에게 나눠 주는 것에 비유했다. 그 학생은 답을 통째로 외우지 않았더라도, 답을 한 번 본 적 있다는 사실만으로 다른 학생보다 유리하다. 점수는 실력이 아니라 노출의 함수가 된다. 벤치마크가 재려던 바로 그 능력을, 벤치마크 자신이 더 이상 정직하게 재지 못하게 된 것이다.
결함 있는 테스트와 학습 데이터 오염은 서로 다른 문제다. 하나는 채점표가 틀린 것이고, 다른 하나는 답안지가 새어 나간 것이다. 그런데 둘 다 같은 결론으로 이어진다. 남은 점수 차이가 실력을 뜻한다고 더 이상 말할 수 없다는 것이다.
왜 하필 코딩 벤치마크인가
벤치마크 오염은 SWE-bench만의 사정이 아니다. MMLU나 GSM8K 같은 지식·수학 벤치마크에서도 공개된 문제와 정답이 학습 데이터에 섞여 점수를 부풀리는 일은 이미 정량으로 측정돼 있다. 그 일반적 배경은 페블러스가 앞서 정리한 벤치마크 오염 분석에서 다뤘다. 여기서는 코딩 벤치마크에만 있는 구조적 함정에 집중한다.
SWE-bench의 원천은 깃허브의 공개 저장소다. 문제도, 정답에 해당하는 실제 커밋도, 채점에 쓰는 테스트도 모두 그 저장소 안에 이미 존재한다. 그리고 바로 그 공개 저장소가 대형 모델의 사전학습 데이터원이기도 하다. 코드를 학습하려면 깃허브를 긁어야 하고, 깃허브를 긁으면 벤치마크의 정답과 테스트가 함께 딸려 온다. 학습에 쓰는 데이터와 평가에 쓰는 데이터가 같은 우물에서 나온다.
▲ 페블러스 원본 도식 — 학습 데이터와 평가 데이터가 같은 공개 저장소에서 나오는 구조
객관식 문제라면 정답이 A/B/C/D 중 하나라 노출 여부를 그나마 가늠할 수 있다. 코드 저장소는 다르다. 이슈, 풀 리퀘스트, 커밋 메시지, 릴리스 노트, 코드 리뷰 토론이 하나의 맥락으로 얽혀 있어서, 문제 설명에 없는 정보가 저장소 다른 구석에는 흩어져 있다. 앞의 Django 사례에서 릴리스 노트가 정답을 흘린 것처럼, 코딩 벤치마크는 정답 하나가 아니라 정답을 둘러싼 맥락 전체가 학습 데이터에 새어 들 수 있다.
탐지는 되는데 왜 못 고치나
오염을 사후에 감지하는 기술은 오히려 정교해지고 있다. ICML 2025에서 제안된 KDS(Kernel Divergence Score)가 한 예다. 이 방법은 모델을 벤치마크 데이터로 잠깐 파인튜닝한 뒤, 파인튜닝 전후로 샘플 표현이 얼마나 달라졌는지를 커널 유사도로 잰다. 핵심 직관은 이렇다. 모델이 처음 보는 데이터로 파인튜닝하면 표현이 크게 흔들리지만, 이미 학습에서 본 데이터라면 거의 흔들리지 않는다. 표현이 잘 안 바뀌는 벤치마크일수록 이미 새어 든 것이라는 신호다.
▲ 페블러스 원본 도식 — KDS가 파인튜닝 전후 표현 변화로 오염 여부를 가르는 원리
통제된 오염 실험에서 KDS는 오염 수준과 거의 완벽하게 상관했고, 글자 겹침을 세는 기존 방식보다 정확했다. 즉 "이 벤치마크가 오염됐는가"라는 질문에는 점점 더 잘 답할 수 있게 됐다.
문제는 그다음이다. 오염을 탐지해도 이미 오염된 벤치마크를 되살릴 방법은 없다. 정답을 본 모델의 기억을 지울 수 없고, 한번 웹에 풀린 문제를 다시 비공개로 되돌릴 수도 없다. OpenAI에게 남은 선택지도 결국 폐기와 교체뿐이었다. 새 오염 저항 평가체계를 만드는 동안에는 다국어 태스크 1,865개로 구성된 SWE-bench Pro를 대신 쓰라고 권했다. 다만 같은 모델이라도 Verified보다 Pro에서 점수가 크게 떨어지는 것으로 보고되는데, 이 격차 자체가 Verified의 숫자에 거품이 껴 있었음을 보여 준다.
탐지 기술은 발전하지만 치료법은 없다. 오염된 벤치마크에 남는 유일한 대응은 폐기와 교체다. 그래서 오염은 사후에 잡는 것보다 애초에 새지 않게 설계하는 쪽이 훨씬 싸다.
평가 데이터에도 유통기한이 있다
데이터 품질 논의는 오랫동안 학습 데이터에 머물렀다. 라벨이 정확한가, 편향이 없는가, 출처가 분명한가. SWE-bench의 은퇴는 같은 질문을 평가 데이터로 확장하라고 요구한다. 아무리 좋은 학습 데이터로 만든 모델이라도, 그 실력을 재는 시험지가 오염됐다면 결과 숫자는 믿을 수 없기 때문이다.
페블러스 독자의 언어로 옮기면, 이것은 평가 데이터의 신선도와 출처 증명 문제다. 평가셋이 언제 만들어졌는지, 모델의 학습 컷오프와 시점이 겹치지는 않는지, 외부에 공개된 적이 있는지가 곧 그 평가의 유효기간을 결정한다. 학습 데이터에 출처와 라이선스 이력을 붙이듯, 평가 데이터에도 노출 이력을 붙여 추적해야 한다는 뜻이다.
오염되지 않은 평가셋을 계속 길어 올리려는 조직이라면 세 가지가 실무 기준이 된다. 첫째, 홀드아웃 분리다. 채점에 쓸 평가셋을 학습 파이프라인이 절대 건드리지 못하도록 물리적으로 격리한다. 둘째, 시점 관리다. 평가 문항을 모델의 학습 컷오프 이후에 만들거나 갱신해, 미리 외울 수 없게 한다. 셋째, 노출 기록이다. 어떤 평가셋이 언제 어디에 공개됐는지를 버전과 함께 남겨, 이 점수가 나온 시험지를 모델이 본 적 있는지 나중에 되짚을 수 있게 한다.
한 줄 요약. 벤치마크가 학습 데이터로 흘러 들어가는 순간, 숫자는 아무것도 측정하지 못한다. 평가 데이터에도 유통기한과 출처 증명을 붙이는 것이, 리더보드의 점수를 다시 믿을 수 있게 만드는 출발점이다.
참고문헌
공식 발표
- 1.OpenAI. (2026). "Why SWE-bench Verified no longer measures frontier coding capabilities." OpenAI. 138개 문제 감사, 59.4% 결함, GPT-5.2 오염 정황; SWE-bench Pro 권장.
업계 자료
- 2.Kili Technology. (2026). "AI Benchmarks Guide — The Top Evaluations in 2026 (and Why They're Not Enough)." Kili Technology. SWE-bench Pro 1,865개 다국어 태스크; 벤치마크 포화·실전 격차 개론.
학술 연구
- 3.Choi, H. K., Khanov, M., Wei, H., & Li, Y. (2025). "How Contaminated Is Your Benchmark? Measuring Dataset Leakage with Kernel Divergence." ICML 2025. 파인튜닝 전후 임베딩 커널 변화로 오염 측정.