8. Expert Mini 프리셋 워크스루
이 튜토리얼은 6 개의 arch_expert_*_mini 프리셋을 소개합니다. 모두 약 100M–360M
파라미터 규모로, 07_arch_walkthrough.md 에 있는 2B 규모의
arch_expert_* 변종들의 소형 실험용 축소판 에 해당합니다. 개인 GPU 에서 학습과
ablation 이 가능한 크기이므로, 논문이 제안한 설계 공간을 "코드로 직접 건드려보며"
학습하기에 가장 적합한 단계입니다.
왜 Mini 가 필요한가
arch_expert_* 원본 프리셋들은 모두 ~2B 파라미터로 통일되어, 아키텍처 선택을
동일한 파라미터 예산에서 비교할 수 있게 설계되었습니다. 하지만 ~2B 는:
- RTX 3090/4090/5090 급 단일 GPU 에서도 학습이 빠듯함 (AdamW + bf16 기준)
- 한 ablation 당 수 시간 소요 → 반복 실험이 어려움
- 새로운 조합의 아이디어를 "일단 돌려보는" 비용이 큼
Mini 는 이 병목을 해결하기 위해 아이디어는 보존하고 규모만 축소합니다. 공통 원칙:
d_model384–512max_seq_len4K–16K (원본은 8K–128K)- 12 레이어 전후 (원본 32)
- MoE experts 는 4–16개로 줄이고
top_k는 1–2 dropout 0.1로 과적합 완화 (원본 minis 는 0.0)
크기 축소가 아키텍처 의미에 미치는 영향 (중요)
소형 스케일에서는 MoE 가 2B 이상 규모에서만큼 잘 작동하지 않을 수 있습니다. 그 이유는 다음과 같습니다.
- Router specialization 약화: expert 가 의미 있는 subspace 를 배우려면 충분한
d_model과 충분한 데이터가 필요합니다.d_model=384는 이를 위한 bandwidth 가 좁아, router 가 "하나의 expert 에만 집중" 하는 router collapse 가 쉽게 발생합니다. - Active 대비 routing 오버헤드 증가: small 모델에서는 MoE router + dispatch 비용이 상대적으로 커져서, 동일 active-param 의 dense 모델 대비 실제 토큰당 FLOPs 가 늘어날 수 있습니다.
- Fine-grained routing 의 이점 감소: DeepSeekMoE 의 "32 × top-3" 처럼 expert 를 잘게 쪼개는 전략은 2B+ 에서 공개 근거가 많지만, 작은 모델에서는 각 expert 의 capacity 가 부족하여 오히려 dense 보다 나빠지는 경우가 보고됩니다.
이 튜토리얼의 mini 프리셋들은 이런 실패 모드를 직접 체감할 수 있게 설계되어
있습니다. 특히 deepseek_moe_mini 와 frontier_full_moe_mini 는 "일부러 failure mode
를 보여주는" 교육용 위치입니다. 성능이 나쁘게 나오는 것이 버그가 아니라 의도된
결과 라는 점을 기억해야 합니다.
실험 순서 (권장)
1. arch_expert_progressive_stack_mini ← 가장 먼저 (구조 명확, 디버깅 쉬움)
2. arch_expert_blackmamba_moe_mini ← 부분 sparse MoE 가 실질적으로 먹히는 예
3. arch_expert_mixtral_moe_mini ← 고전적 MoE baseline
4. arch_expert_dilated_longnet_mini ← 장문 pyramid 실험
5. arch_expert_deepseek_moe_mini ← fine-grained 실패 모드 관찰용
6. arch_expert_frontier_full_moe_mini ← 가장 실험적 (실패 예상)
이 순서는 통합 테스트 (tests/integration/expert_mini_e2e/conftest.py::_RECOMMENDED_ORDER)
에서도 동일하게 적용됩니다.
실행:
eulerstack presets list | grep _mini
eulerstack explain --preset configs/presets/arch_expert_progressive_stack_mini.yml
eulerstack compile --preset configs/presets/arch_expert_progressive_stack_mini.yml \
--output-dir ./out/progressive_mini
Mini 01: arch_expert_progressive_stack_mini (RECOMMENDED FIRST)
깊이별로 mixer 복잡도를 단조 증가 시키는 계층적 설계입니다. Vision (CNN → attention) 과 생물학 (convolutional early layers → transformer late layers) 의 representation hierarchy 가설을 LLM 에 그대로 적용한 것입니다.
Depth zones (12 레이어): - Zone 1 (1–3): Hyena — 가장 저렴 (O(N log N) FFT conv), 넓은 구조적 패턴 포착 - Zone 2 (4–7): Mamba2 — 선형 시간 selective SSM, 벌크 토큰 요약 - Zone 3 (8–10): RetNet — chunkwise retention, 안정적 train/infer 전이 - Zone 4 (11–12): Attention + MoE (4 × top-1) — 정확 recall + 조건부 capacity
d_model: 512
max_seq_len: 8192
layer_schedule:
- { template: hyena_dense, repeat: 3 }
- { template: mamba_dense, repeat: 4 }
- { template: retnet_dense, repeat: 3 }
- { template: attn_moe, repeat: 2 }
장점 - Zone 분리가 뚜렷 → 각 zone 을 identity 로 치환하는 ablation 이 의미 있게 해석됨 - MoE 가 마지막 2 레이어에만 있어서 router collapse 위험 낮음 - ~86M total params → 12–16 GB GPU 에서 편하게 학습
단점 - 4개 mixer 계열을 모두 포함 → 한 번에 4가지 구현의 정확성을 요구함 - Hyena FFT kernel 이 짧은 시퀀스 (≤256) 에서는 attention 대비 이득이 작음
근거: Poli et al. 2023 (Hyena); Gu & Dao 2023/2024 (Mamba); Sun et al. 2023 (RetNet); Fedus et al. 2022 (MoE); vision 분야의 conv→attention hierarchy.
Mini 02: arch_expert_blackmamba_moe_mini
Mamba (linear-time, 높은 inference throughput) 를 벌크 mixer 로 쓰고, attention 은 드문 "앵커" 로만 배치해 정확한 recall 을 보완합니다. MoE 는 non-attention mixer (Mamba) 에 적용되어, SSM 계열에도 MoE 가 작동함을 보여주는 실험입니다.
Pattern (12 레이어):
(mamba_moe × 3, attn_anchor × 1) × 3 = 12 layers
→ 9 Mamba+MoE + 3 global-attention anchors
d_model: 512
max_seq_len: 8192
layer_schedule:
- { template: mamba_moe, repeat: 3 }
- { template: attn_anchor, repeat: 1 }
- { template: mamba_moe, repeat: 3 }
- { template: attn_anchor, repeat: 1 }
- { template: mamba_moe, repeat: 3 }
- { template: attn_anchor, repeat: 1 }
장점 - Mamba 의 O(N) 스케일링이 작은 모델에서도 실제로 이득 (긴 context 학습 시) - Attention anchor 3개로 recall 보완 — Mamba 단독의 가장 큰 약점을 메움 - MoE 를 Mamba 에만 적용 → 구조적으로 깔끔
단점 (소형 특유) - MoE (4 × top-1) 의 expert specialization 이 2B+ 만큼 깨끗하지 않음 - Router collapse 가능 → 첫 수백 스텝은 z_loss 로 방어해야 함
근거: Anthony et al. 2024 (BlackMamba, Zyphra); Pióro et al. 2024 (MoE-Mamba); Gu & Dao 2023/2024 (Mamba2).
Mini 03: arch_expert_mixtral_moe_mini
소형 MoE 의 baseline 에 해당하는 프리셋입니다. 순수 attention + 매 레이어 MoE-FFN
이라는 가장 교과서적인 sparse 구성으로, 다른 부분 sparse 설계
(blackmamba_mini, progressive_stack_mini) 를 비교하기 위한 대조군으로 쓰입니다.
d_model: 512
max_seq_len: 4096
layer_schedule:
- { template: attn_moe, repeat: 12 } # 모든 레이어가 attn + MoE (4 × top-2)
장점 - MoE 의 "계산 대비 용량 확대" 원리를 가장 깨끗하게 실험 가능 - 모든 HF 도구와 호환 (attention 기반)
단점 (소형 특유) - Mixtral 원본은 8 experts × top-2 @ 46.7B — 이를 4 experts × top-2 @ 150M 로 줄이면 expert specialization 이 거의 일어나지 않을 수 있음 - Every-layer MoE routing 비용이 FLOPs 와 최적화 난이도를 동시에 올림 - 같은 active-param 의 dense attention 모델보다 sample efficiency 가 약간 낮을 것으로 예상
이 프리셋을 포함한 이유는 두 가지입니다. 첫째, "MoE 를 모든 레이어에 배치" 하는 구성이 "MoE 를 tail 에만" 배치하는 구성에 비해 underperform 한다면 그 결과 자체가 유용한 ablation 정보가 됩니다. 둘째, MoE baseline 은 교육 자료로서 반드시 필요한 비교점입니다.
근거: Jiang et al. 2024 (Mixtral); Fedus et al. 2022 (Switch Transformers); Shazeer et al. 2017 (MoE foundations).
Mini 04: arch_expert_dilated_longnet_mini
소형 long-context 실험용 프리셋입니다. Temporal pyramid 구조를 가지며 세 구간으로 나뉩니다.
- Mamba prefix 2 레이어 →
O(N)벌크 처리 - Sliding-window attention 을 단계적으로 확장 (512 → 2048 → 8192)
- 마지막 global attention + MoE tail 2 레이어
RoPE 는 scaling_factor=2.0 (linear) 로 설정되어 16K 까지 안정적인 위치 인코딩을
지원합니다.
d_model: 512
max_seq_len: 16384
rope_scaling: { type: linear, factor: 2.0 }
layer_schedule:
- { template: mamba_prefix, repeat: 2 }
- { template: sw_512, repeat: 2 }
- { template: sw_2048, repeat: 3 }
- { template: sw_8192, repeat: 3 }
- { template: global_moe, repeat: 2 }
장점 - LongNet 의 receptive-field expansion 가설을 dilated kernel 없이 흉내 — 구현 단순 - 소형에서 16K context 까지 실험 가능
단점 (소형 특유)
- 16K context 에서 sliding-window KV 캐시도 여전히 VRAM 부담 — 24 GB 미만 장치에서는
max_seq_len 을 4K 로 내려서 window 계층 구조만 유지할 것
- 마지막 global MoE tail 이 2 레이어 × 4 experts 뿐이라 specialization 이득 제한적
(pipeline 패리티를 위해 포함)
근거: Ding et al. 2023 (LongNet); Lieber et al. 2024 (Jamba, mamba+attention hybrid); Gu & Dao 2023/2024.
Mini 05: arch_expert_deepseek_moe_mini (⚠ 실패 모드 관찰용)
DeepSeekMoE 의 fine-grained routing (32 × top-3 @ 2B) 을 소형에 맞게 16 × top-2 @ 350M 으로 약화한 구성입니다. 이 mini 는 작은 모델에서 fine-grained MoE 가 underperform 하는 것을 직접 확인하는 교육용 위치 에 있습니다.
d_model: 384
max_seq_len: 4096
target_params: 350_000_000 # 총 (16 experts × MLP 포함); 약 60M active
layer_schedule:
- { template: fine_grained_moe, repeat: 12 } # 16 experts × top-2 every layer
원본 논문에서 입증된 강점 (2B 이상에서만 명확)
- Expert 를 잘게 쪼개면 각 expert 가 더 "선명한" 기능을 학습할 수 있습니다.
- Top-k 를 높이면 라우팅 유연성이 증가해 더 복잡한 합성이 가능합니다.
소형 스케일에서 예상되는 문제 (직접 체감해볼 수 있음)
d_model=384를 16 개로 쪼갠 expert 는 각자 너무 얇아 의미 있는 subspace 를 배우지 못합니다.- Top-2 임에도 router entropy 가 높아 수렴이 느립니다. 최소 10k 스텝 훈련을 권장합니다.
- 같은 active-param 의 dense 모델보다 나쁠 가능성이 매우 높습니다.
- DeepSeek-V2/V3 의 shared expert 개념은 현재 스키마에 없어 근사치로만 재현됩니다.
이 프리셋을 포함한 이유
- Fine-grained MoE 의 failure mode 를 가장 저렴하게 재현할 수 있는 설정입니다.
- Routing 구현이 "experts > heads" 인 극단 케이스에서도 깨지지 않는지 sanity check 용도로 유용합니다.
blackmamba_mini(부분 sparse) 와 이 프리셋 (과도하게 fine-grained) 의 대조 실험을 위한 기준점입니다.
근거: Dai et al. 2024 (DeepSeekMoE); DeepSeek-AI 2024 (V2/V3).
Mini 06: arch_expert_frontier_full_moe_mini (⚠ 가장 실험적 — 실패 예상)
6 개 mini 중 가장 speculative 한 프리셋입니다. Full-scale 원본에서 세 가지 frontier 아이디어를 한 번에 결합한 구조를 mini 버전도 그대로 유지합니다.
- Attention 없음 (Mamba + Hyena + RetNet 만 사용)
- 모든 레이어 MoE (4 × top-1)
- 3 가지 non-attention mixer 로테이션 (mamba × 2, hyena × 1, retnet × 1) × 3
d_model: 384
max_seq_len: 8192
layer_schedule:
- { template: mamba_moe, repeat: 2 }
- { template: hyena_moe, repeat: 1 }
- { template: retnet_moe, repeat: 1 }
# ... × 3 total → 12 layers, 0 attention
이 프리셋이 소형 스케일에서 실패할 것으로 예상되는 세 가지 이유가 있으며, 이는 "실패를 배우는" 용도로 의도된 것입니다.
-
Attention 부재로 정확한 recall 앵커가 없음 - Mamba, Hyena, RetNet 은 모두 in-context recall 을 근사할 뿐, attention 처럼 정확한 token-level matching 을 하지 못합니다. - 2B 이상에서는 파라미터 capacity 로 이 한계가 보상되지만 120M 에서는 보상 여지가 거의 없습니다. - "N 토큰 전에 나온 그 단어 찾아오기" 류의 task 에서 무너질 가능성이 큽니다.
-
d_model=384에서 every-layer MoE - Router specialization 은 width 와 데이터가 모두 충분해야 하는데 둘 다 부족합니다. - z_loss 가 있어도 router collapse(한 expert 만 활성화되는 현상)가 발생할 가능성이 높습니다. -
Multi-mixer debugging 의 어려움 - Loss spike 가 발생해도 Mamba, Hyena, RetNet 중 어디서 왔는지 추적하기 어렵습니다.
이 mini 를 사용하는 이유는 주로 다음과 같습니다.
- 파이프라인 sanity check: 이 프리셋이 crash 없이 돌면 MoE 라우팅과 3 가지 mixer 구현이 모두 정상 작동한다는 뜻입니다.
- "이 조합은 하지 말라" 의 교육적 counterexample 로 활용합니다.
- numerical stability 회귀 스모크 테스트 로 활용합니다.
근거: Anthony et al. 2024 (BlackMamba); Pióro et al. 2024 (MoE-Mamba); Poli et al. 2023 (Hyena); Sun et al. 2023 (RetNet); Fedus et al. 2022 (Switch).
비교표
| 프리셋 | ~Total | ~Active | 레이어 | 믹서 조합 | MoE | 난이도 |
|---|---|---|---|---|---|---|
progressive_stack_mini |
~86M | ~86M | 12 | Hyena→Mamba→RetNet→Attn+MoE | 2 layers | ⭐ (쉬움) |
blackmamba_moe_mini |
~156M | ~90M | 12 | Mamba+MoE + Attn anchor | 9 layers | ⭐⭐ |
mixtral_moe_mini |
~175M | ~90M | 12 | Attn+MoE (모든 레이어) | 12 layers | ⭐⭐ |
dilated_longnet_mini |
~83M | ~75M | 12 | Mamba + SW-attn pyramid + Global+MoE | 2 layers | ⭐⭐⭐ |
deepseek_moe_mini |
~357M | ~60M | 12 | Attn + FG-MoE (16×top-2) | 12 layers | ⭐⭐⭐⭐ |
frontier_full_moe_mini |
~106M | ~60M | 12 | Mamba/Hyena/RetNet + MoE (all) | 12 layers | ⭐⭐⭐⭐⭐ |
통합 테스트
RUN_EXPERT_MINI_E2E=1 python -m pytest tests/integration/expert_mini_e2e/ \
--mini-presets=all -v -s
- Gate:
RUN_EXPERT_MINI_E2E=1 - 학습 디폴트: 1000 스텝,
batch_size=1,max_tokens=512, dolma_10k - 프리셋별 추천 lr:
conftest.py::RECOMMENDED_LR(위험한 mini 일수록 낮은 lr) - 로그 디렉토리:
outputs/expert_mini_e2e/
상세: docs/architectures/tutorials/arch_e2e_guide.md
다음 단계
- 07_arch_walkthrough.md — 2B 규모
arch_expert_*풀스케일 비교 - 믹서 개요 — 각 mixer 의 원리와 수렴 특성
- 본인만의 mini 만들기 — mini 설계 원칙 (
d_model384–512, 약 12 레이어, 약화된 MoE) 을 지키면arch_walkthrough의 어떤 아이디어든 mini 로 이식할 수 있습니다.