본문 바로가기
C.W.K.
Stream
Lesson 05 of 09 · published

평가의 종류

~22 min · evals, taxonomy, fundamentals

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

모든 평가를 분류하는 6가지 축

프레임워크나 지표를 고르기 전에 평가를 6가지 축에 놓고 살펴봐. 여섯 축의 조합을 보면 어떤 평가를 만들어야 할지 알 수 있어.

  1. 온라인 대 오프라인. 온라인 평가는 실시간 요청을 대상으로 하고, 오프라인 평가는 고정된 데이터셋을 대상으로 해.
  2. 참조 답안 기반 대 참조 답안 없음. 참조 답안 기반 평가에는 알려진 정답이 있어. 번역, 분류, 검색이 대표적이야. 참조 답안이 없는 평가는 요약, 생성, 유용성처럼 정답이 하나로 정해져 있지 않아.
  3. 개별 평가 대 쌍대 비교. 개별 평가는 출력 하나를 독립적으로 채점해. 쌍대 비교는 출력 두 개를 비교해 더 나은 쪽을 골라.
  4. 결정론적 채점 대 모델 채점. 결정론적 채점은 정규식, 완전 일치, 수치 비교 등을 사용해. 모델 채점은 LLM 판정 모델을 사용해.
  5. 블랙박스 대 화이트박스. 블랙박스 평가는 최종 출력만 보고, 화이트박스 평가는 검색된 문서, 도구 호출, 추론 과정 같은 중간 단계까지 살펴봐.
  6. 기능 대 안전성. 기능 평가는 과제 수행 품질을 측정하고, 안전성 평가는 유해성, 편향, 탈옥 공격, 개인정보 유출, 프롬프트 주입을 점검해.

질문에 맞는 조합을 골라

'프롬프트를 바꾸니 요약이 더 좋아졌어?' → 오프라인, 참조 답안 없음, 쌍대 비교, 모델 채점, 블랙박스, 기능.

'실시간 시스템이 탈옥 공격을 받고 있어?' → 온라인, 참조 답안 없음, 개별 평가, 모델 채점, 블랙박스, 안전성.

'검색기가 올바른 문서를 찾고 있어?' → 오프라인, 참조 답안 기반, 개별 평가, 결정론적 채점, 화이트박스, 기능.

원칙: 도구를 고르기 전에 평가를 6가지 축에 놓고 살펴봐. '이 프레임워크로는 원하는 평가를 할 수 없어'라는 불만의 절반은 사실 한 평가에 서로 다른 두 질문을 한꺼번에 답하게 해서 생겨.

화이트박스는 디버깅에, 블랙박스는 구현 결합을 줄이는 데 유용해

화이트박스 평가로 검색된 조각, 도구 호출 순서, 초안의 추론 과정까지 확인하면 문제를 진단하기 좋아. 하지만 평가가 구현에 강하게 결합되기 때문에 시스템을 재설계하면 평가도 깨질 수 있어. 블랙박스 평가는 최종 출력만 확인하므로 구현이 바뀌어도 안정적이지만, 실패했는지는 알려 주지 않아. 실무에서는 둘 다 유지해. 진단을 위한 작은 화이트박스 점검 모음과 회귀를 막기 위한 큰 블랙박스 확인 모음을 함께 운영하면 돼.

Code

축 태그로 혼합 평가 모음 관리하기·python
# Tag each eval case so you can slice the suite by axis.
EVAL_CASE = {
    "id": "summarizer.long_doc.001",
    "input": {...},
    "reference": None,                  # axis: reference-free
    "axes": {
        "phase": "offline",
        "reference": "free",
        "comparison": "pointwise",
        "grader": "llm-judge",
        "surface": "blackbox",
        "category": "functional",
    },
    "tags": ["summarization", "long-document", "english"],
}
쌍대 비교와 개별 평가 — 같은 과제, 다른 질문·python
# Pointwise: 'is this output good?' (absolute scale)
def pointwise(output):
    return judge.score(
        f"Rate this answer on a 1-5 scale for accuracy and completeness:\n{output}"
    )

# Pairwise: 'which of these two is better?' (relative, less calibration burden)
def pairwise(output_a, output_b):
    verdict = judge.complete(
        f"Output A: {output_a}\n\nOutput B: {output_b}\n\nWhich is better, A or B? Answer A, B, or TIE."
    )
    return verdict.strip().upper()

External links

Exercise

현재 실행 중이거나 앞으로 실행하고 싶은 평가 세 가지를 골라 각각 6가지 축으로 분류해 봐. 어디에서 모호함이 드러났어? 그 모호한 지점이 평가 모음에서 아직 답하지 못한 질문일 가능성이 커.

Progress

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

댓글 0

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

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