추가적인 평가 트레이스만으로는 kappa 값을 안정화할 수 없습니다. 가지고 있는 데이터를 계층화하세요.
요약
LLM의 합의도(kappa)가 불안정한 문제를 해결하기 위해, 단순히 트레이스 샘플 수를 늘리는 것보다 데이터의 '구성'을 개선하는 것이 중요함을 제시합니다. 특히 점수 클래스나 알려진 실패 차원별로 데이터를 계층화(stratify)하여 희귀하고 어려운 케이스를 확보하는 방법이 효과적입니다.
핵심 포인트
- kappa 값 안정화를 위해 양보다는 구성(Composition)에 집중해야 합니다.
- 무작위 샘플링은 쉬운 데이터만 가져와 kappa 측정의 신호가 약합니다.
- 점수 클래스 및 알려진 실패 차원별로 계층화하여 데이터를 확보하는 것이 효과적입니다.
요약하자면(TL;DR): 저희의 LLM-as-judge 합의도(인간 레이블 대비 Cohen's kappa)는 루브릭 변경 없이 주마다 0.41에서 0.63 사이를 오갔습니다. 처음에는 표본 크기 문제라고 생각하여 매주 트레이스 수를 50개에서 200개로 늘렸지만, 분산은 거의 변하지 않았습니다. 그 후, 이미 가지고 있던 50개의 데이터를 점수 클래스와 몇 가지 알려진 실패 차원별로 계층화(stratify)했더니, 표본 크기를 네 배로 늘린 것보다 더 크게 떨어진 수치 변화를 얻었습니다. 핵심은 양이 아니라 구성(Composition)이었습니다.
증상: 안정되지 않는 kappa 값
심사관(judge)은 프로덕션 트레이스를 5점 만점의 루브릭으로 평가했습니다. 매주 저희는 보정 세트(calibration set)를 수동으로 레이블링하고 kappa 값을 계산했습니다. 이 값은 0.55, 그다음 주에는 0.42, 그리고 0.61로 출렁였습니다. 루브릭이나 심사관 프롬프트에 아무것도 변경된 것이 없었습니다. 노이즈 때문에 0.2가 움직이는 kappa 값은 실제 심사관의 회귀(regression)인지 단순한 흔들림인지를 구별할 수 없기 때문에, 조기 경고 신호로는 쓸모가 없습니다.
트레이스 추가가 거의 아무 효과가 없는 이유
무작위 샘플링은 주로 다수 클래스(majority class)에서 데이터를 가져옵니다. 저희의 경우 이는 '깨끗한 통과' 즉, 쉬운 5점짜리 데이터였습니다. Kappa 값은 희귀하고 모호한 클래스(2점과 3점)에 대한 합의도에 의해 결정되는데, 무작위 샘플링으로는 표본 크기가 아무리 커져도 그중 극소수만 얻게 됩니다. 따라서 200개의 무작위 트레이스는 대부분 더 많은 쉬운 통과 데이터일 뿐이었습니다. 즉, 데이터는 늘었지만 중요한 부분에서는 새로운 신호가 거의 없었던 것입니다.
| 샘플링 방식 | n | 4주간의 kappa 범위 |
|---|---|---|
| 무작위 (Random) | 50 | 0.41 ~ 0.63 |
| ... |
해결 단계 1: 점수 클래스별로 계층화(stratify by score class)
희귀한 클래스가 실제로 추정 가능하도록 모든 점수 클래스를 주간 세트에 포함시키도록 강제합니다.
from sklearn.model_selection import train_test_split
# 주간 보정 세트에 모든 심사관 점수 클래스 표현하기
cal, _ = train_test_split(
...
해결 단계 2: 이미 알고 있는 실패 차원별로 계층화(stratify by the failure dimensions you already know)
점수 클래스만으로는 충분하지 않았습니다. 우리는 이전에 어려움을 겪었던 두 가지 차원(입력 길이 버킷 및 트레이스가 다중 턴이었는지 여부)을 추가하여 조합별로 계층화했습니다. 이제 희귀하고 어려운 케이스들이 무작위가 아닌 매주 나타나므로, 우리가 계산하는 kappa 값은 실제로 변동하는 분포의 부분을 측정하게 됩니다.
아직 확실하지 않은 부분
계층화는 어떤 차원이 중요한지 알아야 합니다. 완전히 새로운 평가자(judge)의 경우, 당신은 아직 그것들을 알지 못하므로, 충분한 실패 사례를 통해 계층을 학습할 때까지 무작위 샘플링에 갇히게 됩니다. 저는 그 콜드 스타트(cold-start) 케이스에 대한 명확한 답변이 없습니다. 만약 실패 데이터를 갖추기 전에 보정(calibration) 세트를 계층화한다면, 점수 클래스 외에 무엇을 기준으로 계층화해야 할까요?
FAQ
얼마나 적은 트레이스로도 괜찮을까요?
저희의 경우 50개로 계층화하는 것이 안정적이었습니다. 약 30개 미만에서는 희귀 클래스들이 kappa를 추정하기에 너무 적은 예시를 가지고 있었습니다.
계층화가 추정에 편향을 일으키지 않나요?
네, 의도적으로 어려운 케이스 쪽으로 편향되게 합니다. 저희는 계층화된 kappa 값(조기 경보 수치)과 원본 kappa 값(솔직한 모집단 수치)을 모두 보고합니다.
어떤 평가자 모델을 사용해야 하나요?
테스트 대상 시스템과는 다른 계열의 최첨단 모델(frontier model)이 좋습니다. 정확한 모델 자체보다 교차 계열(cross-family) 부분이 더 중요합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기