모델 구성 재측정 + 하네스 기록(--record) — 판정에 쓸 수 있는 값으로

무엇을

dense · 리랭커 · 규칙+NER 구성을 현재 코드로 하네스에 다시 돌리고, --record 로 eval_run 에 남긴다. 같은 구성으로 STT 오류 내성 곡선(0~20%)도 다시 그린다.

왜

6주차 판정(w6-core-baseline-check)이 09-30 이다. 2026-09-21 재측정은 운영 구성(규칙 + BM25)만 쟀다 — 측정한 머신에 모델 파일이 없었고 기록 DB 도 없어 run_id 가 없다. 모델 구성의 0.979/0.919 와 「규칙+NER 누락 0/0/1/1/1」은 09-15 로컬 측정 그대로다. §5 는 값 하나에 측정일·커밋·명령·표본 수 넷을 요구한다 — 지금 그 값은 넷 중 커밋이 낡았다.

완료 조건

2026-09-22 결과

골든셋 v1-150.1(279건 — decisions/212 로 발화 14건을 새로 썼다. 라벨은 그대로) · 지식베이스 98조항(ES 문서 100 = 98 doc_id) · ES 9.5.1 + nori · 로컬 PostgreSQL 17(callguard-postgres, 127.0.0.1:5434 — 5432 는 다른 프로젝트 컨테이너가 쓰고 있다) · 커밋 121157e-dirty(추적 파일 변경 없음 — 미추적 .claude/worktrees/ 때문에 붙은 꼬리표) · CPU · 두 구성 다 3회 중 최저치.

# 운영 구성 — run_id=1 · 2026-09-22 11:02 KST
ELASTICSEARCH_URL=http://127.0.0.1:9200 DATABASE_URL=postgresql://callguard:…@127.0.0.1:5434/callguard \
  .venv/bin/python scripts/run_eval.py --runs 3 --no-ner --retriever bm25 --record
# 모델 구성 — run_id=2 · 2026-09-22 11:03 KST
… scripts/run_eval.py --runs 3 --retriever rerank-dense --record     # NER 은 기본값 models/koelectra-ner
섹션 운영(규칙 + BM25) · run_id 1 모델(dense + 리랭커 + 규칙+NER) · run_id 2
검색 Recall@5 (n 96) 0.812 (78) 0.969 (93)
검색 MRR 0.635 0.914
C-5 누락 (n 28 · P1 4·P2 2·P3 3·P4 5·P5 4·P6 7·P7 3) 0 — 패턴 오분류 0 · 과잉 0.0 0 — 패턴 오분류 0 · 과잉 0.0
F-2 필요서류 판정 (n 99) 정확도 1.0 정확도 1.0
C-1~C-4 컴플라이언스 재현율 1.0 · 정밀도 1.0 · tp 14 같음
C-6 콜 가드 (n 15) 재현율 1.0 · 정밀도 1.0 · tp 9 같음
B-6 정답 없음 (n 24) 기권 0 기권 0
trigger · domain_routing 측정 불가 — 모듈 미구현 같음
call_temperature 측정 불가 — 골든셋에 채점 대상이 없다 같음
asr 측정 불가 — 하네스에 STT 포트가 없다 같음
generation 측정 불가 — 생성 포트를 꽂지 않았다 아래 별도 1회

STT 오류 내성 곡선 — scripts/measure_error_tolerance.py(시드 20260914·15·16, 점마다 최저치) · 11:03~11:07 · 원본 data/processed/error-tolerance/2026-09-22-all.json

목표 실제 WER BM25 R@5 / MRR dense R@5 / MRR rerank-dense R@5 / MRR C-5 누락 규칙 (판정 24) C-5 누락 규칙+NER
0% 0.000 0.812 (78) / 0.635 0.969 (93) / 0.868 0.969 (93) / 0.914 0 0
5% 0.051~0.052 0.812 (78) / 0.637 0.969 / 0.868 0.969 / 0.914 1 — GS-037(P6) 0
10% 0.100~0.102 0.792 (76) / 0.620 0.969 / 0.864 0.969 / 0.903 2 — + GS-033(P7) 0
15% 0.150~0.151 0.802 (77) / 0.610 0.969 / 0.873 0.969 / 0.903 4 — + GS-414·GS-415(P7) 2 — GS-414·GS-415(P7)
20% 0.200~0.201 0.792 (76) / 0.598 0.969 / 0.869 0.969 / 0.898 4 2

이전 값과의 차이 — ⚠ 골든셋 판이 다르다(v1-150 → v1-150.1, 질의 14건 교체). 항목 단위 비교는 성립하지 않는다.

  이전 2026-09-22 차이
운영 R@5 / MRR 0.833 / 0.666 (09-21, 261bce4-dirty, run_id 없음) 0.812 / 0.635 −0.021(−2건) / −0.031
운영 오류 10% R@5 0.812 0.792 −0.021
모델 rerank-dense R@5 / MRR 0.979 / 0.919 (09-15 로컬) 0.969 / 0.914 −0.010(−1건) / −0.005
dense 단독 R@5 / MRR 0.979 / 0.885 (09-15 로컬) 0.969 / 0.868 (곡선 0%) −0.010 / −0.017
규칙 C-5 누락 5/10/15/20% 2 / 3 / 4 / 4 (09-21) 1 / 2 / 4 / 4 주입 말뭉치(고객 발화)가 바뀌어 깨지는 자리가 달라졌다
규칙+NER C-5 누락 0/5/10/15/20% 0/0/1/1/1 (09-15 로컬) 0/0/0/2/2 같은 이유