오류 내성 곡선 — 모델 계열(dense · 리랭커 · 규칙+NER)을 같은 그림에 얹는다 + 모델 구성 하네스 참고치

무엇을

2026-09-21 정성윤 님이 운영 구성(규칙 + BM25) 으로 낸 STT 오류 내성 곡선(jekyll/assets/error-tolerance-2026-09-21.png)에는 모델 계열이 없었다 — 그 머신에 모델 파일이 없어 meta.skipped 로 남겼다. 모델이 다 있는 이 맥에서 같은 조건(시드 3개 · 오류율 0/5/10/15/20% · 골든셋 v1-150)으로 dense · dense+리랭커 · 규칙+NER 을 재어 운영 계열과 한 그림에 얹고, decisions/121 §5 가 정한 대로 모델 구성 하네스 값을 로컬 측정 참고치로 나란히 적는다.

왜

완료 조건

측정 조건 (§5 — 값에 붙는 넷)

   
측정일 2026-09-21
커밋 97f7b25 — 곡선 측정 시점에 작업 트리가 깨끗했다. 하네스 실행 시점에는 측정 코드 무수정, 트리에는 그림 스크립트(plot_error_curve.py, 그리기만) 수정과 산출물만 있었다
골든셋 v1-150.json 의 시작 시점 스냅샷(md5 fb3436ea…, 다른 세션이 F-2 항목을 넣는 중이라 사본으로 고정) — meta.golden_set 에 v1-150-snapshot.json 으로 찍혀 있다
곡선 명령 ELASTICSEARCH_URL=http://localhost:9200 .venv/bin/python scripts/measure_error_tolerance.py --device mps --golden-set <스냅샷> (83초)
그림 명령 .venv/bin/python scripts/plot_error_curve.py --json jekyll/assets/error-tolerance-2026-09-21-models.json --out jekyll/assets/error-tolerance-2026-09-21-models.png
하네스 명령 .venv/bin/python scripts/run_eval.py --runs 3 --retriever rerank-dense --device mps --golden-set <스냅샷> (22초) · 같은 명령 --retriever dense (9초). NER 은 기본값(models/koelectra-ner)으로 켜졌다. --record 는 하지 않았다(기록 DB 없음)
표본 검색 B 항목 96 · C-5 판정 24(주입 말뭉치는 고객 발화 전부) · 하네스 masking n 28 · 시드 20260914/15/16
어디서 Apple M5 맥, torch 2.13 mps, ES 9.5.1 도커(callguard-kb-single 98조항 + KoE5 1024-d 임베딩 적재 상태)

결과 — 오류 내성 곡선 (시드 3개, 검색은 최저·마스킹은 최대. 괄호는 시드 중 최대·최소)

검색 Recall@5 / MRR (n 96)

목표 오류율 실제 WER bm25 (운영) dense dense+리랭커
0% 0.000 0.833 / 0.666 0.979 / 0.885 0.979 / 0.919
5% 0.051~0.052 0.823 (최대 0.833) / 0.658 0.979 (최대 0.990) / 0.878 0.979 (최대 0.990) / 0.914
10% 0.100~0.102 0.812 (최대 0.833) / 0.653 0.979 (최대 0.990) / 0.878 0.979 (최대 0.990) / 0.908
15% 0.151 0.812 (최대 0.833) / 0.644 0.979 / 0.869 0.979 / 0.910
20% 0.200 0.792 (최대 0.823) / 0.621 0.969 (최대 0.979) / 0.873 0.969 (최대 0.979) / 0.898

C-5 누락 건수 (판정 24, 음성 과잉 0/4 전 구간)

목표 오류율 실제 WER 규칙 (운영) — 최대 (최소) 규칙+NER — 최대 (최소)
0% 0.000 0 0
5% 0.050 2 (0) — GS-033·GS-415 (P7 주소) 0 (0)
10% 0.101~0.102 3 (1) — + GS-056 (P6 이름) 0 (0)
15% 0.151 4 (1) — GS-033 · GS-037·GS-412·GS-413 (P6) 1 (0) — GS-037 (P6) / 시드 15 는 GS-415 (P7)
20% 0.200 4 (1) 1 (0) — 15% 와 같은 항목

결과 — 하네스 모델 구성, 3회 최저치 (참고치, decisions/121 §5)

구성 retrieval Recall@5 / MRR (n 96) masking 누락 / 오분류 / 과잉 (n 28)
운영: 규칙 + bm25 (09-21 정성윤, 같은 골든셋) 0.833 / 0.666 0 / 0 / 0.0
NER + dense 0.979 / 0.885 0 / 0 / 0.0
NER + dense + 리랭커 (bge-reranker-v2-m3) 0.979 / 0.919 0 / 0 / 0.0

3회가 전부 같은 값이었다(모델 추론이 결정적이고 ES 인덱스가 고정이라 흔들릴 요소가 없다). compliance·call_guard 는 1.0/1.0 으로 운영 구성과 같다(자기충족 — 상한). closure_gate·trigger 는 그대로 측정 불가.

운영 곡선 대비 무엇이 달라졌나

낙관 요인 — 이 숫자를 옮길 때 같이 옮긴다

고친 것

남은 것