피드로 돌아가기
Evidence Beats Certainty: Why My Classifier Refuses to Pretend Every Product Has an Answer
Dev.toDev.to
Backend

Confidence 0.82 임계값 기반 Uncertainty 모델링을 통한 분류 시스템 신뢰성 확보

Evidence Beats Certainty: Why My Classifier Refuses to Pretend Every Product Has an Answer

Kingsley Onoh2026년 6월 13일8intermediate

Context

관세 분류 시스템에서 분류 결과의 불확실성을 무시하고 성공 상태로만 저장하는 Persistence 레이어의 설계 결함 발견. 단순 완료 여부만 판단하는 Happy Path 중심의 처리 로직으로 인해 데이터의 증거 기반 신뢰성이 훼손되는 리스크 발생.

Technical Solution

  • Evidence 기반의 상태 결정 모델을 도입하여 'Classification is evidence, not a label' 원칙 적용
  • Rust 기반의 outcome_decision 함수를 통해 blocked, needs_review, classified로 상태를 세분화하여 결정 로직을 단일 지점으로 응집
  • Confidence score 0.82 미만인 경우를 low_confidence로 정의하여 강제 Review 큐로 라우팅하는 결정론적 경계 설정
  • 유사한 점수를 가진 후보군 존재 시 tie_candidate 상태를 부여하여 최적 해의 불확실성을 데이터베이스에 보존
  • 결과 값뿐만 아니라 failure_reasonrejected candidates를 함께 저장하여 감사 추적(Audit Trail)의 정밀도 향상
  • 단순 처리 완료가 아닌 상태, 사유, 선택 코드, 후보 리스트를 모두 검증하는 Regression Test 체계 구축

- 시스템이 항상 답을 내놓는 '완결성'보다 데이터가 증거를 갖췄는지 판단하는 '정확성'을 우선 설계했는가? - 도메인의 불확실성(Uncertainty)을 UI 텍스트가 아닌 데이터베이스의 Durable Outcome으로 모델링했는가? - 결정 로직(Decision Logic)이 여러 서비스 레이어에 흩어져 있지 않고 단일 함수나 모듈로 응집되어 있는가? - Happy Path 외에 '불확실한 결과'를 강제하는 Edge Case 테스트가 CI/CD 파이프라인에 포함되어 있는가?

원문 읽기