오류 내성 곡선 — 검색 (성공 조건의 절반)

무엇을

주입기로 만든 오류 전사에서 오류율 0·5·10·15·20% 의 Recall@5·MRR 곡선을 낸다(4.2절).

왜 별도 티켓인가

주입기 티켓의 완료 조건에 곡선이 남아 있지만, 주입기는 끝났고 곡선은 모델 학습을 기다린다 — 같은 티켓에 두면 「진행 중」이 무엇을 기다리는지가 안 보인다. 8주 마일스톤이 5주차를 「핵심 주차」로 적은 이유가 이 곡선이고, 성공 조건은 F-2 가 아니라 STT 오류 내성 실험 + 검색 품질 개선 수치다(CLAUDE.md §1).

캘리브레이션은 이미 끝나 있다

골든셋 v1-150 고객 발화 136건 · 단어 815 · 시드 20260914 · 커밋 9970fba-dirty
  목표 0.00 → 0.0000   0.05 → 0.0503   0.10 → 0.1018   0.15 → 0.1509   0.20 → 0.2000

주입한 오류율이 실제로 그 WER 인지 이미 검증됐다. 남은 것은 그 위에서 검색을 돌리는 일이다.

완료 조건

주의

「오류에 강하다」를 목표로 두지 않는다. 10% 에서 0.60 을 못 넘기면 그대로 적고 원인 가설을 붙인다 (절대 원칙 2·8). 목표 수치를 코드에 하드코딩하지 않는다 — 그건 판정선이지 주입기가 맞출 값이 아니다.


2026-09-15 — 세 검색 모두 20% 까지 기준선 위. 단, 낙관적인 곡선이다

측정일 2026-09-15 · 커밋 38f2fc3-dirty · 골든셋 v1-150 · 시드 20260914·20260915·20260916 (점마다 최저치)
ELASTICSEARCH_URL=http://localhost:9200 .venv/bin/python scripts/measure_error_tolerance.py [--only retrieval --device mps | --only masking]
결과 data/processed/error-tolerance/2026-09-15-{retrieval,masking}.json · 로컬 Darwin arm64
B 항목 n96 · 오류를 넣은 문자열 = 하네스 검색 질의(맥락 + 고객 발화)

실제 WER →        0.000        0.051~0.052   0.100~0.102   0.151         0.200
bm25      R@5     0.833 (80)   0.823 (79)    0.812 (78)    0.812 (78)    0.792 (76)
          MRR     0.659        0.651         0.648         0.638         0.614
dense     R@5     0.979 (94)   0.979 (94)    0.979 (94)    0.979 (94)    0.969 (93)
          MRR     0.885        0.878         0.878         0.869         0.873
rerank-   R@5     0.979 (94)   0.979 (94)    0.979 (94)    0.979 (94)    0.969 (93)
 dense    MRR     0.919        0.914         0.908         0.910         0.898

⚠ 이 곡선은 낙관 쪽으로 기운다. 주입기는 실측 편집 81건 중 46.9%(환청·의미 붕괴)를 흉내 내지 못한다 — 같은 WER 에서 실제 STT 보다 덜 파괴적이다. 「오류에 강하다」로 옮기지 않는다. 실제 전사로 잰 곡선이 아니다.

⚠ 모델 학습 전 값이다. 경로에 학습 대상 모델이 없어(주입기 · BM25 · 사전학습 KoE5 · bge-reranker · 사전학습 NER) 재었지만, 정성윤 님 학습 모델이 올라와 검색·마스킹 경로가 바뀌면 같은 명령으로 다시 잰다.

그래서 이 곡선으로 말할 수 있는 것은 «주입기가 흉내 내는 종류의 오류(띄어쓰기·어미 탈락·자모 혼동·숫자 읽기)에는 20% 까지 Recall@5 가 거의 안 떨어진다» 까지다. 환청이 섞인 실제 전사의 곡선은 배치 전사(w2-stt-batch)가 실제 API 로 돈 뒤에 잰다.