← ~/blog
2026. 06. 05. Creative Engine

"좋아졌다"를 측정하는 법

AI 품질에서 가장 위험한 문장은 "좋아진 것 같다"이다. 규칙 하나, 판단자 하나를 바꿀 때마다 같은 잣대로 다시 재고 회귀를 먼저 잡는 일 — 한국어 도메인 코퍼스에서 "좋아졌다"를 주장이 아니라 측정으로 바꾼 eval 하네스 이야기.

연재한국어 도메인 AI: 데이터가 8할5 / 7
"좋아졌다"를 측정하는 법

“좋아진 것 같다”는 함정

정규화 규칙 하나를 손본다. 흩어져 있던 표기 몇 개가 깔끔하게 합쳐진다. 태깅 축의 기준을 조인다. 어긋나던 분류 몇 건이 제자리를 찾는다. 판단자에게 주는 지침 한 줄을 고친다. 통과를 망설이던 애매한 데이터가 명쾌하게 갈린다. 눈앞에서 분명히 몇 건이 좋아졌다. 그러면 “개선됐다”고 선언하고 싶어진다.

문제는 다른 어딘가다. 규칙 하나를 바꾸면 코퍼스 전체에 그 변경이 닿고, 좋아진 자리만큼이나 조용히 나빠진 자리가 생길 수 있다. 사람은 좋아진 사례를 먼저 기억하고 회귀를 놓친다. 손본 자리를 들여다보며 흐뭇해하는 동안, 시야 밖에서 무너진 자리는 다음 변경에 묻혀 안 보인다. AI 품질에서 가장 위험한 문장은 그래서 “좋아진 것 같다”이다.

지난 시리즈 오프너에서 우리는 평가를 데이터 공정의 한 칸으로 그려두고 한 문장으로만 스쳤다 — “‘좋아졌다’를 측정한다.” 이 글은 그 칸을 연다. 질문은 하나다. “좋아졌다”를 느낌이 아니라 측정으로 바꾸려면 무엇이 필요한가.

변경할 때마다 같은 잣대로 다시 잰다

우리가 택한 답은 화려하지 않다. 게이트를 손볼 때마다 같은 기준·같은 표본으로 다시 재는 것이다. 고정된 평가 묶음 위에서 변경 전과 후를 나란히 놓는다. “이번엔 다른 걸로 쟀더니 좋더라”는 비교가 아니다. 잣대가 흔들리면 변경의 효과와 잣대의 변덕을 구별할 수 없다.

그 위에 두 개의 트랙을 함께 돌린다. 일관성이나 형식 적합처럼 자동으로 점수화할 수 있는 축이 한 트랙, 사람과 판단자가 직접 들여다보는 정성 회고가 다른 트랙이다. 한쪽만으로는 “매끄럽지만 틀린” 류를 놓친다 — 자동 점수는 형식만 보고 넘기고, 사람은 규모가 커지면 다 못 본다. 그리고 둘 중 무엇을 먼저 보느냐가 핵심이다. 우리는 “얼마나 좋아졌나”보다 “무엇이 나빠졌나”를 먼저 본다. 운영에서는 개선 하나보다 회귀 하나가 더 비싸기 때문이다.

변경(규칙 / 판단자 / 태깅 기준)
   → 고정된 평가 묶음 재실행
   → 정량 채점 + 정성 회고  (두 트랙 병행)
   → 좋아진 것 / 회귀한 것 분리
   → 회귀 우선 점검 → 게이트 통과 또는 보류

여기서 측정 대상을 분명히 해둔다. 우리가 재는 것은 코퍼스를 짓고 검증하는 데이터 파이프라인의 품질과 그 판단자다. 사용자에게 나가는 주 단위 식단을 짜는 코어 엔진은 LLM 없이 도는 결정론 알고리즘으로, 이 측정의 대상이 아니다. 데이터 공정에서는 판단하는 LLM이 일하고, 식단을 짜는 자리에서는 재현 가능한 결정론이 일한다.

왜 측정이 이렇게 어려운가

측정 체계가 어려운 건, 양쪽 트랙이 각자 다른 방식으로 사람을 속이기 때문이다.

자동 지표만 믿으면 지표 과적합에 빠진다. 점수는 또박또박 오르는데 실제 품질은 제자리인 상황 — 측정 가능한 것만 좋아지고 정작 중요한 것은 방치된다. 지표가 목표가 되는 순간 그 지표는 좋은 측정이기를 멈춘다. 반대로 정성 회고만 믿으면 느리고, 사람마다 다르고, 확증 편향에 약하다. 좋아진 사례를 먼저 기억하는 그 습관이 회고를 오염시킨다.

그래서 둘을 묶되, “한 번 좋아진 점수” 같은 단발 선언을 믿지 않는다. 좋아짐은 추세와 회귀 부재로 입증되는 것이지 한 번의 점수로 선언되지 않는다. 한 가지 더 까다로운 층이 있다 — 판단자도 측정 대상이라는 점이다. 코퍼스에 들일지 말지를 가르는 LLM 판단자를 손보면, 그 판단자의 일관성과 편향도 같이 다시 재야 한다. 재는 도구가 흔들리면 측정 전체가 흔들린다.

”측정 없이 바꾸지 않는다”

이 모든 것을 한 줄로 줄이면, 우리의 운영 규율은 “측정 없이 바꾸지 않는다”이다. 변경을 측정에 묶고, 전후를 안전하게 비교하며, 통과 판정 전에 회귀부터 차단한다. 한 가지는 정확히 해둬야 한다 — 이것은 피드백이 들어오는 즉시 무언가가 자동으로 재학습되는 구조가 아니다. 피드백과 측정 신호는 모였다가, 주기적인 회고 루프에서 사람과 체계가 함께 읽고, 거기서 규칙·판단 기준·정책을 손본다. eval은 자동 갱신 장치가 아니라 사람이 보는 측정·판정 루프다.

엔진을 크게 갈아엎던 시기를 지나, 우리 작업의 무게중심은 측정 체계를 정교화하고 주간 회고로 신호를 읽으며 안전한 전후 비교로 변경을 확인하는 쪽으로 옮겨왔다. 측정 체계는 느려 보인다. 변경 한 번에 재측정 한 번이 따라붙으니 당장은 더디다. 그러나 가장 빠른 길이다. 착각으로 굴리면 회귀가 소리 없이 쌓이고, 측정으로 굴리면 매 변경이 검증된 자산으로 남는다.

개선을 증명한다는 것

“바꿀 때마다 측정하고 회귀를 먼저 잡는다”는 규율은 식재료에 묶여 있지 않다. 묶여 있는 건 변경 → 동일 기준 재측정 → 좋아진 것과 나빠진 것 분리 → 회귀 우선 차단이라는 루프의 구조이고, 이 구조는 도메인이 바뀌어도 옮겨간다. 모델이나 프롬프트를 바꾸는 일은 쉽다. 어려운 건 그게 정말 개선인지 증명하는 일이다.

우리는 한국어 식문화 코퍼스라는 충분히 지저분한 도메인에서 이 eval 하네스를 굴리며, “좋아졌다”를 주장이 아니라 측정으로 바꿔왔다.

#engineering #llm #evaluation #data-quality #bobbiso
← 목록으로