본문 바로가기
C.W.K.
Stream
Lesson 01 of 07 · published

개념: AI로 AI 평가하기

~22 min · judges, llm-as-judge, fundamentals

Level 0추측자
0 XP0/55 lessons0/10 achievements
0/150 XP to next level150 XP to go0% complete

왜 모델 평가에 또 다른 모델을 쓸까

미묘한 품질 질문—'이 요약은 원문에 충실해?', '이 답변은 유용해?', '이 답변은 브랜드 어조에 맞아?'—은 정규식만으로 판단할 수 없어. 의미와 맥락, 화용을 이해하는 채점기가 필요하지. 이 역할을 맡는 또 다른 LLM이 바로 판정 모델이야.

방식은 단순해:

  1. 평가 대상 시스템이 출력을 생성해.
  2. 판정용 프롬프트에 입력과 출력, 평가 기준을 제시해.
  3. 판정 모델이 점수나 통과/실패 여부와 판정 근거를 반환해.
  4. 그 점수를 결정론적 지표와 같은 대시보드에 기록해.

왜 대부분 잘 작동할까

성능이 뛰어난 판정 모델—GPT-5, Claude Opus 4.x, Gemini Pro—은 많은 평가 과제에서 인간의 판단과 놀라울 만큼 잘 일치해. 여러 학술 연구에 따르면 LLM 판정 모델과 인간의 일치율은 인간 평가자끼리의 일치율과 비슷한 수준이야(보통 70~85%). 지속적으로 사람의 주석을 확보하기 어려운 상황이라면 대부분의 제품 평가에 충분한 수준이지.

원칙: LLM 판정 모델은 표본 추출과 프롬프트 설계를 거쳐 만든 측정 도구야. 다른 측정 도구처럼 보정하고 검증한 뒤 결과를 다시 살펴봐.

어디서 실패할까

  • 위치 편향 — 쌍대 비교에서 처음이나 마지막에 제시된 출력을 우연으로 보기 어려울 만큼 자주 선택해.
  • 자기 선호 — 특정 기반 모델로 학습된 판정 모델이 같은 계열 모델의 출력을 선호해.
  • 길이 편향 — 짧은 답변이 더 나은데도 긴 출력에 더 높은 점수를 주는 경우가 많아.
  • 비용 — 판정할 표본마다 API를 추가로 호출해야 해. 규모가 커질수록 무시하기 어려워.
  • 프롬프트 민감성 — 평가 기준표를 조금만 바꿔도 판정이 뒤집힐 수 있어.

평가 대상보다 더 강한 판정 모델을 써

판정 모델은 평가받는 모델만큼 유능해야 하고, 가능하면 더 뛰어나야 해. Claude Opus의 출력을 Haiku로 판정하면 문제가 생길 수 있어. Haiku가 Opus의 미묘한 표현이나 판단을 놓칠 수 있기 때문이야.

Code

최소 기능을 갖춘 LLM 판정 모델·python
JUDGE_PROMPT = """You are an expert evaluator.

User asked: {input}
Assistant answered: {output}

Is the answer correct, complete, and helpful for what the user asked?
Reply ONLY in JSON:
{{\"verdict\": \"pass\" or \"fail\", \"reason\": \"one short sentence\"}}"""

import json

def llm_judge(case, output, judge_model):
    prompt = JUDGE_PROMPT.format(input=case["input"], output=output)
    raw = judge_model.complete(prompt, temperature=0)
    parsed = json.loads(raw)
    return parsed["verdict"] == "pass", parsed["reason"]
판정 모델을 호출할 시점 — 의사 결정 트리·python
def pick_grader(eval_case):
    """Cheaper graders first; judge as last resort."""
    if eval_case.has_exact_reference and eval_case.is_short:
        return "exact_match"
    if eval_case.has_reference_phrase:
        return "contains"
    if eval_case.is_format_check:
        return "schema_validate"
    if eval_case.is_classification:
        return "f1_score"
    if eval_case.has_reference_text and eval_case.compare_meaning:
        return "bertscore"
    return "llm_judge"  # everything else

External links

Exercise

현재 결정론적 지표로 평가하는 과제 하나를 골라 LLM 판정 모델을 작성해. 같은 사례 30개에 두 평가 방식을 모두 적용해 봐. 판정이 엇갈릴 때 어느 쪽을 신뢰할지 결정해. 그 판단이 판정 모델을 보정할 사례가 돼.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.