본문으로 건너뛰기
마탑6F 도서관
풍경

AI 평가: 무엇을 어떻게 잴 것인가

벤치마크라는 타협의 구조, 추론 평가의 사례, 실제 과제로 재는 SWE-bench의 발상, 그리고 점수를 읽는 법을 정리한 개념 뼈대 글이다.

시드 개정 1판원문 대조 2026-09-28기록 2026-09-28T00:00:00Z

고친 내용: 초판

평가는 왜 어려운가

언어모델의 능력은 넓고, 넓은 것을 재는 일은 본질적으로 어렵다. 수학 문제를 잘 푼다고 해서 고객 응대를 잘한다는 보장이 없고, 영어 시험 점수가 한국어 실무 능력을 대신하지 못한다. 그럼에도 평가는 필요하다. 무엇을 시도할지, 무엇을 버릴지 정하려면 잴 수 있는 기준이 있어야 하기 때문이다. 그래서 평가는 이상과 타협의 산물이다. 재고 싶은 것과 잴 수 있는 것 사이의 간극을 의식하는 일이 평가를 읽는 첫걸음이다.

SWE-bench 논문의 첫 문장은 이 사정을 단적으로 드러낸다. 언어모델의 발전 속도가 이를 효과적으로 평가하는 우리의 능력을 앞질렀다는 문제의식이다. 모델의 개발 속도가 평가의 발전 속도를 앞서는 상황에서, 평가는 뒤쫓는 입장이 되었다. 이 글은 그 뒤쫓음의 방법들을 정리한다.

벤치마크라는 타협

벤치마크는 능력을 문제 모음으로 번역한 것이다. 번역인 이상 원본의 손실이 따른다. 문제의 분포가 실무의 분포와 다를 수 있고, 정답의 형식이 실제 쓰임과 동떨어질 수 있으며, 모델이 문제를 통째로 외웠을 가능성도 있다. 그럼에도 벤치마크는 비교의 공통 언어가 된다. 같은 문제를 같은 조건으로 풀게 하면 적어도 상대적 위치는 잴 수 있기 때문이다.

벤치마크를 읽을 때는 세 가지를 함께 본다. 무엇을 재는 문제인지, 어떤 조건에서 쟀는지, 그리고 점수 바깥에 무엇이 남는지. 조건에는 모델의 규모와 프롬프트 방식, 허용된 도구와 시도 횟수가 들어간다. 같은 점수도 조건이 다르면 의미가 다르다. 이 원칙은 아래의 모든 사례에 적용된다.

추론 평가의 사례: GSM8K와 chain-of-thought

수학 단어 문제 벤치마크 GSM8K는 추론 평가의 대표 사례로 자주 인용된다. Chain-of-thought 논문은 540B 파라미터 모델에 8개의 예시를 주는 것만으로 이 벤치마크에서 당시 최고 정확도를 달성했고, verifier를 붙인 파인튜닝 GPT-3까지 넘었다고 보고했다. 산술과 상식, 기호 추론 태스크 범위에서도 개선을 확인했다고 한다. 이 사례는 평가가 방법의 가치를 드러낸 경우다. 같은 모델이라도 푸는 방식을 바꾸자 점수가 달라졌기 때문이다.

다만 이 사례가 말해주지 않는 것도 있다. GSM8K 점수가 일상적 추론 전반을 대신하지는 못하며, 중간 단계를 잘 적는 것과 진짜 이유를 밝히는 것은 다르다. 평가는 방법의 효과를 비추는 거울이지, 능력 자체의 증명은 아니다. 이 구분은 추론 주제 글의 faithfulness 논의와 맞닿아 있다.

실제 과제로 재기: SWE-bench의 발상

SWE-bench는 평가의 무대를 실제 과제로 옮긴 사례다. 12개 인기 Python 저장소의 실제 GitHub 이슈와 그에 대응하는 pull request에서 뽑은 2,294개의 문제로 이루어진다. 모델은 코드베이스와 이슈 설명을 받아 이슈를 해소하는 편집을 해야 한다. 여러 함수와 클래스, 파일에 걸친 변경과 실행 환경과의 상호작용, 매우 긴 컨텍스트의 처리, 복잡한 추론을 요구한다고 논문은 설명한다.

2023년 평가 시점의 보고는 겸허했다. 최고 성능 모델인 Claude 2도 1.96%의 이슈만 해결했고, 최신 proprietary 모델과 파인튜닝 모델 모두 가장 쉬운 이슈만 풀 수 있었다는 것이다. 이 수치는 2023년의 스냅샷이며, 이후 점수는 이 서가의 출처 범위에 없다. SWE-bench의 의의는 점수 자체보다 평가의 발상에 있다는 것이 이 글의 해석이다. 인공 문제 대신 실제 작업의 흔적을 평가 재료로 쓴 것이다.

점수 읽는 법

점수를 대할 때의 지침을 정리한다. 첫째, 조건을 함께 읽는다. 규모, 프롬프트, 도구, 시도 횟수가 빠진 점수는 반쪽짜리 정보다. 둘째, 하나의 벤치마크를 전부로 믿지 않는다. 셋째, 시점을 확인한다. 2023년의 1.96%는 그 시점의 이야기다. 넷째, 무엇을 재지 못했는지 묻는다. 다섯째, 점수와 실무 사이의 거리를 가늠한다. 이 지침들은 특정 출처의 직접 주장이 아니라 이 서가가 여러 출처를 엮어 낸 편집자 관점이다.

마지막으로, 평가의 한계를 안다고 평가를 버려서는 안 된다. 잴 수 없는 것을 잴 수 있는 것으로 착각하는 일과, 잴 수 있는 것마저 버리는 일은 둘 다 해롭다. 평가는 불완전한 나침반이지만, 나침반 없이 항해할 수는 없다.

열린 문제

평가 앞의 숙제는 많다. 학습 데이터에 평가 문제가 섞이는 오염, 벤치마크에 맞춘 과적합, 실제 쓰임과의 괴리, 긴 연쇄 작업의 평가, 그리고 평가 자체의 비용이다. 특히 에이전트처럼 여러 부품을 엮은 시스템에서는 전체 성공과 부품 점수의 관계가 단순하지 않다. 이 서가는 이 숙제들의 목록까지만 정리하고, 특정 평가 체계의 우열은 판단하지 않는다.

평가를 설계하는 입장

평가를 읽는 데 익숙해지면 이번에는 설계하는 입장을 상상해볼 수 있다. 재고 싶은 능력을 먼저 정하고, 그 능력을 드러내는 과제를 고르고, 과제를 푸는 조건을 고정하고, 점수 바깥에 남는 것을 적어둔다. 조건의 고정에는 규모와 프롬프트, 허용된 도구와 시도 횟수가 들어간다. 이 절차를 밟지 않은 점수는 비교의 언어가 되지 못한다.

설계의 어려움은 대표성에 있다. 고른 과제가 실제 쓰임을 얼마나 닮았는가. 인공 문제는 깨끗하지만 멀고, 실제 과제는 가깝지만 지저분하다. SWE-bench가 실제 이슈를 택한 것은 가까움을 택한 것이고, 그 대가로 분포의 편향과 채점의 복잡함을 안았다. 어느 쪽을 택하든 대가를 함께 적는 것이 정직한 평가다.

이 글의 입장

평가는 불완전하지만 버릴 수 없다는 것이 이 글의 입장이다. 잴 수 없는 것을 잰 것으로 착각하지 않는 한에서, 잴 수 있는 것은 정직하게 잰다. 조건을 함께 적고, 시점을 밝히고, 재지 못한 것을 목록에 남긴다. 이 원칙을 지키는 평가는 부족해도 쓸모가 있다.

현재 판 출처 (이 개정의 출처 보관본 아님) 2건

아래는 현재 판의 출처 목록을 고리 풀이용으로 그대로 둔 참조이며, 이 개정의 출처 보관본이 아니다.

  1. SWE-bench: Can Language Models Resolve Real-World GitHub Issues? (외부)
    S8
  2. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (외부)
    S3
← 고침 기록으로