0044: real100 Eval Case 확장 — In-Place n 증가 정책
0044: real100 Eval Case 확장 — In-Place n 증가 정책
| Field | Value |
|---|---|
| Status | Accepted (Superseded by ADR 0052) |
| Date | 2026-05-14 |
| Issue | #732 |
| Authors | hskim-solv |
| Tags | eval, real-data, dataset-cardinality |
| Superseded by | ADR 0052 (n=21→221 step-change via LLM-assisted generator) |
Archive note (2026-06-02): 본 ADR 본문의 real100 경로(
reports/real100,data/index/real100)와make real-eval-baseline-update예시는 historical이다. 현행 private eval 표면은real100_v2(make real-eval-v2-*,reports/real100_v2); legacy real100 은 archive-only(ADR 0005 / CLAUDE.md ban-list). 본문은 변경하지 않는다(이미 ADR 0052 로 Superseded).
TL;DR
- ADR 0044: real100 eval 케이스를 n=21 → n≥30 → n≥50 로 in-place 확장 (같은 100-doc 코퍼스, 같은 path)
- 새 시리즈 분기 안 함 —
num_predictions가 n 추적, 비교 항상 n-aware - 케이스 정의는
eval/real_config.local.yaml(gitignored) 유지, aggregate 만 공개
배경
real100 비공개 eval 표면 (eval/real_config.local.yaml, reports/real100/) 은 100개 비공개 RFP 문서를 인덱싱하지만 n = 21 케이스 만 평가한다. n = 21 에서 통계 신호 약함:
- Pool-recall 100% 신뢰구간 ±21pp (Wilson 95%)
- 단일 케이스 정확도 flip 이 헤드라인 +4.8pp 변동
- Silence threshold
max(5e-4, 0.5 / n_min)(retired aggregate policy) 가 0.024 로 해소 — 의도한 수렴 신호보다 훨씬 큼
100개 문서 모두 이미 data/index/real100/ 에 수집됨; 갭은 케이스지 문서 아님. 기존 코퍼스로 n 확장은 low-risk + high-signal.
결정
새 병렬 eval 시리즈 시작 대신 같은 위치에서 케이스셋 확장 (같은 reports/real100/ 시리즈, 같은 eval/real_config.local.yaml path).
근거:
-
같은 코퍼스, 같은 인덱스. 100-doc 코퍼스와 인덱스 미변경. Cardinality 는 케이스 (쿼리) 지 문서 아님. 케이스 추가는 과거 검색 측정 무효화 안 함 — 통계 검정력 향상.
-
num_predictions가 n 추적. 모든eval_summary.json스냅샷이 이미num_predictions기록 — 모든 기준선 비교의 권위 있는 n.reports/real100/baseline.aggregate.json도 커밋 시점에num_predictions기록하므로 델타 비교 항상 n-aware. -
Silence threshold 자동 조정. retired aggregate policy 정의
δ_silence = max(5e-4, 0.5 / n_min). n 증가가 config 변경 없이 자동 threshold tighten. -
ADR 0005 경계 보존. 케이스 정의 (쿼리 + 비공개 RFP 콘텐츠 참조 예상 답변) 는
eval/real_config.local.yaml(gitignored) 유지. ADR 0005 에 따라 aggregate 통계만 공개 커밋. 본 ADR 은 확장 결정 기록; 운영자가 로컬에서 케이스 추가 적용.
목표 Cardinality
n ≥ 30 단기 목표 (n = 21 에서). n = 30 일 때:
- Wilson 95% CI on recall 이 ±21pp → ±18pp 좁아짐
- 단일 케이스 flip 이 헤드라인 +3.3pp 변동 (n = 21 의 +4.8pp 대비)
- Silence threshold 0.017 로 tighten (0.024 대비)
장기 목표: n ≥ 50 (silence threshold ≤ 0.010, CI ≤ ±14pp).
케이스 선정 기준
새 케이스 충족 조건:
- 검증 가능 expected terms — expected_terms 가 인덱싱된 청크 텍스트에 verbatim 으로 출현 (합성/패러프레이즈 아님)
- 다양한 query type — single_doc, comparison, abstention 케이스 포함해 분포 균형
- 문서 커버리지 — 기존 케이스가 다루지 않은 문서 선호해 코퍼스 활용 최대화
- 안정적 ground truth — expected 답변이 주관적 아닌 사실적 (예산, 날짜, 기술 요구사항)
결과
reports/real100/eval_summary.json이 각 확장 run 후 더 높은num_predictions보임. 다운스트림 스크립트 (리더보드, 델타 보고서) 가 summary 에서num_predictions자동 읽음- 커밋된
reports/real100/baseline.aggregate.json은 각 확장 run 후make real-eval-baseline-update로 업데이트해 새 n 을 공개 provenance chain 에 기록 필요 - 더 낮은 n 의 과거 기준선은 부호 비교 (델타 방향) 에 유효하지만 크기 비교에는 무효 — reviewer 가 기준선 bump 시 PR 설명에 n 변경 명시 필요
검토한 대안
새 별도 시리즈 (reports/real30/): 거부. 리더보드 시계열을 이득 없이 분할; 100-doc 코퍼스 공유라 검색 측정 직접 비교 가능.
비공개 데이터 확장 (새 문서) 으로만 증가: 연기. 새 문서 수집은 ADR 0005 리뷰 + 인덱스 재빌드 필요. 기존 100-doc 코퍼스 내 케이스 확장이 마찰 더 낮은 즉시 개선.
참조
- ADR 0001 — naive_baseline 불변량 (영향 없음; 공개 fixture smoke eval)
- ADR 0005 — eval 분리 경계 (비공개 데이터 gitignored 유지)
- retired aggregate policy — 리더보드 silence threshold + n-aware 공식
- Issue #732 — 구현 추적