# 05. 증류와 앙상블 — 증거와 결론 (2026-10-07 기준)

## 1. 출력 앙상블(관문 점수 평균)

- **5세대(저장된 test 점수, 구성원 = 각 학습의 validation 선택 checkpoint 16개):** AUC 0.9261(단일 0.910~0.919), 경계 0에서 Fail→Pass 22/2016(1.09%)·Pass→Fail 580/1002(57.9%). 5세대 단일 평가 406회 중 이 점을 지배하는 것 없음. 같은 Fail→Pass에서 Pass→Fail: 1% 58.2%(단일 중앙값 64%), 2% 51.5%(56%), 5% 35.8%(42%). 같은 입력(10+9층) 7개만으로도 AUC 0.9225.
- **9세대(validation, 교사 구성원 14개, `python -m raina_laya.ensemble_evaluate` 실측):** Fail→Pass 33/2007(1.64%)·Pass→Fail 578/1012(57.1%), AUC 0.9253. 구성원 대부분을 지배, 최고 구성원(31/593)과는 비지배.
- 앙상블 크기: 7→16개는 +0.004 AUC 정도의 체감 효과. 21개(3세대)는 Fail→Pass 0%에서 Pass→Fail 85.6%(단일 96~97%).
- 평균 방식: 원시 점수 평균과 z 정규화 평균은 사실상 같음(0.9261 vs 0.9260).

## 2. 가중치 평균(SWA, 한 학습 안)

선택 checkpoint ±5 epoch 평균은 validation AUC +0.0026(8/8, 신뢰구간 +0.0016~+0.0035)이지만 같은 Fail→Pass에서의 Pass→Fail 개선은 오차 범위. 후반 epoch(≥30) 평균은 오히려 나쁨(과학습). 한 학습 안 출력 앙상블과 동일한 효과. **채택 안 함.**

## 3. 증류(앙상블 교사 → 단일 학생)

구현: `gate_soft_targets`(교사 곡별 관문 점수 JSONL, 학습 곡과 정확히 일치해야 함)·`gate_soft_target_mix` α. 관문 CE 목표만 (1−α)·라벨 + α·sigmoid(교사 점수)로 바꾸고 가중치·조건부 항·선택은 라벨 유지. 교사 SHA가 checkpoint에 기록되어 평가 때 대조.

| 비교(같은 분할·같은 시드) | 학생 α=0.5 | 학생 α=1.0 | 기본 후보 |
|---|---|---|---|
| 5세대(루프 밖, k8_do30 시드 29·30) | 0.9196 / 0.9187 | 0.9211 / 0.9191 | 0.9137~0.9187 (5회) |
| 7세대 5라운드 | 0.9158 | **0.9166** | 0.907~0.914 (7개) |
| 8세대 5라운드 | **0.9278** | 0.9264 | 0.913~0.924 (7개) |

(선택 checkpoint의 test 게이트 AUC.) 경계 0에서 Fail→Pass도 학생이 항상 최저(예: 8세대 24·28 vs 34~53). Pass→Fail은 조금 높은 편(경계가 Fail 쪽으로 치우침). 8세대 최고 모델은 학생 `dst_a05`(예비 test 3/3 통과).

- **교사 종류:** 학습 곡 앙상블 교사(in-sample, 같은 곡을 학습한 모델들의 평균, 학습 곡 AUC ≈0.95)와 교차 학습 교사(out-of-fold, AUC 0.917)는 α=0.5에서 비슷하고 α=1.0에서는 in-sample이 더 좋음. in-sample은 추가 학습이 없어 루프에 자동화(`--teacher-after-round 2`).
- **결론(2026-10-07 22:18 KST, 19쌍):** 같은 세대·같은 라운드의 기본 후보 7개 중앙값 대비 학생(선택 checkpoint)의 test 관문 AUC 차이는 평균 **+0.0038, 95% 신뢰구간 +0.0025~+0.0052, 17/19 우세**(7세대 5라운드 2쌍, 8세대 5라운드 2쌍, 9세대 1~4라운드 7쌍, 10세대 1~4라운드 8쌍). 거부 구간 적용 판정 곡 Fail→Pass(10세대)는 학생 6~12 vs 기본 중앙값 12~16으로 일관되게 낮고 Pass→Fail은 동급입니다. **증류는 채택**(루프 기본 후보로 유지). α 0.5와 1.0의 차이는 없습니다(쌍별로 엇갈림).

## 4. 결론과 다음 제안

1. 앙상블은 단일 모델 상한을 분명히 넘습니다. 사용자가 단일 모델 제약을 해제했으므로(2026-10-07) 앙상블을 최고 모델 후보로 평가·package합니다(루프 구현 완료, 9세대부터).
2. 증류 학생은 "앙상블 효과의 일부를 단일 모델로" 가져오는 방법으로 유효합니다. 앙상블이 허용된 지금은 (a) 앙상블 자체, (b) 학생들을 다시 앙상블(2단계)의 두 방향이 남아 있습니다.
3. 확장 구현(PR #73): 3라운드부터 라운드가 끝날 때마다 그 세대의 모든 validation 선택 checkpoint(학생 포함) 앙상블을 후보로 평가합니다. 10세대에서는 교사 앙상블(14개)이 판정 곡 기준 최고 모델이 되어 예비 test 3/3을 통과했습니다. 남은 것: 서빙이 manifest를 읽어 여러 checkpoint를 평균하도록 구현.
