> EulerStack > 튜토리얼 > 8. Expert Mini 프리셋 워크스루

8. Expert Mini 프리셋 워크스루

이 튜토리얼은 6 개의 arch_expert_*_mini 프리셋을 소개합니다. 모두 약 100M–360M 파라미터 규모로, 07_arch_walkthrough.md 에 있는 2B 규모의 arch_expert_* 변종들의 소형 실험용 축소판 에 해당합니다. 개인 GPU 에서 학습과 ablation 이 가능한 크기이므로, 논문이 제안한 설계 공간을 "코드로 직접 건드려보며" 학습하기에 가장 적합한 단계입니다.

왜 Mini 가 필요한가

arch_expert_* 원본 프리셋들은 모두 ~2B 파라미터로 통일되어, 아키텍처 선택을 동일한 파라미터 예산에서 비교할 수 있게 설계되었습니다. 하지만 ~2B 는:

Mini 는 이 병목을 해결하기 위해 아이디어는 보존하고 규모만 축소합니다. 공통 원칙:

크기 축소가 아키텍처 의미에 미치는 영향 (중요)

소형 스케일에서는 MoE 가 2B 이상 규모에서만큼 잘 작동하지 않을 수 있습니다. 그 이유는 다음과 같습니다.

  1. Router specialization 약화: expert 가 의미 있는 subspace 를 배우려면 충분한 d_model 과 충분한 데이터가 필요합니다. d_model=384 는 이를 위한 bandwidth 가 좁아, router 가 "하나의 expert 에만 집중" 하는 router collapse 가 쉽게 발생합니다.
  2. Active 대비 routing 오버헤드 증가: small 모델에서는 MoE router + dispatch 비용이 상대적으로 커져서, 동일 active-param 의 dense 모델 대비 실제 토큰당 FLOPs 가 늘어날 수 있습니다.
  3. Fine-grained routing 의 이점 감소: DeepSeekMoE 의 "32 × top-3" 처럼 expert 를 잘게 쪼개는 전략은 2B+ 에서 공개 근거가 많지만, 작은 모델에서는 각 expert 의 capacity 가 부족하여 오히려 dense 보다 나빠지는 경우가 보고됩니다.

이 튜토리얼의 mini 프리셋들은 이런 실패 모드를 직접 체감할 수 있게 설계되어 있습니다. 특히 deepseek_moe_minifrontier_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

깊이별로 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 구조를 가지며 세 구간으로 나뉩니다.

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 이상에서만 명확)

소형 스케일에서 예상되는 문제 (직접 체감해볼 수 있음)

이 프리셋을 포함한 이유

  1. Fine-grained MoE 의 failure mode 를 가장 저렴하게 재현할 수 있는 설정입니다.
  2. Routing 구현이 "experts > heads" 인 극단 케이스에서도 깨지지 않는지 sanity check 용도로 유용합니다.
  3. 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 버전도 그대로 유지합니다.

  1. Attention 없음 (Mamba + Hyena + RetNet 만 사용)
  2. 모든 레이어 MoE (4 × top-1)
  3. 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

이 프리셋이 소형 스케일에서 실패할 것으로 예상되는 세 가지 이유가 있으며, 이는 "실패를 배우는" 용도로 의도된 것입니다.

  1. Attention 부재로 정확한 recall 앵커가 없음 - Mamba, Hyena, RetNet 은 모두 in-context recall 을 근사할 뿐, attention 처럼 정확한 token-level matching 을 하지 못합니다. - 2B 이상에서는 파라미터 capacity 로 이 한계가 보상되지만 120M 에서는 보상 여지가 거의 없습니다. - "N 토큰 전에 나온 그 단어 찾아오기" 류의 task 에서 무너질 가능성이 큽니다.

  2. d_model=384 에서 every-layer MoE - Router specialization 은 width 와 데이터가 모두 충분해야 하는데 둘 다 부족합니다. - z_loss 가 있어도 router collapse(한 expert 만 활성화되는 현상)가 발생할 가능성이 높습니다.

  3. Multi-mixer debugging 의 어려움 - Loss spike 가 발생해도 Mamba, Hyena, RetNet 중 어디서 왔는지 추적하기 어렵습니다.

이 mini 를 사용하는 이유는 주로 다음과 같습니다.

근거: 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

상세: docs/architectures/tutorials/arch_e2e_guide.md

다음 단계