B-6 「관련 문서 없음」 — 정답 없음 골든셋 24건 · 1순위 점수 분포 · 문턱 제안

무엇을

미결 「B-6 「관련 문서 없음」을 실제로 낼 규칙이 없다」(09-15) — 검색이 점수 문턱 없이 항상 5건을 돌려줘 생성 측정 96문항에서 「관련 문서 없음」이 한 번도 안 나왔다. 여권 재발급처럼 지식베이스에 없는 문의에도 엉뚱한 조항 카드가 뜬다. 문턱을 재려면 골든셋에 정답 없음 케이스가 먼저 있어야 한다(0건이었다). 이 티켓은 케이스를 만들고 분포를 잰다 — 문턱 값을 정하지는 않는다.

한 것

측정 (2026-09-21)

측정일   2026-09-21 · 커밋 97f7b25-dirty ⚠ 골든셋·하네스 변경이 커밋되기 전에 쟀다
명령     ELASTICSEARCH_URL=http://localhost:9200 .venv/bin/python scripts/measure_no_answer_threshold.py --device mps
표본     정답 있음 = B 96건(상위5 적중 BM25 80 · dense 94 · rerank 94) · 정답 없음 = B-6 24건
환경     로컬 Darwin arm64 · mps · callguard-kb-single 98조항 · models/koe5 · models/bge-reranker-v2-m3

1순위 점수 분포(정답 있음은 상위 5 적중 항목만) — 눈금이 계열마다 다르다(BM25 raw · 코사인 · 리랭커 로짓):

계열 정답 있음 min / 중앙 / max 정답 없음 min / 중앙 / max 겹침
BM25(운영) 4.66 / 15.47 / 35.92 4.41 / 7.67 / 14.33 4.66~14.33 겹친다
dense 0.630 / 0.780 / 0.909 0.588 / 0.646 / 0.761 0.630~0.761 겹친다
dense + rerank −9.53 / 0.69 / 6.62 −10.69 / −7.59 / −3.05 −9.53~−3.05 겹친다
계열 정답 0건 잃는 최대 t → 걸러냄 정답 1건 잃는 t → 걸러냄 전부 거르는 t → 정답 잃음
BM25 4.66 → 3/24 5.36 → 5/24 14.52 → 33/80
dense 0.630 → 6/24 0.671 → 15/24 0.762 → 37/94
dense + rerank −9.53 → 6/24 −7.15 → 15/24 −3.00 → 22/94

세 계열 모두 문턱 하나로 깨끗이 못 가른다. dense 0.671 에서 잡담 4/4 · 시 범위 밖 2/2 는 다 걸러지고, 남는 9건은 전부 「요금·신고·서류·지원금」 어휘가 겹치는 타 기관 소관 문의다 — 어휘가 가까운 오답은 점수로 못 가른다. MANUAL-2.2(소관 안내)는 상위 5 에 BM25 1/24 · dense 0 · rerank 0 이라 그 길로도 못 간다.

문턱 제안 — 팀 결정 후. 코드에 넣지 않았다

남은 것

2026-09-21 — 닫음 (측정까지가 이 티켓)

케이스 24건·하네스 no_answer 항목·점수 분포 측정·문턱 후보(dense 0.67 안팎, BM25 는 권하지 않음)까지 냈다. 문턱을 코드에 넣는 것은 팀 결정 뒤 새 티켓(새 B-6 케이스로 재측정 → 어댑터 규칙 → abstained 확인)이다 — 같은 24건으로 고르고 재는 자기충족을 피하려는 것이다.