LabHub

블로그

LLM 평가 & 관측성 완전 가이드: Eval Harness, LLM-as-Judge, Tracing, 회귀 방지 (2025)

한국어English日本語

Season 4 Ep 6 — Ep 1–5은 "어떻게 만드는가"였다. Ep 6은 "만든 게 정말 작동하는지 어떻게 아는가". 평가 없는 LLM 제품은 눈 감고 운전하는 차다.

Prologue — "LGTM 주도 개발"의 종말

2023년까지 많은 LLM 제품은 "Looks Good To Me" 주도 개발이었다. 프롬프트 고치고, 몇 번 돌려보고, "오 좋아진 것 같아" 하고 머지. 회귀가 나도 "왜 그런지 모르겠어요"로 끝.

2025년엔 이게 더 이상 통하지 않는다. 이유 3가지:

  1. 제품 규모: 월 수억 호출, 회귀 한 번이 수만 사용자에게 영향
  2. 팀 규모: 여러 엔지니어가 같은 프롬프트·모델 건드림 → 책임 분산
  3. 경쟁: 한 달만 손 놓으면 경쟁 제품이 앞서감 → 빠른 반복 필수, 평가 기반만이 가능

LLM 제품에선 평가가 ML 모델 평가가 아니라 SW 엔지니어링의 테스트 자동화 수준으로 일상화돼야 한다. 이 글은 그걸 어떻게 하는지 정리.


1장 · 평가의 4가지 층

1.1 Layer 0 — 구조/스모크 테스트

기본 중의 기본. CI에서 매 PR에 돌려야 함.

1.2 Layer 1 — 골든셋 정답 비교

1.3 Layer 2 — 품질 판정

1.4 Layer 3 — 프로덕션 지표

Layer가 올라갈수록 신호는 강하지만, 빈도·비용·속도가 불리. 적절히 조합해야 함.


2장 · Eval 데이터셋 만들기

2.1 소스 다양화

2.2 규모

2.3 라벨링

2.4 분할


3장 · LLM-as-Judge — 축복과 저주

3.1 기본 아이디어

큰 모델(GPT-4o, Claude 3.5/4 등)에게 "이 응답이 정답인가?"를 물어서 자동 평가.

System: 당신은 공정한 평가자입니다.
User:  [질문] [응답]
       이 응답이 질문에 정확히 답하고 있나요? yes/no와 근거 한 줄.

3.2 장점

3.3 치명적 함정

  1. Position bias: "둘 중 어느 게 더 나아요?" 물었을 때 A/B 위치만 바꿔도 결과 뒤집힘
  2. Length bias: 긴 응답을 더 좋게 판정
  3. Self-preference: GPT로 생성된 걸 GPT가 더 좋게 평가 (모델 간 편향)
  4. Rubric 편차: 같은 기준 설명도 재실행마다 점수 분산
  5. Easy-to-game: 평가 프롬프트를 알면 "판정을 속이는" 응답 학습

3.4 보정 테크닉

3.5 사람 평가와 병행


4장 · 관측성 3층 — Trace · Span · Metric

4.1 용어

4.2 OpenTelemetry 기반 사실상 표준

2025년 기준, LLM 관측성도 OpenTelemetry 스키마(OpenLLMetry, OpenInference 등)로 수렴하고 있다. 어떤 벤더를 쓰든 OTEL SDK로 계측해두면 이전·병행이 쉽다.

4.3 LLM 전용 속성

일반 trace에 더해 기록:

4.4 집계 지표


5장 · 벤더 비교 — LangSmith · LangFuse · Phoenix · Helicone · W&B

5.1 LangSmith

5.2 LangFuse

5.3 Arize Phoenix

5.4 Helicone

5.5 Weights & Biases Weave

5.6 선택 가이드

상황추천
LangChain/LangGraph 스택LangSmith
자체 호스팅 필수(규제)LangFuse
RAG 중심, 임베딩 드리프트 중요Phoenix
게이트웨이로 빠르게Helicone
연구·실험 병행W&B Weave
이미 Datadog/NewRelic해당 벤더의 LLM 확장 (OpenLLMetry)

6장 · RAG 평가

6.1 분리 측정

Retrieval이 실패인지 Generation이 실패인지 구분 못 하면 튜닝이 어렵다.

6.2 RAGAS 등 프레임워크

오픈소스 RAGAS, DeepEval 등이 해당 지표를 자동 산출.

6.3 골든 Q&A 셋


7장 · 에이전트 평가

7.1 메트릭

7.2 Trajectory 평가

단순 결과만이 아니라 경로(trajectory) 자체가 의미 있다.

7.3 Replay 기반 평가


8장 · CI/CD에 평가 끼워넣기

8.1 PR 단계

8.2 메인 머지 후

8.3 주 1회 대규모

8.4 Shadow & A/B

8.5 Canary


9장 · 안전·편향·환각 측정

9.1 안전(Safety) 벤치

9.2 편향(Bias)

9.3 환각(Hallucination)

9.4 거부(Refusal) 적정성


10장 · 사고(Incident) 대응 플레이북

10.1 SEV 정의

10.2 대응 순서

  1. 차단: 문제 모델/프롬프트/버전으로의 라우팅 일시 OFF
  2. 격리: 어느 구성이 문제인지 식별 (로그·Trace로)
  3. 완화: 직전 안정 버전으로 롤백
  4. 루트 분석: 평가셋·로그 결합으로 원인 규명
  5. 재발 방지: 해당 실패 사례를 평가셋에 영구 추가
  6. 포스트모템: 24–72시간 내 공개(내부)

10.3 체크포인트


11장 · 사용자 피드백 루프

11.1 수집

11.2 활용

11.3 프라이버시


12장 · 한국어·한국 환경 관측성

12.1 언어별 지표 분리

12.2 한국어 평가 리소스

12.3 규제·감사

12.4 On-prem 관측성


13장 · 안티패턴 10선

13.1 "숫자 좋아 보임"으로 의사결정

통계적 유의성(표본 크기, 분산) 확인 없이 판정.

13.2 LLM-judge 단일 모델만 사용

Self-preference 편향. 다중 judge + 사람 샘플 병행.

13.3 평가셋과 훈련셋 섞임

Leakage. 해시 기반 중복 체크.

13.4 회귀 테스트가 PR에 없음

회귀가 main에 들어간 후 발견. CI에 Layer 0/1은 필수.

13.5 PII 그대로 저장

규제 위반 + 사고 시 2차 피해.

13.6 비용만 보고 품질 안 봄

"싸졌는데 만족도 떨어짐"을 놓침.

13.7 Trace 없음

에이전트 실패 원인 불명. 디버깅 불가.

13.8 사용자 피드백 미수집

가장 값진 신호를 공짜로 버림.

13.9 "테스트" 평가셋을 튜닝에 노출

결과가 부풀려짐. 다음 분기에 실망.

13.10 사고 재발 방지 안 함

같은 실패가 세 번째 나오는 팀은 평가 체계가 없는 것.


14장 · 체크리스트 — 평가·관측성 런칭 전 12가지


15장 · 다음 글 예고 — Season 4 Ep 7: "로컬 LLM 시대"

2025년은 "로컬 LLM이 실용 범위에 들어온 해"이기도 하다.

"외부 API에 모든 걸 의존해야 했던 시절"의 종말. 로컬 LLM이 언제 말이 되고 언제 안 되는지 명확히 긋는다.

다음 글에서 만나자.


요약: 평가와 관측성은 LLM 제품의 기초 인프라다. Layer 0–3으로 쪼개서 각각의 빈도·비용을 맞추고, LLM-as-judge는 position swap·다중 judge·사람 검수로 보정하며, OpenTelemetry 기반 Trace/Span/Metric을 첫날부터 박는다. RAG·에이전트·Fine-tune은 각자 다른 평가가 필요하고, 사고(incident) 대응 플레이북과 사용자 피드백 루프가 제품 개선의 엔진이 된다. "측정 없는 AI는 운전대 없는 차."

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다