GitHub ↗
CHAPTER 09 OF 10
📏

Evaluation Framework Design

평가 프레임워크 설계

모달리티마다 올바른 메트릭이 다르고, 오프라인 메트릭과 비즈니스 메트릭 사이에는 항상 간극이 있다 — 이 간극을 좁히는 평가 프레임워크 설계가 AI 시스템의 신뢰성을 결정한다.

Evaluation Framework Design cheatsheet
🍌 NANO BANANA CHEATSHEET · CH 09

Overview

개관

평가는 모델 개발에서 가장 과소평가되는 단계다. 많은 팀이 offline validation accuracy를 올리는 데 집중하지만, 실제 배포 후 비즈니스 KPI가 개선되지 않는 상황을 겪는다. 이 '오프라인 성능과 온라인 영향의 괴리'는 잘못된 평가 프레임워크에서 비롯된다.

좋은 평가 프레임워크는 세 가지 레이어를 가진다: (1) 태스크 메트릭 — 모델이 기술적으로 잘 작동하는가(AUC, mAP, F1).

(2) 비즈니스 메트릭 — 실제 사용자 행동에 영향을 미치는가(CTR, 전환율, 사용자 만족도).

(3) 시스템 메트릭 — 배포 환경에서 안정적으로 동작하는가(레이턴시, 처리량, 비용). 세 레이어가 정렬될 때만 AI 시스템이 실제 가치를 만든다.

모달리티마다 적합한 메트릭도 다르다. 정형 데이터 이진 분류는 AUC-ROC, 객체 감지는 mAP@IoU0.5, 비디오 행동 인식은 Kinetics의 Top-1/Top-5 Accuracy, 시계열 예측은 MAPE 또는 SMAPE. 잘못된 메트릭으로 모델을 최적화하면 실제 성능이 나쁜 방향으로 개선될 수 있다.

🎯 Learning Goals
  • 정형, 비전, 비디오 태스크별 적합한 메트릭을 선택하고 그 이유를 설명할 수 있다
  • Offline 평가와 Online(A/B 테스트) 평가의 차이와 각각의 한계를 이해한다
  • A/B 테스트에서 통계적 유의성을 올바르게 계산하고 해석할 수 있다
  • 보정(Calibration)이 예측 확률의 신뢰성에 미치는 영향을 이해한다

Sections

본문

모달리티별 핵심 메트릭 가이드

정형 데이터:

  • AUC-ROC: 이진 분류, 클래스 불균형에 강건. 임계값 독립적.
  • PR-AUC(AUPRC): 양성 클래스가 극히 희귀할 때(사기 탐지, 이상 탐지). AUC-ROC보다 정보가 많다.
  • F1-Score: 정밀도와 재현율의 조화평균. 단, 임계값에 의존하므로 최적 임계값 선택 필요.
  • Log Loss(Cross-entropy): 확률 보정이 중요한 태스크(리스크 예측)에서 적합.

비전(객체 감지):

  • mAP(mean Average Precision): 여러 클래스, 여러 IoU 임계값에서의 AP 평균. COCO mAP는 IoU 0.5:0.05:0.95의 평균.
  • IoU(Intersection over Union): 예측 마스크와 정답 마스크의 겹침 비율. Segmentation 품질 척도.
  • FPS(Frames Per Second): 실시간 응용에서 처리 속도.

비디오(행동 인식):

  • Top-1/Top-5 Accuracy: 가장 많이 예측한 클래스가 정답인 비율.
  • mAP@k (temporal action localization): 시간 구간 예측의 정확도.
  • Recall@k (video retrieval): k개 검색 결과 내 정답 포함 비율.

회귀 태스크:

메트릭 특성 사용 조건
MAE 이상치에 강건 오차가 선형적으로 중요할 때
RMSE 큰 오차에 패널티 큰 오차가 치명적일 때
MAPE 상대적 오차 절대 스케일이 다른 예측 대상
분산 설명력 선형 기반 모델 평가

Offline vs Online 평가: 항상 간극이 있다

Offline 평가(holdout set, cross-validation)와 Online 평가(A/B 테스트)는 서로 다른 것을 측정한다.

Offline 평가의 한계:

  • 분포 불일치: 홀드아웃 데이터가 미래 실제 사용자 분포를 완전히 반영하지 못한다
  • 포지션 편향: 추천 시스템에서 사용자는 상위 노출 아이템을 더 많이 클릭한다 — 훈련 데이터에 이 편향이 인코딩된다
  • 사용자 행동의 복잡성: CTR만으로는 사용자 만족도를 측정 불가. 클릭하고 바로 나가는 것(pogo-sticking)과 구매로 이어지는 클릭은 다르다

A/B 테스트(Online 평가):

사용자를 두 그룹으로 무작위 분할해, 한 그룹에게는 기존 모델(Control), 다른 그룹에게는 새 모델(Treatment)을 제공한다. 비즈니스 메트릭 차이를 직접 측정.

Minimum sample size=(zα/2+zβ)22σ2δ2\text{Minimum sample size} = \frac{(z_{\alpha/2} + z_{\beta})^2 \cdot 2\sigma^2}{\delta^2}

여기서 δ\delta는 탐지하고자 하는 최소 효과 크기, σ2\sigma^2은 분산. 예: 클릭율 2% → 2.1% 차이를 95% 신뢰도(α=0.05), 80% 검정력(β=0.2)으로 탐지하려면 수만~수십만 사용자가 필요하다.

Interleaving: 두 모델의 추천을 섞어 한 페이지에 보여주고 어느 쪽이 더 클릭받는지 측정. 표본 효율이 A/B 테스트보다 훨씬 높아 빠른 평가 가능.

보정(Calibration)과 불확실성 정량화

모델이 '70% 확률'이라고 출력할 때, 실제로 그 상황 10번 중 7번 맞는가? 이것이 **보정(Calibration)**이다. 많은 모델, 특히 Deep Neural Network는 과신(overconfident) 경향이 있다 — 확률을 0.9로 출력하지만 실제 정확도는 0.75인 경우.

보정 측정: Reliability Diagram

예측 확률을 구간(0-0.1, 0.1-0.2, ...)으로 나누고, 각 구간에서 실제 양성 비율을 계산한다. 완벽하게 보정된 모델은 대각선 위에 점들이 위치한다.

Expected Calibration Error(ECE):

ECE=m=1MBmnacc(Bm)conf(Bm)ECE = \sum_{m=1}^{M} \frac{|B_m|}{n} |\text{acc}(B_m) - \text{conf}(B_m)|

보정 방법:

  • Temperature Scaling: 소프트맥스 전에 로짓을 스칼라 T로 나눈다. T > 1이면 더 불확실하게, T < 1이면 더 확실하게 보정. 검증 세트에서 T를 최적화.
  • Platt Scaling: 로지스틱 회귀로 확률을 재보정.
  • Isotonic Regression: 비모수적 보정.

불확실성 정량화(UQ, Uncertainty Quantification): 단순 점 예측 외에 예측 불확실성을 함께 제공. 의료, 금융 같은 고위험 도메인에서 필수. MC Dropout(드롭아웃을 추론 시에도 적용)이나 Deep Ensemble이 실용적 방법이다.

비즈니스 메트릭 정렬

AI 프로젝트가 실패하는 흔한 이유: 기술적 메트릭(AUC, F1)은 개선되는데 비즈니스 KPI(매출, 사용자 유지율)는 변하지 않는다. 이 괴리를 좁히려면 처음부터 기술적 메트릭과 비즈니스 메트릭을 명시적으로 연결해야 한다.

프록시 메트릭 유효성 검증:

AUC를 높이면 CTR이 올라갈 것이라는 가정, CTR이 올라가면 매출이 늘 것이라는 가정 — 이 인과 사슬의 각 링크가 실제로 유효한지 과거 A/B 테스트 데이터로 검증해야 한다.

메트릭 분해(Metric Decomposition):

큰 비즈니스 메트릭을 세분화해 어느 부분이 AI 시스템에 의해 영향받는지 파악한다. 매출 = 방문자 수 × CTR × 전환율 × 평균 주문가치. AI 추천 모델은 CTR과 전환율에 영향을 미친다. 다른 요소(가격 정책, 마케팅)는 모델 평가에서 통제해야 한다.

North Star Metric: 팀 전체가 동의하는 단일 최상위 메트릭. 기술, 비즈니스, 사용자 관점을 통합. '활성 사용자 수', '순 추천 고객 지수(NPS)', '사용자 1인당 가치' 등. AI 모델의 모든 의사결정이 이 North Star에 기여해야 한다.

💡 Analogy · 비유
올림픽 심판의 채점 시스템

AI 시스템 평가는 올림픽 심판 채점과 유사하다. 체조 선수의 실력을 평가하는 채점 시스템에는 여러 레이어가 있다. 기술적 메트릭은 '각 기술의 난이도 점수' — 객관적이고 표준화되어 있다. 이것이 모달리티별 메트릭(AUC, mAP, Accuracy)에 해당한다.

하지만 올림픽 금메달리스트가 꼭 '기술 점수 합계가 가장 높은 선수'는 아니다. '예술성 점수'도 있고, 관중의 반응(온라인 A/B 테스트의 비즈니스 메트릭)도 있다. 심판이 모든 채점 차원을 종합해 최종 순위를 내는 것처럼, AI 엔지니어는 기술적 메트릭, 비즈니스 메트릭, 시스템 메트릭을 종합해 모델의 가치를 판단해야 한다.

보정(Calibration)은 심판이 '나의 채점 기준이 일관적인가'를 자기 점검하는 것과 같다. 어제 9.0점을 준 연기와 오늘 9.0점을 준 연기가 실제로 같은 수준인가? 모델이 '90% 확신'이라고 출력할 때 실제로 90%를 맞추는가?

Temperature Scaling으로 분류 모델을 보정하고, Reliability Diagram으로 보정 전후를 시각화하는 패턴이다. 의료, 금융, 법률 등 고위험 도메인에서 확률 보정은 필수적이다.

python
import numpy as np
from sklearn.calibration import calibration_curve
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier

X, y = make_classification(n_samples=5000, n_features=20, random_state=42)
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)

# 의도적으로 overconfident한 모델 학습
model = MLPClassifier(hidden_layer_sizes=(256, 128), max_iter=1000, random_state=42)
model.fit(X_train, y_train)
raw_probs = model.predict_proba(X_val)[:, 1]

# Temperature Scaling으로 보정
def apply_temperature_scaling(logits: np.ndarray, T: float) -> np.ndarray:
    """소프트맥스 온도 조정으로 확률 보정"""
    scaled = logits / T
    return np.exp(scaled) / (np.exp(scaled) + np.exp(-scaled))  # 이진 케이스

# 간단히: logit 공간에서 온도 적용 후 sigmoid
logits = np.log(raw_probs / (1 - raw_probs + 1e-8))  # logit 변환
T_values = [0.5, 1.0, 1.5, 2.0]

for T in T_values:
    calibrated_logits = logits / T
    calibrated_probs = 1 / (1 + np.exp(-calibrated_logits))
    # ECE 계산
    fraction_pos, mean_pred = calibration_curve(y_val, calibrated_probs, n_bins=10)
    ece = np.mean(np.abs(fraction_pos - mean_pred))
    print(f"T={T:.1f}: ECE={ece:.4f}")

# T=1.0이 보정되지 않은 원본, T>1이 더 불확실하게 조정

Temperature T=1.0은 원본 확률이다. T를 증가시키면 확률이 0.5에 가까워져 더 불확실해지고, T를 감소시키면 더 확실해진다. 검증 세트에서 ECE가 최소인 T를 찾는 것이 목표다. 실제로는 scipy.optimize.minimize로 T를 자동 최적화한다. 보정이 잘 된 모델은 '70% 예측' 중 실제로 70%가 맞아 의사결정자가 확률을 신뢰할 수 있게 된다.

🏭 현업에서의 평가
평가 프레임워크 설계는 ML 엔지니어와 ML Scientist의 차이를 드러내는 영역이다. 단순히 메트릭을 계산하는 것이 아니라, 어떤 메트릭이 비즈니스 목표와 정렬되는지, 통계적 유의성을 어떻게 보장하는지, A/B 테스트를 얼마나 실행해야 하는지를 설계하는 능력이 평가된다.

✅ 시니어가 보는 것

  • 태스크와 도메인에 맞는 메트릭 선택 근거 — 왜 AUC가 아니라 PR-AUC인지
  • A/B 테스트 설계: 표본 크기, 실험 기간, 통계적 검정력(power)의 trade-off 이해
  • Offline 메트릭과 비즈니스 KPI 사이의 인과 사슬 명시적으로 검증
  • 고위험 도메인(의료, 금융)에서 보정(Calibration)의 중요성 인식

⚠️ 레드 플래그

  • Accuracy를 불균형 데이터셋의 주 메트릭으로 사용 — 클래스 불균형 인식 부족
  • A/B 테스트 표본 크기를 계산하지 않고 임의로 설정
  • Offline 메트릭 개선이 자동으로 비즈니스 메트릭 개선으로 이어진다는 가정

🎤 예상 인터뷰 질문

  1. 사기 탐지 모델에서 AUC-ROC와 PR-AUC 중 어떤 것을 주 메트릭으로 선택하겠습니까? 이유는?
  2. 추천 시스템 A/B 테스트에서 CTR이 0.2% 증가했습니다. 통계적으로 유의미하다고 볼 수 있으려면 무엇이 필요합니까?
  3. 의료 진단 AI에서 모델이 '악성 종양 확률 85%'라고 예측할 때, 이 확률이 실제로 신뢰할 수 있다는 것을 어떻게 검증합니까?
숙달 vs 익숙함: 익숙한 수준은 accuracy와 AUC를 계산할 수 있는 것이다. 숙달은 태스크의 특성(불균형, 비용 비대칭, 도메인 위험)에 맞는 메트릭을 선택하고, A/B 테스트를 통계적으로 설계하고, 비즈니스 KPI와 기술적 메트릭의 연결 고리를 검증하고, 고위험 도메인에서 보정을 적용하는 것이다.

Key Takeaways

핵심 정리

잘못된 메트릭 = 잘못된 방향 최적화

Accuracy vs AUC vs PR-AUC — 클래스 불균형, 비용 비대칭을 고려해 태스크에 맞는 메트릭을 선택해야 한다.

Offline ≠ Online 성능

Offline validation 성능이 좋아도 A/B 테스트에서 비즈니스 KPI가 개선되지 않을 수 있다. 두 레이어를 모두 평가해야 한다.

A/B 테스트는 통계다

표본 크기, 검정력(power), 유의수준을 계산해야 한다. 임의로 기간을 설정하면 거짓 양성이 발생한다.

보정(Calibration)은 확률의 신뢰성

모델이 70%라고 출력하면 실제로 70%를 맞춰야 한다. 의료, 금융, 법률 도메인에서 필수적이다.

북극성 메트릭으로 정렬

모든 기술적 결정이 단일 비즈니스 North Star Metric에 기여해야 한다. 이 정렬 없이는 AI가 가치를 만들지 못한다.

mAP@IoU는 비전의 언어

객체 감지 모델은 반드시 mAP(COCO 기준 IoU 0.5:0.95)로 평가해야 한다. 단순 정확도는 위치 예측 품질을 반영하지 못한다.