Files
kebab/tasks/p9/p9-fb-39-retrieval-precision-tuning.md
th-kim0823 c62a8ff503 docs(fb-39b): design + HOTFIXES + new task spec + INDEX + README + SMOKE
Tasks 4 + 5: comprehensive doc update for embedding upgrade (multilingual-e5-large).

- design §5 + §9: update embedding_model / dimensions references (384 -> 1024)
- HOTFIXES: add fb-39b entry with user re-ingest procedure + backwards-compat notes
- tasks/p9-fb-39b-embedding-upgrade.md: new task spec (completed status)
- INDEX.md: add fb-39b row under RAG quality phase
- fb-39 task banner: append fb-39b link as lever implementation
- README: update config defaults + fastembed model size + embedding field docs
- SMOKE.md: append embedding upgrade verification section with e5-small -> e5-large sequence

Wire schema: no change (additive at config level, new table created by existing code).
Binary version: 0.6.0 -> 0.7.0 (cascade rule: embedding_model change = minor bump).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 23:28:48 +09:00

48 lines
2.5 KiB
Markdown

---
phase: P9
component: kebab-eval + docs
task_id: p9-fb-39
title: "Retrieval precision 튜닝 (rank 5+ 노이즈 완화)"
status: completed
target_version: 0.7.0
depends_on: []
unblocks: []
contract_source: ../../docs/superpowers/specs/2026-04-27-kebab-final-form-design.md
contract_sections: [§3 chunking, §4 search, §7 RAG, §10.3 eval metrics]
source_feedback: 사용자 도그푸딩 2026-05-06 — Claude Code 가 kebab CLI 사용 후 "rank 5+ 부터 노이즈 섞임" 지적. precision-at-k 가 k=5 이후 떨어짐.
---
# p9-fb-39 — Retrieval precision 튜닝
> ✅ **Eval foundation 부분 구현 완료.** P@k metric (P@5, P@10) 추가. 본 spec 의 lever 적용 (chunk policy / RRF / cross-encoder / embedding 업그레이드) 은 별도 task 로 분리 (fb-39b 이후).
>
> - Design: [`docs/superpowers/specs/2026-05-10-p9-fb-39-eval-foundation-design.md`](../../docs/superpowers/specs/2026-05-10-p9-fb-39-eval-foundation-design.md)
> - Plan: [`docs/superpowers/plans/2026-05-10-p9-fb-39-eval-foundation.md`](../../docs/superpowers/plans/2026-05-10-p9-fb-39-eval-foundation.md)
> - fb-39b (lever 적용 — embedding upgrade): [`tasks/p9/p9-fb-39b-embedding-upgrade.md`](./p9-fb-39b-embedding-upgrade.md) ✅
## 증상 / 동기
- top-1~4 chunk 는 관련 있으나 5번째부터 무관 chunk 섞임. recall OK, precision-at-k 저하.
- LLM 이 noise chunk 를 context 에 포함하면 답변 품질 저하 / hallucinate 위험.
## Goal (skeleton — brainstorm 단계에서 확정)
- top-k 결과의 precision 향상. 후보:
1. chunk policy 재검토 (size / overlap / boundary).
2. RRF k 파라미터 (현재 default 60) 재튜닝 또는 score gate threshold default ON.
3. cross-encoder reranker PoC — top-N retrieve → rerank → top-k.
4. embedding model 업그레이드 (fastembed default → 더 큰 / 한글 강한 모델).
- 평가 지표: P@5, P@10, MRR, NDCG. P5 eval runner 활용.
## 후속 작업 — brainstorm 필요 항목
- 어느 lever 부터 손볼지 — 비용 / 효과 trade-off.
- cross-encoder 도입 시 local-only 유지 가능한지 (fastembed cross-encoder 지원?).
- embedding 변경이면 `embedding_version` cascade — 전체 재처리 필요.
## Risks / notes
- embedding_version bump = 전체 vector index 재구축. p9-fb-23 incremental ingest 와 충돌 가능.
- cross-encoder 는 latency 증가 — 단일 사용자 local 환경에서 받아들일 수 있는지 확인.
- eval golden set 부족하면 튜닝 불가 — golden set 확장 선행 필요할 수 있음.