LLM 평가: 벤치마크 · pass@k · LLM 심판 · 데이터 오염
MMLU · pass@k · SWE-bench · LLM 심판 · 데이터 오염 · 신뢰구간으로 LLM 평가를 배우는 수업
먼저 알아야 할 것
다루는 내용
LLM 평가를 정답 비교 · 실행 결과 · 판정자 세 종류로 나눠 설명합니다. MMLU와 채점 설정의 영향, HumanEval의 pass@k 불편 추정식을 손계산하고, SWE-bench 같은 실행형 평가, LLM 심판의 사람 일치율과 위치 · 장황함 · 자기 선호 편향, 13-gram 겹침으로 찾는 데이터 오염, 표본 수에 따른 신뢰구간과 나만의 평가 세트 만드는 절차를 다룹니다.
해설
LLM 평가: 벤치마크 · pass@k · LLM 심판 · 데이터 오염
"새 모델이 더 좋다"는 말은 무엇으로, 어떻게 쟀는가 가 붙어야 의미가 있습니다. 이 수업에서는 객관식 벤치마크(MMLU), 코드 실행으로 채점하는 pass@k(HumanEval), 실제 업무형 평가(SWE-bench), 사람 대신 LLM이 채점하는 'LLM 심판', 그리고 점수를 부풀리는 데이터 오염과 표본 오차를 다룹니다. 마지막에는 내 서비스용 평가 세트를 만드는 절차를 정리합니다.
| 항목 | 내용 |
|---|---|
| 참고 출처 | MMLU(arXiv 2009.03300) · Codex · HumanEval(arXiv 2107.03374) · LLM 심판 · MT-Bench(arXiv 2306.05685) · GPT-3 오염 분석(arXiv 2005.14165) · SWE-bench(arXiv 2310.06770) · lm-evaluation-harness(MIT) |
| 트랙 · 수준 | LLM 활용·에이전트 · 중급 |
| 이 수업이 다루는 범위 | 평가의 세 종류, 객관식 벤치마크, 퍼플렉서티, pass@k 공식 · 손계산, 실제 과제형 평가, LLM 심판과 편향, 데이터 오염, 표본 오차와 신뢰구간, 나만의 평가 세트 |
들어가기 전에
- 언어 모델의 기본 — 퍼플렉서티와 샘플링.
- 모델 평가와 과적합 — 학습 · 검증 · 시험 데이터를 나누는 이유. LLM 평가의 '오염' 문제가 바로 이 원칙이 깨지는 경우입니다.
- 미세조정 — 미세조정한 모델이 정말 나아졌는지 재려면 평가가 필요합니다.
한눈에 보기
- 평가를 '정답 비교 · 실행 결과 · 판정자(사람 또는 LLM)' 세 종류로 나눠 이해합니다.
- pass@k의 불편 추정식을 알고, 10번 생성해 3번 맞힌 경우 pass@1 · pass@5를 직접 계산합니다.
- LLM 심판이 사람과 얼마나 일치했고, 어떤 편향(위치 · 장황함 · 자기 선호)이 있는지 압니다.
- 데이터 오염을 어떻게 찾는지(예: 13-gram 겹침) 압니다.
- 평가 세트 크기에 따라 점수가 얼마나 흔들리는지 신뢰구간으로 계산합니다.
1. 평가의 세 종류
직관(해설용 비유). 학생 시험을 떠올립니다. ① 객관식은 답안지와 대조, ② 실기 시험은 실제로 돌아가는지 확인, ③ 논술은 채점자가 기준표를 보고 점수를 매깁니다. LLM 평가도 똑같이 세 갈래입니다.
| 종류 | 채점 방법 | 대표 예 | 장점 | 약점 |
|---|---|---|---|---|
| 정답 비교 | 정답과 일치하는지 | MMLU(객관식) | 싸고 재현 쉬움 | 실제 업무와 거리 |
| 실행 결과 | 코드 · 테스트를 실제 실행 | HumanEval, SWE-bench | 객관적, 실용적 | 환경 준비가 번거로움 |
| 판정자 | 사람 · LLM이 기준표로 채점 | MT-Bench, 사람 선호 비교 | 열린 답도 평가 | 비싸거나(사람) 편향(LLM) |
2. 객관식 벤치마크와 퍼플렉서티
MMLU(Hendrycks 외, 2020). 초등 수학, 미국사, 컴퓨터 과학, 법 등 57개 과제로 구성된 객관식 시험입니다. 논문 당시 가장 큰 GPT-3는 평균 43.9%로, 무작위(4지선다 25%)보다 약 20%p 높았지만 모든 과제에서 전문가 수준에는 크게 못 미쳤습니다.
채점 방식이 점수를 바꿉니다. 같은 객관식이라도 ① 모델이 생성한 글에서 'A/B/C/D'를 뽑을지 ② 선택지마다 로그 확률을 비교할지, 퓨샷 예시를 몇 개 넣을지에 따라 점수가 달라집니다. 그래서 공개 평가 도구(예: EleutherAI의 lm-evaluation-harness, MIT 라이선스)로 같은 설정 에서 비교하는 것이 중요합니다.
퍼플렉서티. 사전학습 모델의 기본 지표입니다. 낮을수록 다음 토큰을 잘 맞힙니다. 다만 같은 토크나이저 · 같은 데이터에서만 비교가 의미 있고, '지시를 잘 따르는가'는 알려 주지 않습니다.
3. pass@k: 코드는 돌려 보고 채점
직관. 코드는 그럴듯해 보여도 틀릴 수 있습니다. 그래서 단위 테스트를 실제로 실행해 통과하면 정답 으로 칩니다. 그리고 " 번 시도해서 한 번이라도 통과하면 성공"으로 보는 것이 pass@k입니다.
HumanEval(Chen 외, 2021). 사람이 직접 만든 프로그래밍 문제 164개로, 함수 설명(독스트링)을 주고 본문을 생성하게 한 뒤 테스트로 채점합니다. 논문에서 Codex는 문제의 28.8%를 풀었고, 문제당 100개를 샘플링하면 70.2%를 풀었습니다.
불편 추정식. 개만 뽑아 평가하면 운에 따라 크게 흔들립니다. 논문은 문제마다 개를 생성해 그중 개가 통과했을 때 다음 식으로 추정합니다.
| 기호 | 뜻 |
|---|---|
| 문제마다 생성한 샘플 수 | |
| 그중 테스트를 통과한 샘플 수 | |
| "몇 번 시도"로 볼지 | |
| 개 중 개를 뽑았는데 전부 실패작 일 확률 |
숫자로 해 보기(해설용). 한 문제에서 개를 생성해 개가 통과했습니다.
- pass@1
- pass@2
- pass@5
흔히 쓰는 근사 와 다릅니다. 근사는 '복원 추출'을 가정하지만, 실제로는 이미 만든 10개 중에서 겹치지 않게 뽑기 때문입니다(값은 파이썬으로 계산).
실제 업무형: SWE-bench. 실제 깃허브 이슈와 그 해결 PR로 만든 2,294개 과제로, 모델이 저장소 코드를 고쳐 테스트를 통과시켜야 합니다. 논문 당시 최고였던 Claude 2도 BM25 검색을 붙여 1.96%만 해결했습니다(SWE-bench 해설). 에이전트 평가가 이런 실행형으로 옮겨 가는 흐름입니다.
4. LLM 심판(LLM-as-a-judge)
왜 필요한가. "이 요약이 좋은가", "이 답이 친절한가" 같은 열린 질문은 정답이 하나가 아닙니다. 사람이 채점하면 정확하지만 비싸고 느립니다. 그래서 강한 LLM에게 기준표를 주고 채점을 맡깁니다.
결과(Zheng 외, 2023). MT-Bench와 Chatbot Arena에서 GPT-4 심판은 사람 선호와 80% 넘게 일치했고, 이는 사람끼리의 일치 수준과 같았다고 보고했습니다.
편향(같은 논문이 지적한 것).
- 위치 편향: 두 답 중 먼저(또는 나중에) 나온 쪽을 선호
- 장황함 편향: 길고 자세한 답을 더 좋게 봄
- 자기 선호: 자기가(또는 같은 계열 모델이) 쓴 답을 선호
- 제한된 추론 능력: 수학 · 논리 문제는 심판도 틀림
대응. 두 답의 순서를 바꿔 두 번 채점해 결과가 같을 때만 인정하고, 기준표를 구체적으로 주고, 정답이 있는 문제는 정답을 함께 주며, 일부는 사람이 다시 채점해 심판의 일치율을 확인합니다.
flowchart LR
Q[평가 질문] --> A1[모델 A 답]
Q --> B1[모델 B 답]
A1 --> J1[심판: A, B 순서로 채점]
B1 --> J1
A1 --> J2[심판: B, A 순서로 채점]
B1 --> J2
J1 --> C{두 판정 일치?}
J2 --> C
C -->|예| R[결과 기록]
C -->|아니오| T[무승부 처리 또는 사람 재검토]5. 데이터 오염
직관. 시험 문제가 미리 유출되어 학생이 외웠다면, 점수는 실력이 아니라 기억력을 잽니다. LLM은 인터넷 전체를 학습하므로 공개 벤치마크 문제가 학습 데이터에 섞여 들어가기 쉽습니다. 이것이 데이터 오염(data contamination) 입니다.
찾는 방법의 예(GPT-3 논문). GPT-3 논문은 시험 문제와 학습 데이터 사이에 13개 단어 연속 일치(13-gram 겹침)가 있는지 찾아 '오염 가능' 문제를 보수적으로 표시하고, 깨끗한 문제만으로 다시 점수를 내 비교했습니다. 저자들은 대부분의 데이터셋에서 오염의 영향이 작았다고 보고하면서도, 일부 데이터셋은 결과 해석에 주의를 표시했습니다.
실무 대응.
- 공개 벤치마크 점수는 참고만 하고, 공개되지 않은 내 평가 세트 를 따로 둡니다.
- 벤치마크 문제를 바꿔 쓴(숫자 · 이름 변경) 변형 문제로 점수가 크게 떨어지면 암기를 의심합니다.
- 평가 세트를 학습 데이터 · 프롬프트 예시에 넣지 않습니다.
6. 점수는 얼마나 흔들리나: 표본 오차
직관. 문제 100개로 잰 80점과 1,000개로 잰 80점은 믿을 수 있는 정도가 다릅니다.
정답률 를 문제 개로 쟀을 때, 문제를 독립 표본으로 보면 표준오차와 95% 신뢰구간은 대략
| 기호 | 뜻 |
|---|---|
| 측정한 정답률 | |
| 평가 문제 수 | |
| 정규분포에서 95% 구간에 해당하는 배수 |
숫자로 해 보기(해설용).
- , : SE , 95% 구간 → 대략 72%~88%
- , : SE ,
- 문제 200개에서 모델 A 80%, B 83%: 차이의 SE를 단순 계산하면 약 0.039, 95% 구간 폭 라 3%p 차이는 우연일 수 있습니다. (같은 문제로 두 모델을 비교하면 짝지은 검정으로 더 정확히 볼 수 있습니다.)
생성 결과가 샘플링으로 흔들리는 경우, 같은 평가를 여러 번 돌려 평균과 퍼짐을 함께 보고하는 것이 좋습니다.
7. 나만의 평가 세트 만들기
- 실제 입력을 모읍니다. 로그나 예상 질문에서 다양한 유형을 고루(쉬운 것 · 까다로운 것 · 거절해야 하는 것).
- 채점 방법을 정합니다. 정답이 있으면 자동 비교, 코드면 테스트, 열린 답이면 기준표 + LLM 심판 + 일부 사람 검토.
- 기준선을 잽니다. 현재 프롬프트 · 모델의 점수를 먼저 기록합니다.
- 바꿀 때마다 전체를 다시 돌립니다. 프롬프트, 모델, RAG 설정 변경 모두.
- 실패 사례를 계속 추가합니다. 운영 중 나온 오류를 평가 세트에 넣어 같은 실수가 재발하지 않게 합니다.
연습 문제
- 개 생성 중 개가 통과했습니다. pass@1은?
- 풀이: 입니다. pass@1은 늘 입니다.
- 4지선다 100문항에서 무작위로 찍으면 기대 점수는? MMLU GPT-3 결과와 비교하면?
- 풀이: 25점입니다. 논문의 가장 큰 GPT-3는 평균 43.9%로 무작위보다 약 20%p 높았습니다.
- 정답률 0.9를 문제 400개로 쟀습니다. 95% 신뢰구간 폭은?
- 풀이: SE , 입니다.
- LLM 심판으로 A · B를 비교했더니 순서를 바꾸면 결과가 뒤집혔습니다. 어떻게 처리하나요?
- 풀이: 위치 편향 신호이므로 그 문항은 무승부로 처리하거나 사람이 다시 판정합니다.
스스로 점검
- pass@k를 개만 생성해서 재지 않고 개를 생성해 추정하는 이유는?
- 답: 개만 생성하면 결과가 운에 크게 좌우됩니다. 더 많이 생성해 통과 개수 로 불편 추정하면 분산이 작아집니다.
- 공개 벤치마크 점수가 높은 모델이 내 업무에서 기대에 못 미칠 수 있는 이유 두 가지는?
- 답: ① 벤치마크가 내 업무 분포와 다르고 ② 데이터 오염으로 점수가 부풀었을 수 있기 때문입니다.
- LLM 심판의 장황함 편향을 줄이는 방법은?
- 답: 기준표에 '길이가 아니라 정확성 · 근거로 채점'을 명시하고, 길이를 맞춘 비교나 사람 재검토로 일치율을 확인합니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 벤치마크 | 모델을 비교하려고 공개해 둔 표준 시험 |
| MMLU | 57개 분야 객관식 지식 · 추론 시험 |
| pass@k | 번 시도해 한 번이라도 테스트를 통과할 확률 |
| HumanEval | 함수 설명으로 코드를 만들고 테스트로 채점하는 164문제 |
| SWE-bench | 실제 깃허브 이슈를 고쳐 테스트를 통과시키는 과제 모음 |
| LLM 심판 | 강한 LLM이 기준표로 다른 모델의 답을 채점하는 방식 |
| 위치 · 장황함 · 자기 선호 편향 | LLM 심판이 순서 · 길이 · 자기 답에 끌리는 경향 |
| 데이터 오염 | 시험 문제가 학습 데이터에 섞여 점수가 부풀려지는 것 |
| 표준오차 · 신뢰구간 | 측정값이 표본 때문에 흔들리는 정도와 그 범위 |
더 깊이 보려면
- SWE-bench: 실제 깃허브 이슈를 풀 수 있는가
- 언어 모델은 퓨샷 학습자다 (GPT-3) — 오염 분석이 실린 논문
- RAG 평가와 고급 패턴 — 검색 · 근거 충실도 평가
- lm-evaluation-harness: github.com/EleutherAI/lm-evaluation-harne…
다음에 볼 것
- 환각: 왜 생기고 어떻게 줄이나 — 평가에서 가장 자주 걸리는 실패 유형
- 검색 증강 생성 (RAG) — 지식 부족을 자료로 메우는 방법
라이선스
본문은 KAITABASE 자체 해설입니다. 논문 수치는 각 원문에서 확인한 것만 옮겼습니다. pass@k · 신뢰구간 계산은 해설용 예이며 파이썬으로 검산했습니다. lm-evaluation-harness는 MIT 라이선스입니다.
출처
- Hendrycks 외, Measuring Massive Multitask Language Understanding (2020): arxiv.org/abs/2009.03300
- Chen 외, Evaluating Large Language Models Trained on Code (2021): arxiv.org/abs/2107.03374
- Zheng 외, Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena (2023): arxiv.org/abs/2306.05685
- Brown 외, Language Models are Few-Shot Learners (2020): arxiv.org/abs/2005.14165
- Jimenez 외, SWE-bench (2023): arxiv.org/abs/2310.06770
- EleutherAI, lm-evaluation-harness: github.com/EleutherAI/lm-evaluation-harne…
AI 원리부터 이해하기 · LLM 활용·에이전트 모듈
LLM 활용·에이전트 모듈 학습
이 글은 LLM 활용·에이전트 모듈의 학습 자료입니다. 전체 19개 자료 중 7번째입니다.
출처·원문
원문 보기요약만