AI 답변 평가: 두 사람이 90% 동의하면 믿어도 될까

두 평가자가 같은 판정을 내렸다는 사실은 그 판정이 맞다는 증거와 다르다. AI 답변의 정답 기준을 만들 때는 일치한 비율, 불일치한 항목, 원문과의 대조를 함께 봐야 한다. Cohen의 카파(κ)는 일치 정도를 보완해서 읽는 도구이지, 정답을 인증하는 점수가 아니다.

앞선 글은 검사 알림을 실제 오류 판정과 대조했다. 그러면 그 ‘실제 판정’은 누가 정하는가. 이번에는 같은 문서 답변을 두 사람이 검토하는 가상의 상황에서 출발한다. 수치와 사례는 모두 교육용 합성이며 실제 사람이나 모델의 채점 결과가 아니다.

먼저 같은 것을 평가했는지 확인한다

평가자 A는 답변 전체가 유용한지 보고, B는 인용 문장 한 개가 원문에 있는지 본다면 두 판정을 합쳐 일치율을 낼 이유가 없다. 평가 단위부터 맞춰야 한다. 여기서는 ‘답변의 핵심 주장 한 개가 지정된 문서에 의해 뒷받침되는가’만 평가한다. 말투와 길이는 별도 항목이다.

두 사람에게 같은 질문, 같은 답변, 같은 버전의 기준 문서를 준다. 서로의 판정을 보기 전에 ‘뒷받침됨’ 또는 ‘뒷받침되지 않음’을 고르고 근거 위치를 적게 한다. 필요한 문서가 없거나 기준상 판단할 수 없는 사례는 별도로 남긴다. 아래 계산은 두 사람 모두 판정할 수 있었던 20개 항목만 있는 단순한 경우다.

기존 채점 기준 글이 평가 요청을 어떻게 작성할지 다뤘다면, 여기서는 그 기준을 적용한 두 판정표가 얼마나 같고 왜 다른지를 읽는다.

20개 중 18개가 같다는 말의 범위

두 평가자의 판정을 교차하면 다음 표가 된다. 행은 A, 열은 B다. 어느 한쪽도 정답으로 놓지 않는다.

A의 판정B: 뒷받침됨B: 뒷받침되지 않음
뒷받침됨91
뒷받침되지 않음19

대각선의 18개가 일치했으므로 관측 일치율은 18/20 = 90%다. A와 B는 각각 10개씩 두 범주에 배정했다. 이 표만으로는 두 사람 중 누가 더 정확한지 알 수 없다. 두 사람이 함께 잘못 읽은 항목도 대각선에 들어갈 수 있기 때문이다.

Artstein과 Poesio의 연구 검토는 평가자 간 일관성과 판정의 타당성을 구분한다. 높은 동의만으로 타당성이 보장되지는 않는다. 이 구분은 사람 둘뿐 아니라 사람과 AI 평가자를 비교할 때도 먼저 유지할 경계다.

Cohen κ는 범주를 고른 비율까지 고려한다

scikit-learn 공식 문서의 정의에 따르면 κ는 두 평가자의 범주별 배정 비율로 계산한 기대 일치율을 고려한다.

  • 관측 일치율 pₒ: 실제로 같은 범주를 고른 항목의 비율
  • 기대 일치율 pₑ: 각 평가자의 범주별 배정 비율을 곱해 더한 값
  • κ = (pₒ − pₑ) ÷ (1 − pₑ)

위 합성 표에서는 각각 두 범주를 절반씩 골랐다. pₑ = 0.5×0.5 + 0.5×0.5 = 0.5다. 따라서 κ = (0.9−0.5)/(1−0.5) = 0.8이다. pₑ는 두 사람이 실제로 무작위로 찍었다는 관측이 아니라, 그 배정 비율에서 계산하는 비교 기준이다.

이제 같은 20개라는 크기를 가진 별도의 합성 표를 보자. 앞 표를 개선한 결과나 같은 평가자의 전후 성과가 아니다.

A의 판정B: 뒷받침됨B: 뒷받침되지 않음
뒷받침됨181
뒷받침되지 않음10

이 표도 18/20 = 90% 일치한다. 하지만 두 사람 모두 19개를 ‘뒷받침됨’, 1개를 반대 범주에 배정했다. pₑ = 0.95×0.95 + 0.05×0.05 = 0.905이므로 κ는 약 −0.0526이다.

같은 90%라도 범주 분포가 달라지면 κ가 크게 달라진다. 음수라는 이유로 90%의 일치가 사라지는 것은 아니다. 선택한 기대 일치 모형보다 관측 일치가 조금 낮다는 뜻이다. 두 표에서 어느 평가자가 유능한지, 어느 답변이 사실인지까지 결정하지는 못한다.

각각 20개 항목인 두 합성 표에서 관측 일치율은 모두 90%다. 범주를 10개씩 고른 표 A의 기대 일치율은 50%, 카파는 0.8이다. 19개와 1개로 고른 표 B의 기대 일치율은 90.5%, 카파는 약 -0.053이다. 일치도는 정답을 인증하지 않으며 불일치 근거와 원문을 재검토한다.
교육용 합성 비교. 같은 관측 일치율이라도 범주별 배정 비율에 따라 카파는 달라진다.

낮은 값 하나로 평가자를 교체하지 않는다

카파 값을 ‘이 수치 이상이면 무조건 합격’으로 적용하기 전에 네 칸의 건수와 범주별 비율을 읽자. 두 번째 표에서 관심을 둘 부분은 ‘뒷받침되지 않음’으로 판정한 항목이 서로 겹치지 않는다는 점이다. 이 두 항목의 원문과 판단 근거를 읽으면 무엇이 갈렸는지 좁힐 수 있다.

다음은 이 가상 업무에 적용할 수 있는 검토 순서다. 보편적 합격 기준이나 효과가 입증된 운영 결과는 아니다.

  1. 최초 판정과 근거를 고정해 보존한다. 합의 후 숫자로 덮어쓰지 않는다.
  2. 불일치 항목을 원문, 질문, 판정 기준과 함께 읽는다.
  3. 입력 누락·기준 문구의 모호함·평가 단위 불일치·조건 오독을 구분한다.
  4. 제3의 검토자나 합의 절차로 재검토하되, 결론을 내릴 수 없으면 미해결로 남긴다.
  5. 기준을 고쳤다면 버전을 올리고, 수정에 쓰지 않은 새 항목에서 다시 확인한다.

예를 들어 가상 문서에 ‘승인 후 발송’이라고 적혀 있는데 답변은 ‘신청하면 발송된다’고 하자. A가 뜻이 비슷하다고 통과시키고 B가 승인 조건의 누락을 지적했다면, 투표 수보다 그 조건이 판정 기준에 포함되는지부터 확인해야 한다. 반대로 문서 자체에 승인 절차가 불명확하다면 답변 오류로 확정하기 전에 자료를 보완해야 한다.

합의 뒤 일치율이 100%가 된 것은 독립 평가의 품질이 100%라는 뜻이 아니다. 토의로 정한 최종 판정과 토의 전의 일치도는 다른 기록이다. 둘을 함께 남겨야 기준 개선의 출발점을 잃지 않는다.

판정 불가와 한 범주뿐인 표를 다룰 때

일부 항목을 판정할 수 없었다면 전체 요청 수, 두 사람 모두 판정한 수, 한쪽 이상 판정하지 못한 수를 함께 적는다. 공동 판정 가능 항목만 계산한 일치율을 전체 자료의 일치율처럼 부르면 안 된다. 어려운 항목을 빠뜨렸을 가능성이 남는다.

‘판정 불가’를 독립된 범주로 정의해 세 범주 일치도를 계산할 수도 있지만, 그러면 무엇에 대한 동의를 재는지 달라진다. 실제 미응답과 의미 있는 보류 판정을 섞지 않는 것이 먼저다. 본문의 두 범주 계산 코드는 이런 자료를 자동으로 처리하지 않는다.

두 평가자가 모든 항목을 같은 한 범주로만 분류하면 pₒ와 pₑ가 모두 1이 된다. 관측 일치율은 100%지만 κ의 분모는 0이므로 이 식으로는 정의되지 않는다. 이를 ‘완벽한 정확도’로 바꾸어 보고하지 않는다. 여러 평가자, 순서 있는 점수, 다중 선택 분류에는 자료 구조에 맞는 별도 지표 선택도 필요하다.

합성 표를 직접 검산하는 코드

다음 코드는 외부 패키지 없이 두 범주 교차표의 산술만 계산한다. a는 둘 다 뒷받침됨, b와 c는 불일치, d는 둘 다 뒷받침되지 않음이다.

from fractions import Fraction

def agreement(a, b, c, d):
    values = (a, b, c, d)
    if any(type(x) is not int or x < 0 for x in values):
        raise ValueError("non-negative integer counts required")
    n = sum(values)
    if n == 0:
        return None, None
    observed = Fraction(a + d, n)
    expected = Fraction(
        (a + b) * (a + c) + (c + d) * (b + d), n * n
    )
    kappa = None if expected == 1 else (
        (observed - expected) / (1 - expected)
    )
    return observed, kappa

for counts in [(9, 1, 1, 9), (18, 1, 1, 0), (20, 0, 0, 0)]:
    print(counts, agreement(*counts))

결과는 차례로 일치율 9/10·κ 4/5, 일치율 9/10·κ −1/19, 일치율 1·κ None이다. 고정된 합성 표를 Python으로 검산한 결과이며 실제 채점기를 시험한 결과는 아니다. 20개라는 작은 합성 표로 전체 업무의 일치도나 신뢰구간을 추정한 것도 아니다.

다음 평가 기록에 무엇을 남길까

아래 양식은 사람끼리 정답 기준을 만들거나 사람과 AI 평가자를 대조할 때의 출발점이다. AI를 쓴다면 모델 식별자와 생성 설정도 함께 기록한다. 개인 식별 정보나 인증값은 넣지 않는다.

평가 단위와 질문:
기준 문서 버전 / 판정 기준 버전:
평가자 A·B의 역할과 평가 방식:
전체 항목 수 / 공동 판정 가능 수 / 미판정 수:
토의 전 교차표와 범주별 배정 비율:
관측 일치율 / κ / 정의 불가 여부:
불일치한 항목 ID와 각자의 근거:
재검토 결론 / 미해결 사유:
기준 수정 내용 / 다음에 확인할 새 항목:

검사기의 정밀도를 계산하기 전, 정답표에서 한 건을 꺼내 보자. 누가 동의했는지만 남아 있는가, 아니면 어떤 문서의 어떤 조건으로 판정했는지까지 남아 있는가. 두 번째 기록이 있어야 불일치를 발견했을 때 답변과 기준 중 무엇을 고칠지 판단할 수 있다.

출처와 적용 범위

자료 확인: 2026년 10월 12일. 수치·사례·도식은 교육용 합성이다. 실제 모델 호출, 평가자 모집, 채점 정확도 측정은 하지 않았다. 재검토 절차와 기록 양식은 설계 제안이며 분야별 승인 기준을 대신하지 않는다.


다른 글 보기 · 주제 탐색 · 작성자와 편집 기준 · 문의·정정 요청

RUDA DIRECTOR에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기