## 배경 Phase 16 메인 이슈 #75 의 sub-issue (1/2). Phase 15 의 *static prune* 을 확장하여 **iterative prune + regrow** 로 학습 중 topology 가 진화하는 DST (Dynamic Sparse Training) 구현. ## 목표 1. **regrow 메커니즘** — pruned edge 중 일부를 다시 살리기 (mask=0 → mask=1). 두 변형: - **RigL** (Evci 2020): 가장 높은 |gradient| 위치 우선 regrow - **SET** (Mocanu 2018): random regrow (baseline) 2. **constant sparsity 유지** — prune step + regrow step 동량 → 총 sparsity 고정 3. **gradient signal 활용** — pruned edge 의 gradient 가 dense weight 처럼 계산되어야 함 (mask=0 인 위치도 backward 통과 시 grad 측정 가능) 4. **sweep**: Phase 15 dense baseline + 50% prune (static) + 50% prune+regrow (DST RigL) + 50% prune+regrow (DST SET) 비교 ## 설계 결정 - **edge_mask 는 그대로** — buffer 로 유지, prune/regrow 가 mask 갱신 - **regrow scoring**: RigL 의 경우 *dense gradient* 측정 필요 → forward 시 mask 적용하되 backward 는 dense gradient 가 흐르도록 (mask 의 gradient blocking 우회) - **gradient measurement 한정**: regrow score 측정 시점에만 dense gradient 측정 (학습 중에는 정상 mask gradient) ## 작업 항목 - [ ] ``HybridGraphLinear`` 확장: - ``regrow_by_gradient(n, grad_metric_tensor)``: 상위 n 개 pruned 위치 un-mask - ``regrow_random(n)``: random n 개 pruned 위치 un-mask - regrow 시 신규 활성화 edge 의 weight 초기화 정책 (0 또는 작은 random) - [ ] gradient measurement helper — pruned 위치도 grad 흐르도록 single-step dense gradient 측정 - [ ] tests: - regrow 정확성 (정확히 n 개 살아남, 기존 alive 변경 없음) - regrow 후 forward / backward 가 새 edge 에서 정상 작동 - constant sparsity 유지 (prune + regrow 동량) - [ ] demo 확장: - ``TrainConfig.regrow_at_steps`` / ``regrow_fraction`` / ``regrow_method`` (RigL / SET) - train loop: prune step 직후 같은 수만큼 regrow - [ ] 노트북 ``15-phase16a-rigl-set-regrow.ipynb``: - 4 mode × 2 seed: dense / static-prune-50% / RigL-DST-50% / SET-DST-50% - 자동 verdict: constant sparsity / RigL ≥ static / RigL ≥ SET / all-finite ## 완료 조건 - 202 → ~220+ tests, all green - coverage ≥ 70% - 노트북 sweep 정상 실행, RigL vs SET vs static 비교 가능 ## 관련 - Phase 16 메인 이슈 #75 - Phase 15 PR #72 (edge_mask + prune 토대) - ``docs/papers/computation-graph/2020-rigl-evci.md`` (RigL 원논문) - ``docs/papers/computation-graph/2018-set-mocanu.md`` (SET 원논문)
Activity
Merge pull request #78 from EinSofINTEREST/feature/#76/neuron-phase16…