LangSmith 데이터셋 평가가 실제 프로덕션 회귀를 잡는 데 전혀 도움이 안 되는데, 프로덕션 트레이스로 지속적 평가(continuous eval) 돌리는 사람 있음?
langsmith dataset eval has been useless for catching our actual prod regressions, anyone running continuous eval on prod traces?
핵심 요약
LangSmith 데이터셋 평가가 실제 프로덕션 환경의 회귀를 잡아내지 못해, 지속적 평가와 자동화된 데이터셋 업데이트 방안을 찾는 중임.
- 평가 격차 — 오프라인 평가셋과 실제 프로덕션 사용자 행동 간의 괴리로 인해 회귀 탐지 실패함.
- 지속적 평가 — 프로덕션 트레이스를 활용해 평가셋을 자동으로 업데이트하고 실패 사례를 클러스터링하는 도구 탐색 중.
- PII 보안 — 프로덕션 데이터의 민감 정보 보호를 위한 비식별화 및 온프레미스 평가 환경 구축 고민.
- 자동화 전략 — 평가셋 드리프트를 방지하기 위해 임베딩 기반의 유사도 측정 및 자동 프로모션 로직 고려.
우리 LangChain 에이전트(LangChain 0.3.x, LangGraph 0.2.x, Claude Sonnet 4.5) 돌린 지 6개월 됐다. 오프라인 평가는 DeepEval 쓰고 있고. 이 조합이 돌아가긴 하는데, 도저히 메꿀 수 없는 구조적인 평가 공백이 하나 있네.
문제는 이거야: LangSmith 데이터셋 평가는 약 600개의 라벨링된 예제로 돌아가는데, 통과율이 87%라 겉보기엔 괜찮아 보여. 근데 실제 사용자 트래픽에서의 운영 환경 실패율은 14% 정도거든(사용자 비추천 + 층화 추출 샘플 수동 검토 기준). 즉, 오프라인 평가가 온라인 실패를 제대로 예측하지 못하고 있다는 거지.
지난 스프린트에 운영 환경에서 실패한 트레이스 100개를 뜯어봤어. 그중 40%가 오프라인 평가셋에는 아예 존재하지도 않는 입력 패턴이더라. 4개월 전에 당시 사용자 행동 기반으로 평가셋을 만들었는데, 그사이 사용자 의도 분포가 확 바뀐 거야(새로운 제품 기능이 추가되고, 툴 조합이 바뀌고, 말투도 변함). 근데 평가셋은 그대로니까 당연히 이 모양이지.
진짜 필요한 건 이거야: 운영 트레이스에서 샘플을 뽑아서 자동으로 평가 기준(rubric)을 돌리고, 실패한 건 자동으로 평가셋으로 승격시키고, 새로 발생하는 실패 유형을 잡아내는 '지속적 평가(continuous eval)' 시스템. Confident AI가 이걸 하던데 꽤 괜찮아 보여. LangSmith 데이터셋도 API를 통해 운영 트레이스를 데이터셋에 추가할 수 있는 기본 기능은 있는데, 우리처럼 하루 1.2만 건씩 트레이스가 쌓이는 환경에선 워크플로우가 너무 수동적이고 투박해.
구체적으로 궁금한 건 이거야:
-
하루 1만 건 이상의 트레이스를 처리하면서 지속적 평가를 제대로 해주는 툴이 또 있을까? LangSmith 수동 워크플로우는 진짜 너무 고통스러워. Confident AI 말고 다른 대안 있나?
-
PII(개인정보) 마스킹 문제. 운영 트레이스에는 외부로 절대 보내면 안 되는 사용자 데이터가 들어있거든. LangSmith는 엔터프라이즈 온프레미스 옵션으로 해결하는데, 다른 평가 툴들은 대부분 평문 데이터를 전제로 하더라고.
-
자동 승격 전략. 지금 생각 중인 건 이거야: 평가 모델(judge)을 써서 트레이스를 채점하고, (a) 평가 모델이 실패라고 판단하고 (b) 기존 평가 케이스와 임베딩 거리가 일정 수준 이상 차이 날 때만 자동으로 평가셋에 추가하는 방식. 평가 모델의 오류를 잡기 위해 매주 사람이 검토하는 과정도 넣고.
혹시 장난감 수준 말고 제대로 된 규모에서 이거 돌리고 있는 사람 있나? 특히 평가셋 드리프트 문제(평가 모델의 사각지대로 자동 승격이 편향되는 문제)를 어떻게 해결하는지, 그리고 입력 분포 변화를 어떻게 감지하는지(명시적으로 측정하는지, 아니면 사후 대응하는지) 진짜 궁금해.


