블로그

AI 코딩 벤치마크를 읽고 논문상의 승자를 선택하지 않는 방법

Markdown

HumanEval과 SWE-bench가 무엇을 측정하는지, AI 코딩 순위를 읽을 때 에이전트 래퍼, 조건, 작업의 최신성, 편차, 비용을 어떻게 고려해야 하는지 설명합니다.

전체 글 읽기

요약하면, “작업의 76퍼센트를 해결한다”라는 수치만으로는 거의 아무것도 알 수 없습니다. 그 수치를 만든 작업 세트가 무엇인지, 어떤 모델과 에이전트 래퍼를 함께 평가했는지, 작업이 최신인지 오래됐는지, 비용이 얼마나 들었는지가 중요합니다. 이런 조건이 없으면 그 비율은 광고 문구로는 쓸 만해도 도구를 선택하는 데는 도움이 되지 않습니다.

이제 코딩 분야의 주요 벤치마크 두 가지가 무엇을 측정하는지, 표에서 어떤 함정이 숨어 있는지, 순위를 신뢰하기 전에 1분 만에 확인하는 방법을 쉽게 설명하겠습니다. 아래에서는 과거 벤치마크 정의를 설명합니다. 현재의 쌍별 순위 스냅샷은 제시하지 않으며 점수·비용 비교에는 별도로 연결된 표, 날짜, 설정이 필요합니다.

모델 활용에 관한 자세한 내용은 Ailoot 문서에서 확인하세요.

벤치마크 백분율은 실제로 무엇을 보여 주나요?

핵심 요점

벤치마크 백분율은 특정 조건에서 도구가 특정 작업 세트의 작업 중 작동하는 결과를 내며 완료한 비율입니다. 작업은 자동화 테스트로 확인합니다. 코드는 테스트를 통과하거나 통과하지 못할 뿐이며, 평가는 객관적이고 “어느 정도”라는 판정은 없습니다. 하지만 작업 세트는 언제나 범위가 좁고 미리 공개되어 있으며, 측정 조건은 평가마다 다릅니다. 따라서 이 수치는 “이 도구가 이런 방식으로 이 작업들을 몇 개나 해결했는가?”라는 질문에 답합니다. “내 일을 처리할 수 있을까?”라는 질문에는 답하지 않습니다.

벤치마크의 작동 방식은 간단합니다. 미리 준비된 프로그래밍 작업 목록이 있습니다. 도구에 작업을 하나씩 주면 도구가 코드를 반환하고, 시스템이 자동화 테스트를 실행해 해결책이 작동하는지 확인합니다. 테스트를 통과한 작업의 비율이 표에 표시됩니다.

장점은 평가가 객관적이라는 것입니다. 테스트는 통과하거나 실패합니다. 누군가가 “눈대중”으로 점수를 주지 않습니다. 이런 면에서 벤치마크는 어떤 리뷰나 사용 후기보다 더 믿을 만합니다.

단점도 바로 이와 같습니다. 작업 세트는 한정되어 있고, 모델을 학습시키는 사람들을 포함해 모두가 미리 알고 있습니다. 측정마다 조건도 다릅니다. 그리고 세트에 들어 있는 작업은 여러분이 하는 일과 거의 확실히 다릅니다. 아래에서 설명할 함정은 모두 여기서 비롯됩니다. 백분율은 다른 사람의 폐쇄된 작업 목록에서 도구가 보인 동작을 나타낼 뿐, 여러분의 프로젝트에 그대로 적용되지 않습니다.

HumanEval은 무엇을 측정하며, 왜 이제는 이것만 보고 선택할 수 없나요?

핵심 요점

HumanEval은 작은 Python 작업 164개로 이루어진 오래된 세트입니다. 모델에 함수 설명을 주면 코드를 작성하고, 자동화 테스트가 작업을 확인합니다. 2021년에 공개됐을 때 첫 Codex는 한 번의 시도로 작업의 28.8퍼센트를 해결했습니다. 오늘날 강력한 모델들은 거의 모든 작업을 완료하므로 더 이상 모델을 구분하지 못합니다. 게다가 작업은 장난감 수준의 문제입니다. 설명에 따라 함수 하나를 작성하는 일은 규모가 크고 실제로 운영 중인 프로젝트에서 작업하는 것과 거리가 멉니다. 2026년에 HumanEval 점수가 높다는 것은 거의 아무 의미가 없습니다.

HumanEval은 OpenAI가 만들었으며 Codex 모델과 함께 2021년에 공개했습니다. 작은 Python 작업 164개가 들어 있습니다. 모델에 함수 설명을 글로 제공하면 모델이 함수 본문을 작성하고, 자동화 테스트 모음이 올바르게 작동하는지 확인합니다.

당시에는 모델을 구별하는 좋은 기준이었습니다. 저자들은 자신들의 논문에서 다음 수치를 제시했습니다. 첫 Codex는 한 번의 시도로 작업의 28.8퍼센트를 해결했지만, 일반 GPT-3는 하나도 해결하지 못했습니다.

HumanEval에서 우리 모델은 문제의 28.8퍼센트를 해결하지만, GPT-3는 0퍼센트, GPT-J는 11.4퍼센트를 해결합니다.

— OpenAI, 논문 “Evaluating Large Language Models Trained on Code,”

그 후 모델은 발전했고, 오늘날 강력한 모델들은 HumanEval의 거의 모든 작업을 완료합니다. 모두가 100퍼센트에 가까운 점수를 받으면 표는 더 이상 차이를 보여 주지 못합니다. 도구 간의 차이가 사라집니다. 이를 벤치마크 포화라고 하며 HumanEval은 오래전부터 그런 상태였습니다.

두 번째 결함은 더 심각합니다. 작업이 아주 작습니다. 설명을 보고 함수 하나를 작성하는 수준입니다. 실제 업무는 다릅니다. 이력이 있는 대규모 프로젝트를 다루며 다른 사람이 작성한 코드를 이해하고, 결함을 찾고, 주변 코드를 망가뜨리지 않아야 합니다. “처음부터 함수 작성하기”와 “운영 중인 프로젝트의 버그 수정하기” 사이에는 큰 간극이 있습니다. 따라서 오늘날 HumanEval 점수가 높다는 것은 도구를 선택할 이유가 아닙니다. “기본기는 갖췄다”는 표시 정도에 가깝습니다.

SWE-bench는 무엇을 측정하며, 어떻게 실제 업무에 더 가까운가요?

핵심 요점

SWE-bench는 인기 있는 GitHub 프로젝트에서 발견된 실제 결함을 바탕으로 만들어졌습니다. Python 저장소 12곳에서 가져온 작업 2,294개로 구성됩니다. 도구에 문제 설명을 제공하면 코드를 수정하고, 시스템은 변경 전에는 실패했고 수정 후에는 통과해야 하는 테스트를 실행합니다. HumanEval보다 실제 업무에 훨씬 가까우므로 진지한 도구를 비교할 때 사용됩니다. 이 벤치마크의 역사만 봐도 난이도가 분명합니다. 최초의 단순한 접근 방식은 작업의 2퍼센트 미만을 해결했습니다.

SWE-bench는 근본적으로 다르기 때문에 더 흥미롭습니다. 인기 있는 GitHub 프로젝트의 실제 이슈와 pull request를 바탕으로 만들어졌습니다. 저자들에 따르면 Python 대형 저장소 12곳의 작업 2,294개로 구성되며, 2023년 10월에 공개됐습니다.

평가 방식은 객관적입니다. 실제 결함이 있었던 프로젝트 시점과 당시 실패했던 테스트 모음을 가져옵니다. 도구에 문제 설명을 제공하고 코드를 수정하게 합니다. 그런 다음 같은 테스트를 실행합니다. 테스트가 통과하면 작업을 실제로 해결한 것입니다. 여기서는 말로 한 약속을 믿지 않습니다.

인기 있는 Python 저장소 12곳의 pull request와 issue를 살펴 작업 2,294개를 모았습니다. 각 작업은 이슈와 연결되어 있고 테스트 관련 파일을 하나 이상 변경하는 pull request를 기반으로 합니다.

— SWE-bench, 공식 벤치마크 웹사이트

초기 수치를 보면 장난감 수준의 작업보다 얼마나 어려운지 알 수 있습니다. 최초의 기준 접근 방식은 SWE-bench에서 겨우 1.96퍼센트를 기록했고, 최초의 에이전트는 12.47퍼센트를 기록했습니다. 다시 말해 실제 코딩 업무에 가까워지는 것조차 어려웠습니다. 이후 비율이 높아졌지만 출발점은 거의 0에 가까웠습니다.

그러므로 오늘날 AI 코딩 에이전트 순위에서 큰 수치를 보면 대부분 SWE-bench 또는 사람이 검증한 작업 500개의 하위 세트인 SWE-bench Verified에서 나온 것입니다. 합리적인 벤치마크입니다. 하지만 이것도 조건을 함께 보지 않으면 백분율이 오해를 부릅니다. 다음으로 그 점을 살펴보겠습니다.

표에서 가장 정직한 벤치마크조차 여러분의 프로젝트에서 얻은 결과는 아닙니다. 결과는 도구를 어떻게 사용하는지에 따라 달라지고, 순위의 맨 윗줄은 그다지 많은 것을 결정하지 않습니다. 신뢰할 만한 작업을 위해 중요한 것은 조합입니다. AI 클론, Second Brain, 컨텍스트 엔지니어링입니다. 깔끔한 컨텍스트는 표에서 모델 하나를 고르는 것보다 개인의 성공률을 훨씬 더 크게 높여 줍니다.

같은 모델이 다른 백분율을 보이는 이유는 무엇인가요?

핵심 요점

결과는 모델만으로 결정되지 않기 때문입니다. 측정에는 적어도 세 가지가 관여합니다. 모델 자체, 모델을 둘러싼 에이전트 래퍼, 활성화된 추론 수준입니다. 추론 설정을 바꾸면 같은 모델과 래퍼에도 다른 행이 생길 수 있습니다. 실행 도구 이름, 리비전, 설정, 날짜가 있는 출처 없이는 수치 비교를 뒷받침할 수 없습니다. 따라서 전체 조합을 비교해야 하며, 모델 브랜드만으로는 많은 것이 결정되지 않습니다.

가장 흔한 벤치마크 해석 오류는 바로 여기서 생깁니다. 사람들은 표를 모델 순위로 읽습니다. 이 모델이 저 모델보다 2퍼센트 더 똑똑하다는 식입니다. 하지만 백분율에 영향을 미치는 것은 세 가지이고, 그중 모델은 하나일 뿐입니다.

첫째는 모델 자체입니다. 둘째는 모델을 둘러싼 에이전트 래퍼입니다. 모델이 파일을 탐색하고, 명령을 실행하고, 오류를 읽고, 코드를 다시 작성하도록 해 주는 프로그램입니다. 같은 모델이라도 똑똑한 래퍼와 단순한 래퍼에서 결과가 다릅니다. 래퍼가 모델의 프로젝트 작업 방식을 결정하기 때문입니다. 셋째는 추론 수준, 즉 모델이 각 단계를 얼마나 깊이 생각하는가입니다. 생각하는 시간이 길수록 대체로 백분율은 높아지고 비용도 커집니다.

재현 가능한 비교는 전체 설정을 보존해야 합니다. 다음은 실측 순위가 아닌 보고 템플릿입니다.

항목실행 A실행 B
모델과 정확한 버전시험 버전 기록통제 비교라면 동일 버전
에이전트 실행 도구와 리비전저장소와 커밋 기록동일 도구와 커밋
과제 집합과 채점부분집합과 평가 리비전 기록동일 과제와 채점
추론 설정설정 A 기록설정 B 기록
결과와 증거해결 수, 분모, 로그, 날짜해결 수, 분모, 로그, 날짜

이렇게 변경 변수와 추론 설정 분리 여부를 확인할 수 있습니다. 앞의 출처 없는 수치 예시는 실측 결과로 다루지 않습니다.

규칙은 이렇습니다. 좋은 순위표는 어떤 모델, 어떤 래퍼, 어떤 추론 수준을 사용했는지 항상 명시합니다. 표에 모델 이름과 백분율만 있고 래퍼가 명시되지 않았다면 신뢰하기 어렵습니다. 실제로 무엇을 측정했는지 알 수 없기 때문입니다. “모델과 래퍼” 조합을 구성하는 요소에 대한 자세한 설명은 AI 코딩 에이전트 순위 문서에서 확인할 수 있습니다.

이 때문에 최고 점수를 받은 도구가 여러분에게는 어려움을 겪기도 합니다. 벤치마크는 다른 사람이 다듬은 래퍼 안에서 다른 사람의 작업을 수행하는 모델을 측정합니다. 여러분의 래퍼와 프로젝트, 모델에 제공하는 컨텍스트는 다릅니다. 여러분의 프로젝트에서는 컨텍스트에 따라 결과가 달라집니다. 표의 행은 부차적입니다.

작업이 “만료”되는 이유와 학습 데이터 누출은 무엇인가요?

핵심 요점

모델은 인터넷에서 수집한 방대한 텍스트와 코드로 학습하고, 인기 있는 벤치마크는 공개되어 있습니다. 작업과 해답이 학습 데이터에 포함되었다면 모델은 이를 기억한 뒤 평가 중 실제로 해결하는 대신 기억한 내용을 그대로 재현할 수 있습니다. 이를 학습 데이터에 작업이 누출된 것이라고 합니다. 세트가 오래되고 널리 알려져 있을수록 위험이 큽니다. 오래된 벤치마크는 추론 능력보다 모델의 기억력을 보여 줄 가능성이 높습니다. 최신의 비공개 작업 세트가 오래되고 공개된 세트보다 신뢰할 만합니다.

수치 자체로는 보이지 않지만 그 수치를 무엇보다 크게 훼손하는 함정이 있습니다. 모델은 인터넷에서 수집한 방대한 텍스트와 코드로 학습합니다. 그리고 코딩 벤치마크는 거의 모두 공개되어 있습니다. 작업, 테스트, 기준 해답까지 공개됩니다.

작동 원리는 간단합니다. 작업과 올바른 해답이 학습 데이터에 들어갔다면 모델이 이를 기억했을 수 있습니다. 평가 중 모델은 작업을 직접 해결하기보다 기억에서 익숙한 답을 꺼내는 셈입니다. 해결한 것처럼 보이지만 실제로는 기억한 내용일 뿐입니다. 이를 학습 누출 또는 데이터 오염이라고 합니다.

작업 세트가 오래되고 인기가 많을수록 위험도 커집니다. HumanEval은 2021년부터 온라인에 공개되어 있었습니다. 여러 차례 다시 작성되고 분석됐으며 수많은 데이터 세트에 포함됐습니다. 최신 모델이 이를 “접해 보지 않았다”고 기대하기는 어렵습니다. 그래서 작업의 최신성은 벤치마크의 별도 품질 지표입니다. 좋은 세트는 정기적으로 업데이트하거나 일부 작업을 비공개로 유지해 사전에 학습할 수 없게 합니다.

순위를 읽을 때 무엇을 해야 할까요? 작업 날짜와 세트가 업데이트되는지 확인하세요. 최근 몇 달 사이의 새로운 결함으로 만든 벤치마크라면 더 신뢰할 만합니다. 5년 전 작업 세트라면 높은 백분율은 새로운 작업을 해결하는 능력보다 모델의 좋은 기억력을 더 잘 보여 줍니다. 이 효과는 의도적으로 새로운 작업을 사용한 최신 FrontierCode 벤치마크 문서에서 구체적인 사례로 확인할 수 있습니다.

몇 퍼센트포인트 차이가 별 의미가 없는 경우가 많은 이유는 무엇인가요?

핵심 요점

벤치마크에는 편차가 있습니다. 모델이 매번 똑같이 답하지 않으므로 같은 작업에서 같은 도구를 실행해도 결과가 조금씩 달라집니다. 따라서 순위표에서 이웃한 행의 차이가 1~2포인트라면 흔히 잡음에 묻히며 실제 우위를 뜻하지 않습니다. 가격도 따로 확인하세요. 비슷한 백분율이라도 비용은 몇 배씩 차이 날 수 있습니다. 두 전체 설정, 성공률, 과금 가정, 비용 분모가 명시된 경우에만 비용을 비교하세요.

표의 맨 윗자리가 오해를 부르는 또 다른 이유는 모델이 매번 똑같이 답하지 않기 때문입니다. 같은 프롬프트에도 약간 다른 추론 경로를 택할 수 있습니다. 따라서 한 작업 세트에서 도구 하나를 여러 번 실행하면 실행마다 백분율이 조금씩 달라집니다. 이 변동을 편차라고 합니다.

실무적인 결론은 간단합니다. 순위표의 두 행이 1~2퍼센트 차이라면 그 차이는 잡음일 수도 있습니다. “2퍼센트 더 높은” 도구를 쫓는 것은 어리석습니다. 다음 실행에서 순위가 쉽게 뒤바뀔 수 있습니다. 차이가 크고 많은 작업에서 일관되게 유지될 때 유의미하다고 볼 수 있습니다. 몇 포인트 차이는 그 기준에 미치지 못합니다.

마지막으로, 거의 언제나 백분율 자체보다 중요한 것은 가격입니다. 비슷한 결과에도 비용은 크게 다를 수 있습니다. 비용 비교에는 두 모델·실행 도구 구성과 실패를 포함한 평가 전체 지출이 필요합니다. 시도 수로 나누면 시도당, 해결 수로 나누면 해결 작업당 비용이므로 분모를 표시하세요. 이 글에는 출처 있는 쌍별 비용 실측이 없습니다. 그러므로 순위표의 각 행은 항상 가격과 함께 읽으세요. 백분율만으로는 의미가 거의 없습니다. 해결한 작업 하나의 비용 문서에서는 비용을 기준으로 도구를 공정하게 비교하는 방법을 설명합니다.

1분 만에 벤치마크 표를 읽는 방법은 무엇인가요?

핵심 요점

순위를 신뢰하기 전에 다음 일곱 가지를 물어보세요. 어떤 작업 세트인가? 작업은 최신인가 오래됐는가? 어떤 모델인가? 어떤 에이전트 래퍼인가? 어떤 추론 수준인가? 작업당 비용은 얼마인가? 편차는 어느 정도인가? 표가 이 질문의 절반 이상에 답하지 못한다면 신뢰할 수 없습니다. 광고일 가능성이 높습니다. 또한 세트의 작업이 실제 업무와 비슷한지도 별도로 확인하세요. 다른 사람의 작업에서 얻은 정직한 백분율조차 여러분의 프로젝트에 그대로 적용되지 않기 때문입니다.

이제 내용을 짧은 체크리스트로 정리해 보겠습니다. 순위표를 열고 다음 일곱 항목을 차례로 확인하세요.

  1. 어떤 작업 세트인가? 오늘날 HumanEval은 약하고 SWE-bench는 실제 업무에 더 가깝습니다. 세트 이름조차 나오지 않으면 더 읽을 필요가 없습니다.
  2. 작업은 최신인가 오래됐는가? 최신이거나 일부가 비공개인 세트가 모델이 이미 학습했을 수 있는 오래된 공개 세트보다 신뢰할 만합니다.
  3. 어떤 모델을 측정했는가? 막연한 “AI”나 모델 계열 이름이 아니라 정확한 이름과 버전을 확인하세요.
  4. 어떤 에이전트 래퍼인가? 백분율은 “모델과 래퍼” 조합에 해당합니다. 래퍼가 명시되지 않았다면 무엇을 측정했는지 알 수 없습니다.
  5. 어떤 추론 수준인가? 같은 모델이라도 수준에 따라 백분율과 비용이 달라집니다.
  6. 작업 하나의 비용은 얼마인가? 비슷한 결과라도 가격이 몇 배씩 차이 날 수 있습니다. 백분율을 비용과 함께 읽으세요.
  7. 편차는 어느 정도인가? 행 사이의 1~2포인트 차이는 흔히 잡음일 뿐입니다.

여덟 번째 질문은 여러분에게 해당합니다. 세트의 작업이 여러분의 업무와 비슷한가요? Python 작업 벤치마크는 다른 도구로 웹사이트나 봇을 만드는 사람에게 별 의미가 없습니다. 다른 사람의 작업에서 얻은 정직한 수치도 여러분의 프로젝트에서 좋은 결과를 보장하지 않습니다. 확인하는 유일하게 믿을 만한 방법은 평소에 하는 작업 몇 가지를 도구에 맡기고 결과를 직접 살펴보는 것입니다. 직접 프로그래밍하지 않더라도 코드가 작동하는지 확인하는 방법은 AI 생성 코드 확인하기 문서에서 설명합니다.

결국 무엇을 살펴봐야 하나요?

핵심 요점

순위 맨 윗줄만 보지 말고 그 아래의 조건을 살펴보세요. 작업 세트와 최신성, “모델과 래퍼” 조합, 추론 수준, 작업당 비용, 편차의 크기를 확인해야 합니다. 이런 조건이 없는 수치는 아무것도 증명하지 못합니다. 그리고 다른 사람의 작업에서 얻은 정직한 백분율도 여러분의 프로젝트에 그대로 적용되지 않는다는 점을 기억하세요. 최종 판단은 언제나 여러분의 실제 작업을 시험해 본 결과에 달려 있으며, 그 결과는 순위보다 도구를 어떻게 사용하는지에 더 큰 영향을 받습니다.

이 글 전체의 핵심은 간단합니다. 순위에 오른 것은 도구를 더 자세히 살펴볼 이유일 뿐, 나머지는 직접 확인해야 합니다. 높은 수치는 특정 조건에서 특정 도구가 특정한 폐쇄형 작업 목록을 꽤 잘 처리했다는 뜻일 뿐입니다. 그 조건이 여러분의 상황과 맞는지는 백분율로 알 수 없습니다.

그러니 순위 행 아래의 정보를 읽으세요. 어떤 작업인지, 얼마나 최신인지, 어떤 모델과 래퍼를 조합했는지, 추론 수준은 무엇인지, 비용은 얼마인지, 차이가 잡음에 묻히는지 확인하세요. 이런 질문에 답하지 못하는 표는 광고 문구에나 어울립니다. 2026년에 어떤 코딩 도구를 사용할까 리뷰에서는 애초에 여러분의 작업에 어떤 도구를 선택할지 설명합니다.

그리고 어떤 벤치마크보다 중요한 것이 있습니다. 순위에서 가장 좋은 도구도 컨텍스트가 뒤죽박죽이면 고전하고, 컨텍스트가 깔끔하면 잘 작동합니다. 개인의 성공률은 모델에 무엇을 제공하고 작업을 어떻게 설정하는지에 달려 있습니다. 표의 행은 부차적입니다. 순위는 명백히 약한 선택지를 걸러내는 데 도움을 주지만, 결과를 만드는 것은 여러분입니다.

출처

순위에 오른 것은 약한 선택지를 제외하는 데 도움이 되지만, 여러분의 프로젝트에서 결과를 좌우하는 것은 방법입니다. AI 클론 + Second Brain + 컨텍스트 엔지니어링.

다음 작업은 Ailoot에서 이어 가세요.

자세히 보기

AI 코딩 벤치마크를 읽고 논문상의 승자를 선택하지 않는 방법: 자주 묻는 질문

벤치마크 두 행을 비교하기 전에 무엇을 기록하나요?

정확한 모델, 실행 도구와 리비전, 추론 설정, 과제 부분집합, 채점 방식, 날짜, 직접 결과 출처를 기록하세요. 없으면 점수 차이를 한 설정 변경에 돌릴 수 없습니다.

시도당 비용과 해결 작업당 비용은 같은 건가요?

아닙니다. 평가 총지출을 모든 시도 수로 나누면 전자, 해결 작업 수로 나누면 후자입니다. 실패 지출을 포함하고 가격 비교 전에 분모를 표시하세요.

모든 글