B-6 「관련 문서 없음」 문턱 값을 정한다 — 팀 결정
정성윤이 09-22 오늘 진행 기록·미결 항목을 보고 만든 티켓이다. 담당은 «제안»이다 — 본인이 확인하고 맞으면 착수, 아니면 옮긴다.
무엇을
w5-b6-no-answer-threshold 가 정답 없음 24건과 점수 분포, 문턱 후보(dense 0.67 안팎)까지 냈다. 값을 코드에 넣지 않았다 — 팀 결정 뒤에 넣기로 했다. 이 티켓이 그 결정과 적용이다.
왜 지금
운영 SYN-010 재투입(09-22)에서 「이용해 주셔서 감사합니다」에도 추천이 발동해 무관한 조항 5장이 떴다. 문턱이 없어서다.
완료 조건
- 결정 기록(
2xx) — 문턱을 둘지 · 어느 계열(dense)에 어느 값 · 근거는 24건 분포 →decisions/215채택(근거는 24건 분포가 아니라 새 보류 표본 24건) fallback_retriever에 적용 · 정답 있는 96건 Recall 변동을 로그에 그대로 → 0.969→0.958 · MRR 0.868→0.862- 문턱 아래면 카드 0장 + 「관련 문서 없음」이 화면에 간다 → 서버·파서까지는
fired: true, cards: []로 간다(코드로 확인). 운영에서는 배포 뒤에 본다 — 운영은 09-22 12:10 부터 dense(decisions/124)라 이 문턱이 든 서버 이미지가 뜨면 바로 걸린다
2026-09-22 — 채택 · 적용 (류준, 운영 확인 대기라 in-progress)
류준 결정 — 팀 회의 합의 없음. 사전 등록한 규칙으로 정했다(_project/decisions/215).
- 측정 전에 얼렸다 — 후보 dense 1순위
< 0.67하나 · 채택 규칙 「보류 표본 걸러냄 ≥ 12/24 그리고 정답 손실 ≤ 1」 · 보류 표본 24건 (golden-set/b6-holdout-2026-09-22.json, 공식v1-150에 넣지 않음). 셋을 커밋695579d로 먼저 박고 쟀다. - 한 번 쟀다 — 걸러냄 12/24 · 정답 손실 1/93(GS-218, B 96건은 재사용 표본). 두 조건 모두 경계값 그대로 통과라 여유가 없다. 잡담·맞장구 5/5 는 다 걸렀고, 못 거른 12건은 「~하려면 뭘 가져가야」·「신고·기간」 문형의 타 기관 소관이 대부분이다(09-21 과 같은 모양).
- 적용 —
FallbackRetriever(abstain_below=0.67): dense 가 냈는데 1순위가 문턱 아래면[]이고 BM25 로 내려가지 않는다(내려가면 BM25 가 다시 5장을 채운다). dense 0건(벡터 없음)은 지금처럼 BM25. 리랭커가 켜지면 점수가 로짓이라 걸지 않는다. BM25 단독 구성은 그대로(운영은 dense 라 문턱이 걸린다). - 하네스(공식 골든셋, 기록 안 함 1회,
--retriever dense) — B Recall@5 0.969→0.958 · MRR 0.868→0.862(n 96) ·no_answer기권 0→15/24(값을 고른 표본이라 자기충족 — 보류 표본 값은 12/24).
남은 것 — 임베딩이 운영에 실린 뒤(decisions/124) SYN-010 을 다시 넣어 맞장구에 카드가 안 뜨는지 확인하면 done.
화면은 누적 카드가 0장일 때만 빈 상태 문구(팝업 「관련 문서가 아직 없습니다.」)를 띄운다 — 요청 단위 「관련 문서 없음」 표시는 없다(조서희 님 소관, 미결 B-6 항목).
2026-09-22 (저녁) — 보류로 닫는다 (류준)
결정은 났다 — 보류(decisions/215 갱신). 채택 직후 E2E 24건에서 대화체 발화의 60%(114/189)가 기권했고 SYN-015·017 필요서류 절차가 사라져 운영에 걸지 않는다. 장치는 남기고 기본값을 껐다(ai/provider.py no_answer_abstain=False, 테스트로 고정). 대화체 표본으로 다시 재는 일은 w6-b6-conversational-recalibration 으로 넘긴다.