1 정의
실험 메트릭이란, A/B 테스트에서 처치(treatment)의 효과를 정량적으로 측정하기 위해 사전 정의하는 지표이다. 실험 시작 전에 확정해야 하며, 실험 후 추가하면 데이터 스누핑(data snooping)이 된다.
North Star Metric: 실험의 궁극적 성공을 판단하는 1차 지표
Proxy Metric: North Star를 간접적으로 대리하는 단기 측정 가능 지표
Guardrail Metric: 악화되면 실험을 중단해야 하는 안전 지표
역학: Primary endpoint, Secondary endpoint, Safety endpoint
IT: North Star Metric, Proxy Metric, Guardrail Metric
2 메트릭 계층 구조
2.1 왜 계층이 필요한가
“응답 품질”을 하나의 숫자로 측정할 수 있다면 좋겠지만, Agent 응답의 품질은 다차원적이다. 정확하지만 장황한 응답, 간결하지만 불완전한 응답, 빠르지만 환각이 섞인 응답 — 이들을 단일 지표로 환원하면 트레이드오프를 놓친다.
계층 구조는 이 문제를 해결한다:
North Star (1개)
"이 Agent가 사용자의 업무를 돕고 있는가?"
↓ 분해
Proxy Metrics (3~5개)
정확도, 완전성, 응답 시간, 사용자 피드백
↓ 제약
Guardrail Metrics (2~3개)
환각률, 시스템 오류율, 응답 지연
2.2 MINERVA Agent별 메트릭 설계
2.2.1 QnA Chatbot
| 계층 | 메트릭 | 정의 | 측정 방법 |
|---|---|---|---|
| North Star | Task Completion Rate | 사용자가 질의 후 추가 질문 없이 업무를 완료한 비율 | 세션 로그 분석 (후속 질의 없음 = 완료) |
| Proxy | Relevance Score | 응답이 질의에 직접 답하는 정도 (1-5) | LLM-as-Judge |
| Proxy | Faithfulness Score | 응답이 검색 문서에 근거하는 정도 (1-5) | LLM-as-Judge |
| Proxy | Hit Rate@k | 검색 결과에 정답 문서가 포함되는 비율 | Golden Dataset 기반 |
| Guardrail | Hallucination Rate | 검색 문서에 근거 없는 주장의 비율 | LLM-as-Judge (Faithfulness ≤ 2) |
| Guardrail | Error Rate | 시스템 오류(타임아웃, 빈 응답 등) 비율 | 시스템 로그 |
2.2.2 Data Standardization Helper
| 계층 | 메트릭 | 정의 | 측정 방법 |
|---|---|---|---|
| North Star | Recommendation Acceptance Rate | 추천 결과를 사용자가 수정 없이 채택한 비율 | 사용자 행동 로그 |
| Proxy | Top-1 Accuracy | 첫 번째 추천이 정답인 비율 | Golden Dataset |
| Proxy | Top-3 Recall | 상위 3개 추천에 정답이 포함되는 비율 | Golden Dataset |
| Proxy | Rule Compliance | 추천이 표준화 규칙을 위반하지 않는 비율 | 규칙 엔진 검증 |
| Guardrail | Rule Violation Rate | 표준화 규칙을 명시적으로 위반하는 추천 비율 | 규칙 엔진 |
| Guardrail | Response Latency p95 | 95번째 백분위 응답 시간 | 시스템 로그 |
2.2.3 Insilico Code Analysis
| 계층 | 메트릭 | 정의 | 측정 방법 |
|---|---|---|---|
| North Star | Analysis Accuracy | 코드 분석 결과가 전문가 분석과 일치하는 비율 | 전문가 검토 |
| Proxy | Code Coverage | 분석 대상 코드의 몇 %를 실제로 다루는가 | 자동 검증 |
| Proxy | Explanation Clarity | 설명의 명확성 (1-5) | LLM-as-Judge |
| Proxy | Dependency Accuracy | 의존성 식별의 정확도 | Golden Dataset |
| Guardrail | Critical Error Rate | 잘못된 의존성/로직 설명 비율 | 전문가 샘플 검토 |
| Guardrail | Timeout Rate | 분석 시간 초과 비율 | 시스템 로그 |
3 오프라인 → 온라인 메트릭 전환
3.1 왜 전환이 필요한가
오프라인 평가 지표(이전 포스트)와 온라인 실험 메트릭은 같은 것을 측정하지 않는다:
| 차원 | 오프라인 | 온라인 |
|---|---|---|
| 데이터 | 고정된 Golden Dataset | 실시간 사용자 질의 |
| 평가자 | LLM-as-Judge / 자동 | 사용자 행동 + 자동 |
| 맥락 | 단일 턴, 고정 질의 | 멀티턴 세션, 다양한 맥락 |
| 지표 | 정확도, 유사도 점수 | 완료율, 만족도, 재사용률 |
핵심 질문: 오프라인에서 좋은 점수를 받은 구성이 온라인에서도 실제로 좋은가?
이 상관이 높으면 오프라인 평가의 스크리닝 가치가 높고, 낮으면 온라인 실험의 비중을 키워야 한다.
3.2 전환 매핑
오프라인 지표 온라인 메트릭
───────────── ─────────────
Relevance Score →→→ Task Completion Rate
(질의-응답 적합도) (업무 완료 여부)
Faithfulness Score →→→ Hallucination Report Rate
(문서 근거성) (사용자가 "부정확" 신고)
Hit Rate@k →→→ Search Refinement Rate
(검색 정확도) (사용자가 재검색하는 비율)
Completeness Score →→→ Follow-up Question Rate
(답변 완전성) (추가 질문 비율, 낮을수록 좋음)
3.3 상관 검증 방법
오프라인-온라인 상관을 검증하려면, 초기에 두 지표를 동시에 수집하는 기간이 필요하다:
import numpy as np
from scipy.stats import spearmanr
def validate_offline_online_correlation(
offline_scores: np.ndarray,
online_scores: np.ndarray,
threshold: float = 0.6
) -> dict:
"""오프라인-온라인 지표 간 상관을 검증한다
Args:
offline_scores: 오프라인 평가 점수 (구성별)
online_scores: 온라인 메트릭 (구성별)
threshold: 수용 가능한 최소 상관계수
Returns:
상관계수, p-value, 판정 결과
"""
corr, p_value = spearmanr(offline_scores, online_scores)
return {
"spearman_corr": corr,
"p_value": p_value,
"acceptable": corr >= threshold,
"interpretation": (
f"오프라인-온라인 상관 ρ={corr:.3f} (p={p_value:.4f}). "
f"{'오프라인 스크리닝 신뢰 가능' if corr >= threshold else '온라인 실험 비중 확대 필요'}"
)
}4 Overall Evaluation Criterion (OEC)
4.1 OEC란
여러 메트릭을 하나의 종합 점수로 결합한 것이다. 실험의 최종 판정을 단일 기준으로 내릴 수 있게 한다.
\[ \text{OEC} = \sum_{i=1}^{k} w_i \cdot \hat{m}_i \]
여기서 \(\hat{m}_i\)는 각 메트릭의 표준화된 값, \(w_i\)는 가중치이다.
4.2 OEC 설계 시 주의점
- 가중치 결정의 주관성: \(w_i\)를 어떻게 정하는가? 이해관계자 합의가 필요하다
- 메트릭 간 상관: Relevance와 Completeness가 상관이 높으면 사실상 이중 가중된다
- 비선형 트레이드오프: Faithfulness가 3점 → 4점은 가치가 크지만, 4점 → 5점은 작을 수 있다. 선형 결합이 이를 반영하지 못한다
- 가드레일 혼입 금지: 가드레일은 OEC에 넣지 않고 별도로 판정한다. 가드레일이 위반되면 OEC가 아무리 좋아도 실험을 기각한다
4.3 실용적 대안: 계층적 판정
OEC 대신, 다음 순서로 판정하는 것이 실무적으로 더 안전하다:
Step 1: Guardrail 확인
→ 환각률 증가? 오류율 증가? → YES → 실험 기각 (OEC 무관)
Step 2: North Star 확인
→ Task Completion Rate가 통계적으로 유의하게 개선? → YES → 실험 채택
Step 3: Proxy 확인 (North Star가 유의하지 않을 때)
→ Proxy 메트릭 다수가 일관되게 개선 방향? → YES → 추가 실험 검토
→ Proxy 메트릭이 혼재? → 판단 보류, 실험 연장 또는 재설계
5 메트릭 문서화 템플릿
실험 시작 전에 다음 템플릿으로 메트릭을 문서화한다. 실험 후 메트릭을 추가하거나 변경하면 안 된다.
experiment:
name: "QnA Chatbot 프롬프트 v2 실험"
hypothesis: "시스템 프롬프트에 도메인 용어집을 포함하면 Relevance가 개선된다"
metrics:
north_star:
name: "Task Completion Rate"
definition: "질의 후 5분 내 추가 질문 없이 세션 종료한 비율"
direction: "higher_is_better"
mde: 0.05 # 5%p 개선 감지
proxy:
- name: "Relevance Score"
definition: "LLM-as-Judge 기반 1-5점 평균"
direction: "higher_is_better"
- name: "Hit Rate@5"
definition: "상위 5개 검색 결과에 정답 문서 포함 비율"
direction: "higher_is_better"
guardrail:
- name: "Hallucination Rate"
definition: "Faithfulness ≤ 2인 응답의 비율"
direction: "lower_is_better"
threshold: 0.10 # 10% 초과 시 실험 중단
- name: "Error Rate"
definition: "시스템 오류 응답 비율"
direction: "lower_is_better"
threshold: 0.02 # 2% 초과 시 실험 중단6 관련 주제
선행 지식
- 오프라인 평가 설계 — Golden Dataset, RAG 평가 지표
- A/B 테스트의 핵심 메커니즘 — 가드레일 메트릭의 개념
시리즈 다음 포스트
- 단순 A/B 테스트 설계 — 메트릭이 정의되었으니, 실험을 설계한다
다른 카테고리 연결
- Agent 카테고리 — RAG 파이프라인의 각 단계가 실험 변수
- 데이터 거버넌스 — 데이터 표준화 규칙 (Data Std Helper의 평가 기준)