MoE Analysis
MoE (Mixture of Experts) ์ฌ์ธต ๋ถ์
Sparse Activation ยท Routing/Gating ยท Load Balancing ยท DeepSeekMoE ยท Expert Parallelism/Offloading
MoE(Mixture of Experts)๋ ํ ํฐ๋ง๋ค ๋ชจ๋ธ ์ ์ฒด๋ฅผ ๊ณ์ฐํ์ง ์๊ณ , ๋ผ์ฐํฐ๊ฐ ์ ํํ ์ผ๋ถ ์ ๋ฌธ๊ฐ๋ง ํ์ฑํํ๋ ํฌ์(sparse) ์ํคํ ์ฒ์ ๋๋ค. ํต์ฌ์ ์ด ํ๋ผ๋ฏธํฐ(๋ชจ๋ธ ์ฉ๋)์ ํ์ฑ ํ๋ผ๋ฏธํฐ(ํ ํฐ๋น ๊ณ์ฐ)๋ฅผ ๋ถ๋ฆฌํ๋ ๋ฐ ์์ต๋๋ค. Shazeer et al.(2017)์ด conditional computation์ ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ์ ๋ค์ ์ค์ฉํํ ๋ค, Switch Transformer, GShard, DeepSeekMoE, DeepSeek-V3 ๊ฐ์ ๊ณ์ด์ด ์ด ํ๋ฆ์ ์ด์ด ์์ต๋๋ค.
MoE๋ ๊ณ์ฐ ํจ์จ๋ง์ ์ด์ผ๊ธฐ๊ฐ ์๋๋๋ค. ๋ผ์ฐํ ํ์ง, ๋ก๋ ๋ฐธ๋ฐ์ฑ, all-to-all ํต์ , ์ ๋ฌธ๊ฐ ๋ณ๋ ฌํ, ์คํ๋ก๋ฉ๊น์ง ํจ๊ป ๋ด์ผ ์์คํ ์ผ๋ก์ ์ฑ๋ฆฝํฉ๋๋ค. ์ด ๋ฌธ์๋ ํฌ์ ํ์ฑํ -> ๋ผ์ฐํ -> ๋ก๋ ๋ฐธ๋ฐ์ฑ๊ณผ DeepSeekMoE -> ์์คํ ๊ด์ -> ์ฅ๋จ์ ๊ณผ ์ฑํ ํํฉ -> ๊ด๋ จ ๊ธฐ์ ์ ์์๋ก ์ ๋ฆฌํฉ๋๋ค.
1. ํต์ฌ ์์ด๋์ด - ํฌ์ ํ์ฑํ
Dense ๋ชจ๋ธ์ ํ ํฐ๋ง๋ค FFN์ ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ณ์ฐํ๋ฏ๋ก, ํ๋ผ๋ฏธํฐ๋ฅผ ๋๋ฆฌ๋ฉด ๊ณ์ฐ๋๋ ํจ๊ป ์ฆ๊ฐํฉ๋๋ค. MoE๋ FFN์ ์ฌ๋ฌ ์ ๋ฌธ๊ฐ๋ก ๋๋๊ณ ๋ผ์ฐํฐ๊ฐ ํ ํฐ๋ง๋ค ์ผ๋ถ(top-k)๋ง ๊ณ ๋ฅด๊ฒ ํ์ฌ, ์ฉ๋๊ณผ ๊ณ์ฐ์ ๋ถ๋ฆฌํฉ๋๋ค.
๊ทธ๋ฆผ 1. Dense FFN์ ํญ์ ์ ์ฒด๋ฅผ ๊ณ์ฐํ๊ณ , MoE๋ ์ ํ๋ ์ ๋ฌธ๊ฐ๋ง ํ์ฑํํ๋ค.
์กฐ๊ฑด๋ถ ๊ณ์ฐ(Conditional Computation)
- ์ ๋ฌธ๊ฐ(expert) - ๋ณดํต Transformer์ FFN(ํผ๋ํฌ์๋) ์ธต์ ๋์ฒดํฉ๋๋ค. ์ดํ ์ ์ dense๋ก ๊ทธ๋๋ก ๊ณต์ ๋ฉ๋๋ค.
- ๋ผ์ฐํฐ(๊ฒ์ดํ ) - ํ ํฐ ํํ์ ๋ณด๊ณ ๊ฐ ์ ๋ฌธ๊ฐ์ ์ ํฉ๋ ์ ์๋ฅผ ๊ณ์ฐํ ๋ค top-k๋ฅผ ์ ํํฉ๋๋ค.
- ํ์ฑ ํ๋ผ๋ฏธํฐ - ์ด ํ๋ผ๋ฏธํฐ๊ฐ ์ปค์ ธ๋ ํ ํฐ๋น ๊ณ์ฐ์ ์๊ฒ ์ ์งํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด DeepSeek-V3๋ 671B total / 37B active, Mixtral 8x7B๋ 47B total / 13B active๋ก ์๊ฐ๋ฉ๋๋ค.
- ๊ธฐ์ - Jacobs et al.(1991)์ MoE ๊ฐ๋ ์ Shazeer et al.(2017)์ sparsely-gated MoE๊ฐ ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ์ ๋ค์ ์ ์ฉํ์ต๋๋ค.
Dense vs MoE
| ํญ๋ชฉ | Dense FFN | MoE |
|---|---|---|
| ํ ํฐ๋น ํ์ฑํ | ์ ์ฒด FFN | top-k ์ ๋ฌธ๊ฐ๋ง |
| ๊ณ์ฐ๋ | ํ๋ผ๋ฏธํฐ ์ฆ๊ฐ์ ํจ๊ป ์ฆ๊ฐ | ํ์ฑ ์ ๋ฌธ๊ฐ ์์ ์ฃผ๋ก ๋น๋ก |
| ์ฉ๋ ํ์ฅ | ๋น์ฉ์ด ํผ | ์ฉ๋๋ง ํฌ๊ฒ ํค์ฐ๊ธฐ ์ฌ์ |
| ์์คํ ๋ถ๋ด | ๊ณ์ฐ ์ค์ฌ | ํต์ , ๋ฉ๋ชจ๋ฆฌ, ๋ผ์ฐํ ์ถ๊ฐ |
2. ๋ผ์ฐํ - ๊ฒ์ดํ ๊ณผ top-k ์ ํ
MoE์ ๋์์ ์ข์ฐํ๋ ๊ฒ์ ๋ผ์ฐํฐ์ ๋๋ค. ํ ํฐ์ ์ด๋ ์ ๋ฌธ๊ฐ๋ก ๋ณด๋ผ์ง ๊ฒฐ์ ํ๊ณ , ์ ํ๋ ์ ๋ฌธ๊ฐ๋ค์ ์ถ๋ ฅ์ ๊ฐ์คํฉํฉ๋๋ค.
๊ทธ๋ฆผ 2. ํ ํฐ -> ๋ผ์ฐํฐ ์ ์ -> top-k ์ ๋ฌธ๊ฐ -> ๊ฐ์คํฉ.
scores = softmax(W_g ยท x)
T = top_k(scores)
y = sum(g_i ยท E_i(x) for i in T)
๋ผ์ฐํ ์ ํต์ฌ
- noisy top-k(Shazeer) - ์ ์์ ์ก์์ ๋ํด ํน์ ์ ๋ฌธ๊ฐ๋ก์ ์ ๋ฆผ(collapse)์ ์ํํฉ๋๋ค.
- k์ ํธ๋ ์ด๋์คํ - k๋ฅผ ํค์ฐ๋ฉด ๊ณ์ฐ๊ณผ ํ์ง์ด ์ค๋ฅด๊ณ , ์ค์ด๋ฉด ํจ์จ์ด ์ค๋ฅด์ง๋ง ๋๋ฝ ์ํ์ด ์ปค์ง๋๋ค. Switch=1, Mixtral=2, DeepSeek-V3=8๋ก ์์ฃผ ์ค๋ช ๋ฉ๋๋ค.
- ๋ฏธ๋ถ ๊ฐ๋ฅ์ฑ - ๋ผ์ฐํ ์ ์ด์ฐ ์ ํ์ด๋ฏ๋ก, ์ค์ ๊ตฌํ์ ๊ฒ์ดํธ ๊ฐ์ค์น๋ฅผ ๊ณฑํด ํ์ต ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค.
- capacity factor - ์ ๋ฌธ๊ฐ๊ฐ ์์ฉํ ํ ํฐ ์๋ฅผ ์ ํํด overflow๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ์์ ๋๋ค. ์ด๊ณผ ํ ํฐ์ drop๋๊ฑฐ๋ ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
๋ผ์ฐํ ์ ๋ต์ ๋ณ์ฒ
| ์ฐ๊ตฌ | ์ ํ ๋ฐฉ์ | ํน์ง |
|---|---|---|
| Shazeer et al. 2017 | noisy top-k | ํฌ์ ๊ฒ์ดํ ๊ณผ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์์ค๋ก MoE๋ฅผ ์ค์ฉํ |
| GShard (2020) | top-2 | ์๋ ์ค๋ฉ๊ณผ ํจ๊ป 600B+ ๊ท๋ชจ๊น์ง ํ์ฅ |
| Switch Transformer (2021) | top-1 | ๋จ์ํ๋ก ํต์ ๊ณผ ๊ณ์ฐ์ ์ค์ด๊ณ ํ์ต ์์ ์ฑ์ ๊ฐ์ |
| DeepSeekMoE (2024) | fine-grained top-k | ์ ๋ฌธ๊ฐ๋ฅผ ์๊ฒ ๋๋๊ณ ๊ณต์ ์ ๋ฌธ๊ฐ๋ฅผ ๋ |
| DeepSeek-V3 (2024/2025) | top-8 of 256 | auxiliary-loss-free ๋ก๋ ๋ฐธ๋ฐ์ฑ๊ณผ ๊ฒฐํฉ |
3. ๋ก๋ ๋ฐธ๋ฐ์ฑ๊ณผ DeepSeekMoE
MoE์ ๊ณ ์ง์ ๋ฌธ์ ๋ routing collapse์ ๋๋ค. ์ผ๋ถ ์ ๋ฌธ๊ฐ๋ง ๊ณผ๋ถํ๋๊ณ ๋๋จธ์ง๊ฐ ๊ฑฐ์ ํ์ต๋์ง ์์ผ๋ฉด, ๋ชจ๋ธ ์ฉ๋์ด ๊ทธ๋๋ก ๋ญ๋น๋ฉ๋๋ค. DeepSeekMoE์ DeepSeek-V3๋ ์ด ๋ฌธ์ ๋ฅผ ๊ตฌ์กฐ์ ๋ผ์ฐํ ์์ชฝ์์ ๋ค๋ฃน๋๋ค.
๊ทธ๋ฆผ 3. ๋ผ์ฐํ ์ ๋ฆผ, ๋ก๋ ๋ฐธ๋ฐ์ฑ, ์ ๋ฌธ๊ฐ ๋ถํ ๊ณผ ๊ณต์ ์ ๋ฌธ๊ฐ.
๋ก๋ ๋ฐธ๋ฐ์ฑ
- ๋ณด์กฐ ์์ค(auxiliary loss) - ์ ๋ฆผ์ ํ๋ํฐ๋ฅผ ์ฃผ๋ ํญ์ ์์ค์ ๋ํฉ๋๋ค. Switch Transformer์ GShard ๊ณ์ด์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
- auxiliary-loss-free(DeepSeek-V3) - ์์ค ํจ์๋ฅผ ๊ฑด๋๋ฆฌ์ง ์๊ณ ๋ผ์ฐํ ์ ์์ ๋์ bias๋ฅผ ๋ํด ์ด์ฉ๋ฅ ๊ท ํ์ ๋ง์ถฅ๋๋ค.
DeepSeekMoE์ ๋ ๊ฐ์ง ์ ๋ต
- fine-grained ์ ๋ฌธ๊ฐ ๋ถํ - ์ ๋ฌธ๊ฐ N๊ฐ๋ฅผ mN๊ฐ๋ก ์๊ฒ ์ชผ๊ฐ๊ณ , ๋ ๋ง์ ์ ๋ฌธ๊ฐ๋ฅผ ํ์ฑํํ๋ ๊ณ์ฐ๋์ ๋น์ทํ๊ฒ ์ ์งํฉ๋๋ค. ์ ๋ฌธ๊ฐ ์กฐํฉ์ด ์ ์ฐํด์ง๊ณ ์ง์ ํผ์ฌ๋ฅผ ์ค์ ๋๋ค.
- shared expert - ํญ์ ํ์ฑํ๋๋ ๊ณต์ ์ ๋ฌธ๊ฐ๊ฐ ๊ณตํต ์ง์์ ๋ด๋นํด, ๋๋จธ์ง ์ ๋ฌธ๊ฐ๊ฐ ํนํ์ ์ง์คํ๊ฒ ํฉ๋๋ค.
๋ณด๊ณ ๋ ํจ์จ
DeepSeekMoE ๋ ผ๋ฌธ์ 2B ๊ท๋ชจ์์ GShard 2.9B์ ๋น๊ต ๊ฐ๋ฅํ ์ฑ๋ฅ์ ๋ณด์๊ณ , 16B ๊ท๋ชจ์์๋ LLaMA2-7B์ ๋น๊ต ๊ฐ๋ฅํ ์ฑ๋ฅ์ ์ฝ 40% ๊ณ์ฐ๋์ผ๋ก ๋ฌ์ฑํ๋ค๊ณ ๋ณด๊ณ ํฉ๋๋ค. DeepSeek-V3๋ 671B total / 37B active์ ํจ๊ป auxiliary-loss-free ์ ๋ต์ ์ฌ์ฉํฉ๋๋ค.
4. ์์คํ - ์ ๋ฌธ๊ฐ ๋ณ๋ ฌํ์ ๋ฉ๋ชจ๋ฆฌยท์คํ๋ก๋ฉ
MoE๋ ๊ณ์ฐ์ ์ค์ด์ง๋ง ์์คํ ๋ถ๋ด์ ์๋ก ๋ง๋ญ๋๋ค. ํนํ ์ ๋ฌธ๊ฐ๋ค์ด ์ด๋์ ์๋๋๊ฐ ํต์ ๊ณผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
๊ทธ๋ฆผ 4. ์ ๋ฌธ๊ฐ ๋ณ๋ ฌํ(all-to-all), ๋ฉ๋ชจ๋ฆฌ ์ญ์ค, ์ ๋ฌธ๊ฐ ์คํ๋ก๋ฉ ๊ณ์ธต.
์์คํ ๊ด์ ์ ํจ์
- ์ ๋ฌธ๊ฐ ๋ณ๋ ฌํ(EP) - ์ ๋ฌธ๊ฐ๋ค์ ์ฌ๋ฌ GPU์ ๋๋ ๋ฐฐ์นํ๊ณ , ํ ํฐ์ ํด๋น GPU๋ก ๋ณด๋ ๋๋ค. MoE ๋ธ๋ก๋ง๋ค scatter/gather ํํ์ all-to-all ํต์ ์ด ํ์ํฉ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ์ญ์ค - ํ ํฐ๋น ํ์ฑ ํ๋ผ๋ฏธํฐ๋ ์์ง๋ง, ์ด๋ ์ ๋ฌธ๊ฐ๊ฐ ์ฐ์ผ์ง ๋ชจ๋ฅด๋ฏ๋ก ๋ชจ๋ ์ ๋ฌธ๊ฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํด์ผ ํฉ๋๋ค.
- ์ ๋ฌธ๊ฐ ์คํ๋ก๋ฉ - VRAM์ hot expert ์บ์๋ก ๋ณด๊ณ , ๋นํ์ฑ ์ ๋ฌธ๊ฐ๋ฅผ CPU DRAM, CXL, NVMe๋ก ๋ด๋ฆฝ๋๋ค. ํ์ฑ ์ ๋ฌธ๊ฐ๋ง on-demand๋ก ์ฌ๋ฆฌ์ง๋ง, PCIe/CXL ๋์ญํญ์ด ๋ณ๋ชฉ์ด ๋ ์ ์์ต๋๋ค.
- CXL์ ์๋ฏธ - ๋ ํฐ ๋ฉ๋ชจ๋ฆฌ ํ์ ๋๊ณ ์ ๋ฌธ๊ฐ๋ฅผ ๊ณ์ธตํํ ์ ์์ด, KV ์บ์ ์คํ๋ก๋ฉ๊ณผ ๊ฐ์ ์ค๊ณ ๋ฌธ์ ๋ก ๋ณผ ์ ์์ต๋๋ค.
5. ์ฅ๋จ์ ๊ณผ ์ฑํ ํํฉ
๊ทธ๋ฆผ 5. MoE์ ์ฅ๋จ์ ๊ณผ ๋ํ ๋ชจ๋ธ.
์ฅ์ ๊ณผ ๋จ์
| ์ฅ์ | ๋จ์ |
|---|---|
| ๊ฐ์ ๊ณ์ฐ์ผ๋ก ๋ ํฐ ์ฉ๋ ํ๋ณด | ์ ๋ฌธ๊ฐ ์ ๋ถ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ฌ์ผ ํจ |
| ์ ๋ฌธ๊ฐ ํนํ๋ก ํ์ง ํฅ์ | all-to-all ํต์ ์ค๋ฒํค๋ |
| ํ์ตยท์ถ๋ก FLOPs ์ ๊ฐ | ๋ก๋ ๋ฐธ๋ฐ์ฑ๊ณผ ํ์ต ์์ ์ฑ ๋ฌธ์ |
| ์ฌ์ ํ์ต ์๋ ๊ฐ์ ๊ฐ๋ฅ | ๋ฐฐํฌ์ ์ด์ ๋ณต์ก๋ ์์น |
์ฃผ์ MoE ๋ชจ๋ธ
| ๋ชจ๋ธ | ์ด / ํ์ฑ ํ๋ผ๋ฏธํฐ | ์ ๋ฌธ๊ฐ ๊ตฌ์ฑ |
|---|---|---|
| Shazeer MoE | ์ต๋ 137B | sparsely-gated FFN |
| Switch Transformer | ์ต๋ 1.6T | top-1 ๋ผ์ฐํ |
| GShard | 600B+ | top-2 + ์๋ ์ค๋ฉ |
| Mixtral 8x7B | 47B / 13B | 8๊ฐ ์ค top-2 |
| DeepSeekMoE | 2B, 16B, 145B ์ค์ผ์ผ | fine-grained + shared expert |
| DeepSeek-V3 | 671B / 37B | 256๊ฐ ์ค top-8 + shared expert |
MoE์ ๋ค๋ฅธ ์ ๊ฐ ๊ธฐ๋ฒ์ ๊ด๊ณ
MoE๋ ๊ณ์ฐ ํฌ์ํ์ ์ด์ ์ด ์๊ณ , ์์ํ๋ ๋นํธ ์๋ฅผ ์ค์ด๋ฉฐ, MLA๋ KV ์บ์ ์ต์ ํ๋ ๋์ฝ๋ฉ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ค์ ๋๋ค. ์๋ก ๋ชฉ์ ์ด ๋ฌ๋ผ์ ํจ๊ป ์ธ ์ ์์ต๋๋ค. DeepSeek-V3์ฒ๋ผ MLA, MTP, MoE๋ฅผ ๊ฒฐํฉํ๋ ๋ฐฉ์์ด ๊ทธ ์์ ๋๋ค.
6. ๊ด๋ จ ๊ธฐ์
- Memory Centric LLM Serving Survey - KV ์บ์์ ์๋น ๋ฉ๋ชจ๋ฆฌ ๊ด์
- PagedAttention Analysis - KV ์บ์ ํ์ด์ง๊ณผ ๋ธ๋ก ํ ์ด๋ธ
- KV Cache Offloading Analysis - ๋ฉ๋ชจ๋ฆฌ ํฐ์ด๋ง๊ณผ ์คํ๋ก๋ฉ
- MoE Serving Routing LoadBalance - ์๋น ๋จ๊ณ์ routing/dispatch ๋ณ๋ชฉ
- Disaggregated LLM Serving Analysis - ๋ถ๋ฆฌํ ์๋น๊ณผ ๋ฉ๋ชจ๋ฆฌ ๋ถ์ฐ
์ฐธ๊ณ ๋ฌธํ - Shazeer et al. 2017 arXiv:1701.06538, GShard 2020 arXiv:2006.16668, Switch Transformer 2021 arXiv:2101.03961, DeepSeekMoE 2024 arXiv:2401.06066, DeepSeek-V3 arXiv:2412.19437.
7. ํต์ฌ ์ ๋ฆฌ
MoE๋ ํ ํฐ๋ง๋ค ์ผ๋ถ ์ ๋ฌธ๊ฐ๋ง ํ์ฑํํด ์ด ํ๋ผ๋ฏธํฐ์ ํ์ฑ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ถ๋ฆฌํ๋ ๊ตฌ์กฐ์ ๋๋ค. ๋๋ถ์ ๊ณ์ฐ์ ํฌ๊ฒ ๋๋ฆฌ์ง ์๊ณ ๋ ๋ชจ๋ธ ์ฉ๋์ ํค์ธ ์ ์์ต๋๋ค. ๋ค๋ง ๋ผ์ฐํ , ๋ก๋ ๋ฐธ๋ฐ์ฑ, all-to-all ํต์ , ๋ฉ๋ชจ๋ฆฌ ์ ์ฌ ๋ฌธ์ ๊ฐ ํจ๊ป ๋ฐ๋ผ์ต๋๋ค.
Shazeer์ sparsely-gated MoE์์ ์์ํด Switch์ top-1 ๋จ์ํ, GShard์ ์๋ ์ค๋ฉ, DeepSeekMoE์ fine-grained ์ ๋ฌธ๊ฐ์ shared expert๋ก ๋ฐ์ ํ์ต๋๋ค. DeepSeek-V3๋ auxiliary-loss-free ๋ก๋ ๋ฐธ๋ฐ์ฑ๊น์ง ๋ํด ํ์ฌ MoE ์ค๊ณ์ ๋ํ ์ฌ๋ก๋ก ๋ณผ ์ ์์ต๋๋ค.
๊ฒฐ๊ตญ MoE๋ "๋ ํฐ ๋ชจ๋ธ"์ด ์๋๋ผ "๋ ๋๋ํ ๊ณ์ฐ ๋ฐฐ๋ถ"์ ๋ํ ํด๋ฒ์ ๋๋ค. ๊ทธ๋์ ์ฑ๋ฅ๋ง์ด ์๋๋ผ ์๋น ์ธํ๋ผ์ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ์ค๊ณ๊น์ง ํจ๊ป ๋ด์ผ ํฉ๋๋ค.