- src: phase_z2 composition/mapper/pipeline/placement_planner/retry, ai_fallback(prompts/schema/validate), mdx_text_atoms 신규 - Front: PipelineTracePanel 신규, FramePanel/SlideCanvas/Home/designAgentApi 등 갱신 + 테스트 4종 추가 - templates/phase_z2: catalog(component_expansion_registry, node_slot_mapping 신규), frames, families, slide_base 갱신 - tests/matching: phase2~26 매칭 실험 스크립트·리포트·온톨로지 전체 (미커밋 진행분) - tests: b4_v4 evidence, task5~28.5 시리즈, regression(imp95 baseline) 등 신규 테스트 대량 추가 - docs/reference: MDX 구조 인벤토리, MDX→Frame 구조 계약 문서 - scripts: mdx 계약/parity/coverage/viewport 체크, gitea comment, run sync 유틸 - .gitignore: tmp*.json, chromedriver, .orchestrator, *.pkl, Front_test* 등 임시/스냅샷 제외 미완성 작업의 보존용 스냅샷 커밋 (2026-07-02) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.3 KiB
4.3 KiB
V2 실패 원인 진단 리포트
생성: 2026-04-24T09:45:39 · 모델: jhgan/ko-sroberta-multitask
V2(의미 기반 rerank) 가 TARGET 4 섹션 모두에서 V1 1위를 바꾸지 못한 이유를 가설 A~E 로 분리 진단한 결과.
1. 진단 해석 (요약)
- 가설 B 약간 의심: pairwise cosine 평균 = 0.729 — 구분이 다소 약함
- 정답 프레임의 32-전체 cosine 랭킹 (summary): 01-2=1위, 02-2.2=1위, 03-1=1위, 03-2=1위 (Top-5 내 4/4)
- V1 Top-5 내 V1↔cosine Spearman 평균 = 0.457 (1=완전 일치, -1=완전 반대) → V1 순서와 cosine 순서가 유사
Variant 별 32-전체 Top1-Top2 평균 gap (클수록 구분력 강함):
summary: mean gap = 0.0307full_text: mean gap = 0.0310title_only: mean gap = 0.0244summary_plus_tokens: mean gap = 0.0140
2. 입력 품질
2.1 Frame content (32 프레임)
- 글자 수: 평균 235.2 · 중앙값 228.5 · 최소 147 / 최대 373
- 프레임 간 pairwise cosine 분포 (496 쌍): 평균 0.7291 · 중앙값 0.7275 · p90 0.8007 · 범위 [0.5441, 0.9145]
- 근접 중복 쌍 (cosine ≥ 0.9): 1개
1171281211↔1171281212cosine=0.9145
2.2 MDX 섹션별 입력 (variant 비교)
| 섹션 | summary 글자 | full 글자 | title 글자 | summary+tokens 글자 |
|---|---|---|---|---|
| 01-2 | 64 | 1859 | 11 | 625 |
| 02-2.2 | 34 | 1108 | 18 | 436 |
| 03-1 | 32 | 684 | 18 | 318 |
| 03-2 | 36 | 1025 | 27 | 426 |
| 01-1 | 46 | 981 | 8 | 423 |
| 02-1 | 80 | 476 | 13 | 317 |
| 02-2.1 | 35 | 282 | 25 | 170 |
3. 32-전체 cosine 진단 (현재 V2 입력 = summary)
| 섹션 | 정답 rank | %ile | 정답 cosine | top1 | top1-top2 gap | 32 평균 cosine |
|---|---|---|---|---|---|---|
| 01-2 | 1 | 100.0 | 0.7295 | 0.7295 | 0.0439 | 0.6067 |
| 02-2.2 | 1 | 100.0 | 0.6416 | 0.6416 | 0.0492 | 0.4527 |
| 03-1 | 1 | 100.0 | 0.634 | 0.634 | 0.0381 | 0.4661 |
| 03-2 | 1 | 100.0 | 0.5991 | 0.5991 | 0.0191 | 0.4647 |
| 01-1 | — | — | — | 0.6017 | 0.0137 | 0.5434 |
| 02-1 | — | — | — | 0.6285 | 0.0302 | 0.4789 |
| 02-2.1 | — | — | — | 0.5511 | 0.0205 | 0.4427 |
4. V1 Top-5 내부 cosine 진단 (현재 V2 입력 = summary)
| 섹션 | V1 순서 | cosine 순서 | Spearman | Top1-Top2 gap |
|---|---|---|---|---|
| 01-2 | 18 → 27 → 11 → 1 → 9 | 18 → 27 → 11 → 1 → 9 | 1.0 | 0.0853 |
| 02-2.2 | 14 → 9 → 12 → 3 → 5 | 14 → 12 → 3 → 9 → 5 | 0.7 | 0.1558 |
| 03-1 | 13 → 15 → 20 → 27 → 19 | 13 → 15 → 20 → 27 → 19 | 1.0 | 0.0381 |
| 03-2 | 29 → 12 → 9 → 11 → 8 | 29 → 8 → 11 → 12 → 9 | 0.1 | 0.1159 |
| 01-1 | 1 → 27 → 11 → 12 → 20 | 27 → 11 → 12 → 1 → 20 | 0.4 | 0.0374 |
| 02-1 | 12 → 14 → 27 → 3 → 20 | 20 → 14 → 12 → 27 → 3 | -0.1 | 0.0115 |
| 02-2.1 | 11 → 8 → 3 → 29 → 9 | 29 → 8 → 3 → 11 → 9 | 0.1 | 0.0491 |
5. 입력 variant ablation
TARGET 4 섹션의 정답 rank (32-전체) variant 별 비교.
| 섹션 | summary | full_text | title_only | summary+tokens |
|---|---|---|---|---|
| 01-2 | 1 | 24 | 1 | 2 |
| 02-2.2 | 1 | 2 | 1 | 3 |
| 03-1 | 1 | 12 | 1 | 11 |
| 03-2 | 1 | 1 | 2 | 3 |
TARGET 4 섹션의 Top1-Top2 gap (32-전체) variant 별 비교 — 크면 구분력 강함.
| 섹션 | summary | full_text | title_only | summary+tokens |
|---|---|---|---|---|
| 01-2 | 0.0439 | 0.0175 | 0.0749 | 0.0075 |
| 02-2.2 | 0.0492 | 0.0385 | 0.0205 | 0.0166 |
| 03-1 | 0.0381 | 0.0562 | 0.0144 | 0.0284 |
| 03-2 | 0.0191 | 0.0421 | 0.0108 | 0.0048 |
6. 다음 단계
이 리포트의 수치를 근거로 주범 가설을 확정한 뒤 해당 축만 개선 — 전체 리팩터 전에 원인 분리가 목적.
- 가설 B (frame content 품질) 이 주범이면:
analysis.md"내용 설명" 을 재작성해야 함. 분량을 늘리고 구조적 특징을 더 구체적으로 적어 구분도 확보. - 가설 A (MDX summary) 이 주범이면:
detect_mdx.build_summary를 개선 또는 variant 교체. - 가설 E (V1 Top-5 범위) 가 주범이면: rerank 범위를 Top-10 / Top-15 로 확장, 또는 V2 를 32-전체 rerank 로 변경.
- 가설 C (모델) 은 A/B/D/E 배제 후에만 검토 (과잉 실험 방지).