Skip to content

에이전트 평가 1/4 — 평가셋 50개로 82% vs 78%, 이긴 건가 ​

이런 장면, 혹시 익숙하지 않은가. 시스템 프롬프트를 몇 줄 고치고 평가셋 50개를 돌렸다. 통과율이 78%에서 82%로 올랐다. 슬랙에 "프롬프트 개선, +4%p" 라고 올린다. 다음 주에 다른 사람이 프롬프트를 또 고쳤고, 79%가 나왔다. 롤백한다.

이 과정에서 아무도 묻지 않는 질문이 있다. 50개로 잰 4%p가 의미 있는 차이인가?

직접 해 보자 ​

기본값은 위 장면 그대로다. 버전 A 82%, 버전 B 78%, 평가 과제 50개.

평가셋 크기 바꿔 보기
0%25%50%75%100%버전 A: 82% (95% 구간 69.2% ~ 90.2%)버전 A버전 B: 78% (95% 구간 64.8% ~ 87.2%)버전 B
버전 A버전 B막대 = 95% 신뢰구간, 굵은 선 = 측정값
A의 95% 구간
±10.5%p
69.2% ~ 90.2%
A − B 차이
4.0%p
95% 구간 -11.7 ~ 19.7%p
차이의 구간이 0을 걸친다. 이 결과만으로는 둘 중 뭐가 나은지 모른다. 이 차이를 놓치지 않으려면(검정력 80%) 버전당 과제가 약 1,566개 필요하다.

두 버전을 서로 독립인 과제로 쟀다고 본 근사다. 같은 과제셋으로 비교하면(짝지은 비교) 구간이 이보다 좁아질 수 있다.

과제 50개면 82%의 95% 신뢰구간은 대략 69~90%다. 78%는 65~87%. 두 막대가 거의 통째로 겹친다. 차이의 구간을 보면 4%p ± 15.7%p, 즉 "B가 12%p 더 좋을 수도 있고 A가 20%p 더 좋을 수도 있다" 정도의 정보밖에 없다.

과제 수를 올려 보자. 200개에서 ±7.8%p, 1,000개에서 ±3.5%p가 돼서 그제야 0을 넘지 않는다. 그리고 카드 아래 문장을 보면, 이 4%p를 안정적으로 잡아내려면(검정력 80%) 버전당 1,500개 넘게 필요하다고 나온다.

계산해 보면 좀 허탈하다. 에이전트 평가셋을 1,500개씩 만드는 팀은 많지 않다. 에이전트 과제 하나 돌리는 데 몇십 초에서 몇 분이 걸리고, 사람이 정답을 확인해야 하는 경우도 많으니까.

그럼 50개짜리 평가셋은 쓸모없나 ​

그건 아니다. 슬라이더에서 A를 80%, B를 70%로 바꿔 보면 필요한 과제 수가 291개로 확 줄어든다. 큰 차이는 작은 평가셋으로도 보인다. 반대로 말하면, 작은 평가셋은 큰 회귀를 잡는 용도로 쓰고, 2~4%p짜리 미세 조정을 판정하는 데 쓰면 안 된다.

Anthropic의 에이전트 평가 글에서도 실제 실패 사례에서 뽑은 20~50개 과제로 시작하라고 권한다. 얼핏 위 계산과 모순처럼 들리는데, 같은 글에 이유가 붙어 있다. 개발 초기에는 시스템을 하나 바꿀 때마다 효과가 뚜렷하게 보인다는 것. 고칠 게 많아서 변화가 크다. 30%p씩 오르내리는 시기에는 50개면 충분하다. 문제는 제품이 성숙해서 개선 폭이 몇 %p로 줄어든 뒤에도 같은 50개로 판정을 계속할 때다.

에이전트라서 더 까다로운 점 ​

위젯은 과제 수만 다룬다. 에이전트 평가에는 노이즈가 하나 더 있다. 같은 과제를 같은 버전으로 두 번 돌려도 결과가 다르다는 것.

  • 모델 샘플링(temperature가 0이어도 완전히 결정적이지 않은 경우가 많다)
  • 도구 호출 결과가 바뀜 (검색 결과, 외부 API 응답, 시간)
  • 긴 궤적에서 초반 작은 차이가 뒤로 갈수록 커짐

그래서 에이전트 평가에서는 과제당 여러 번 돌려서 과제별 성공률을 먼저 구하고, 그걸 평균 내는 방식이 자주 쓰인다. 이러면 "과제 안에서의 흔들림"은 줄일 수 있다. 다만 과제 수 자체가 적은 데서 오는 불확실성은 반복 실행으로 줄지 않는다. 50개 과제를 10번씩 돌려도 여전히 과제는 50개다. 이건 나도 꽤 오래 헷갈렸던 부분이다.

같은 과제셋으로 비교하면 조금 낫다 ​

위젯은 두 버전이 서로 다른 과제로 측정됐다고 보는 보수적인 근사다. 실제로는 보통 같은 50개 과제에 A와 B를 둘 다 돌린다. 이러면 "둘 다 맞힌 쉬운 과제", "둘 다 틀린 어려운 과제"는 비교에서 빠지고, 결과가 갈린 과제만 차이를 만든다.

예를 들어 50개 중 A만 맞힌 게 5개, B만 맞힌 게 3개면 차이 4%p는 사실 8개 과제에서 나온 것이다. 8개 중 5:3. 동전 던지기로도 흔히 나오는 비율이다. 짝지은 비교(McNemar 검정 같은)를 하면 구간은 위젯보다 좁아지는 경우가 많지만, 이렇게 갈린 과제가 몇 개인지 직접 세어 보는 것만으로도 판단이 훨씬 정직해진다.

최소한의 규칙 하나

평가 결과를 공유할 때는 통과율 옆에 과제 수와 구간을 같이 쓴다. "82% (n=50, 95% 구간 69~90%)". 이렇게만 써도 "+4%p 개선" 같은 말이 슬랙에 덜 올라온다.

아직 고민 중인 것 ​

평가셋을 키우는 게 정답인 건 알겠는데, 에이전트 과제 1,000개를 사람이 검수하는 건 현실적으로 어렵다. 결국 채점을 LLM에게 맡기게 되는데, 그러면 이번엔 그 채점기를 믿을 수 있느냐는 문제가 생긴다. 다음 편이 그 얘기다.

참고자료 ​