MoE Overview

1. MoE (Mixture-of-Expert) ๋ž€?


1.1. ๊ฐœ์š”

MoE (Mixture-of-Experts) ๋ชจ๋ธ์€ ๊ฑฐ๋Œ€ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜(ํŒŒ๋ผ๋ฏธํ„ฐ)๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ํฌ์†Œsparse ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. ๋‹ค์ˆ˜์˜ ํ•˜์œ„ ์‹ ๊ฒฝ๋ง์„ โ€œ์ „๋ฌธ๊ฐ€Expertโ€๋กœ ๋‘๊ณ , ๋ผ์šฐํ„ฐRouter ๋„คํŠธ์›Œํฌ(๋˜๋Š” Gating network)๊ฐ€ ์ž…๋ ฅ ํ† ํฐ๋ณ„๋กœ ์†Œ์ˆ˜์˜ ์ „๋ฌธ๊ฐ€๋งŒ ์„ ํƒํ•˜์—ฌ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Forward pass์— ํ•„์š”ํ•œ ๊ณ„์‚ฐ๋Ÿ‰์ด ๋Œ€ํญ ๊ฐ์†Œํ•˜๋Š” ์Šค์ผ€์ผ๋ง ์ด์ ์„ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ฐ„๋‹จํžˆ ์š”์•ฝํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์šฉ๋Ÿ‰ ์ฆ๊ฐ€: ๋ชจ๋ธ์ด ํ›จ์”ฌ ๋” ๋งŽ์€ ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํฌํ•จํ•˜๊ฒŒ ๋˜์–ด, ํ† ํฐ ๋‹น ๊ณ„์‚ฐ ๋น„์šฉ์ด ํฌ๊ฒŒ ์ฆ๊ฐ€ํ•˜์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๋” ๋‹ค์–‘ํ•˜๊ณ  ์ „๋ฌธํ™”๋œ ๊ธฐ๋Šฅ์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

  2. ์ƒ๋Œ€์  ์ผ์ •ํ•œ ๊ณ„์‚ฐ๋Ÿ‰: ์ „์ฒด ๋ชจ๋ธ ํฌ๊ธฐ๋Š” ์ปค์ง€๋”๋ผ๋„, ํ™œ์„ฑํ™”๋œ ์ „๋ฌธ๊ฐ€ ์ˆ˜ kk๋ฅผ ๊ณ ์ •ํ•จ์œผ๋กœ์จ ๋‹จ์ผ ํ† ํฐ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ณ„์‚ฐ ๋น„์šฉ(FLOPs)์€ ๋Œ€๋žต ์ผ์ •ํ•˜๊ฒŒ ์œ ์ง€๋˜๊ฑฐ๋‚˜ ํ›จ์”ฌ ๋А๋ฆฌ๊ฒŒ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ๊ทธ๋ฆผ์€ MoE ๋ชจ๋ธ์˜ ๋ ˆ์ด์–ด ์˜ˆ์‹œ๋กœ, ๋ผ์šฐํ„ฐ๊ฐ€ ์ž…๋ ฅ ํ† ํฐ์„ 2๊ฐœ์˜ ์ „๋ฌธ๊ฐ€ FFN์— ๋ผ์šฐํŒ…ํ•˜๊ณ  ํ•ด๋‹น ์ „๋ฌธ๊ฐ€์˜ ์ถœ๋ ฅ์„ ์ทจํ•ฉํ•˜๋Š” Top-2 ๋ผ์šฐํŒ… ๋ฐฉ์‹์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ•œ ๋ ˆ์ด์–ด์—์„œ ๋‹ค์ค‘ ์ „๋ฌธ๊ฐ€ FFN๋“ค์ด ๋™์‹œ์— ์ž‘๋™ํ•˜๋ฉด์„œ๋„, ๊ฐ ํ† ํฐ์€ ์†Œ์ˆ˜ ์ „๋ฌธ๊ฐ€์˜ ์ถœ๋ ฅ๋งŒ ํ™œ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. Router๋Š” ๊ฐ„๋‹จํ•œ ํ”ผ๋“œํฌ์›Œ๋“œ ๋„คํŠธ์›Œํฌ(FFN; Feed Forward Network)๋กœ, ์ผ๋ฐ˜์ ์œผ๋กœ ํ† ํฐ์˜ ์ž…๋ ฅ ์ž„๋ฒ ๋”ฉ์— ์ ์šฉ๋˜๋Š” ๋‹จ์ผ ์„ ํ˜• ๋ ˆ์ด์–ด์™€ ๊ทธ ๋’ค์— ์˜ค๋Š” ์†Œํ”„ํŠธ๋งฅ์Šค ํ•จ์ˆ˜๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ž˜์— ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

MoE ๋ ˆ์ด์–ด (์ถœ์ฒ˜: A Visual Guide to Mixture of Experts)
Top-2 ๋ผ์šฐํŒ… ์˜ˆ์‹œ

1.2. ์ˆ˜ํ•™์  ์ •์˜

dd ๊ฐ€ ๋ชจ๋ธ์˜ ์€๋‹‰hidden ์ฐจ์›์ธ ๋ฒกํ„ฐ xโˆˆRdx \in \mathbb{R}^d๋กœ ํ‘œํ˜„๋˜๋Š” ๋‹จ์ผ ์ž…๋ ฅ ํ† ํฐ์„ ๊ณ ๋ คํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Router ์ž์ฒด๋Š” ๊ฐ„๋‹จํ•œ ์„ ํ˜• ๋ ˆ์ด์–ด๋กœ, NN์ด ์ด ์ „๋ฌธ๊ฐ€ ์ˆ˜์ธ ํ›ˆ๋ จ ๊ฐ€๋Šฅํ•œ ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ WgโˆˆRdร—NW_g \in \mathbb{R}^{d \times N}์œผ๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ ˆ์ด์–ด๋Š” ์ž…๋ ฅ ํ† ํฐ์„ ์ฐจ์› NN์˜ ๊ณต๊ฐ„์œผ๋กœ ํˆฌ์˜(project)ํ•˜์—ฌ ๊ฐ ์ „๋ฌธ๊ฐ€์— ๋Œ€ํ•œ ๋กœ์ง“(logit)์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

logitsย H(x)=xโ‹…Wg\text{logits } H(x) = x \cdot W_g
  • NN: ๋ ˆ์ด์–ด์˜ ์ด ์ „๋ฌธ๊ฐ€ ์ˆ˜๋กœ ๊ฐ ์ „๋ฌธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋…๋ฆฝ์ ์ธ FFN์ž…๋‹ˆ๋‹ค. (๊ฐ€์ค‘์น˜๋ฅผ ๊ณต์œ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

  • WgW_g: ๋ผ์šฐํ„ฐ์˜ ํ•™์Šต ๊ฐ€๋Šฅํ•œ ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ

๊ฒฐ๊ณผ๋กœ ๋‚˜์˜จ ๋ฒกํ„ฐ๋Š” ์–ด๋–ค ์ „๋ฌธ๊ฐ€๋“ค์ด ์„ ํƒ๋ ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ ์ˆ˜๋“ค์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ํฌ์†Œ์„ฑ์„ ๊ฐ•์ œํ•˜๊ธฐ ์œ„ํ•ด, ์ด ๋ฒกํ„ฐ์— top-k ํ•จ์ˆ˜๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, k=2k=2์ธ ๊ฒฝ์šฐ ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜๋ฅผ ๊ฐ€์ง„ ๋‘ ๋ช…์˜ ์ „๋ฌธ๊ฐ€๋งŒ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ์ „๋ฌธ๊ฐ€๋“ค์˜ ์ ์ˆ˜๋Š” ๋ชจ๋‘ 0์œผ๋กœ ์„ค์ •๋˜์–ด ํ˜„์žฌ ํ† ํฐ์— ๋Œ€ํ•ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

H(x)H(x)๋Š” ์–ด๋–ค ์ „๋ฌธ๊ฐ€๋“ค์ด ์„ ํƒ๋ ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” NN๊ฐœ ์ „๋ฌธ๊ฐ€์˜ raw score๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ ์ˆ˜๋ฅผ ํ™•๋ฅ  ๋ถ„ํฌ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ์ „๋ฌธ๊ฐ€์— ๋Œ€ํ•ด ์†Œํ”„ํŠธ๋งฅ์Šค๋ฅผ ์ ์šฉํ•˜์—ฌ ํ™•๋ฅ  ๋ถ„ํฌ G(x)G(x)๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

G(x)=softmax(H)=expโก(H)โˆ‘j=1Nexpโก(Hj)G(x) = \text{softmax}(H) = \frac{\exp(H)}{\sum_{j=1}^{N} \exp(H_j)}

์ถœ๋ ฅ G(x)G(x)๋Š” ๋ฐ€์ง‘dense NN์ฐจ์› ๋ฒกํ„ฐ๋กœ, ๊ฐ ์š”์†Œ G(x)iG(x)_i๋Š” ํ† ํฐ์„ ์ „๋ฌธ๊ฐ€ ii์— ํ• ๋‹นํ•˜๋Š” ๋ผ์šฐํ„ฐ์˜ ์‹ ๋ขฐ๋„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ๋งฅ์Šค ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— G(x)G(x)์˜ ๋ชจ๋“  ์š”์†Œ์˜ ํ•ฉ์€ 1์ž…๋‹ˆ๋‹ค.

์ด์ œ ์ด๋Ÿฌํ•œ ๋‹จ๊ณ„๋“ค์„ ๊ฒฐํ•ฉํ•˜์—ฌ MoE ๋ ˆ์ด์–ด์˜ ์ตœ์ข… ์ถœ๋ ฅ y(x)y(x)๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ผ์šฐํ„ฐ G(x)G(x)๋Š” ์ž…๋ ฅ ํ‘œํ˜„ xx (๋ณดํ†ต ํŠธ๋žœ์Šคํฌ๋จธ์˜ ์…€ํ”„ ์–ดํ…์…˜ ๊ณ„์ธต ์ถœ๋ ฅ)๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ์–ด๋–ค ์ „๋ฌธ๊ฐ€๊ฐ€ ์ด ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ• ์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ํ™•๋ฅ  ๋˜๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒ๋œ ์ „๋ฌธ๊ฐ€๋“ค์˜ ์ถœ๋ ฅ Ei(x)E_i(x)๋Š” ๋ผ์šฐํ„ฐ์˜ ์ ์ˆ˜๋กœ ๊ฐ€์ค‘ํ•ฉ๋˜์–ด ๊ฒฐํ•ฉ๋ฉ๋‹ˆ๋‹ค.

y(x)=โˆ‘i=1NG(x)iโ‹…Ei(x)y(x) = \sum_{i=1}^{N} G(x)_i \cdot E_i(x)

๊ฐ ์ „๋ฌธ๊ฐ€ EiE_i๋Š” ์ž์ฒด ๋งค๊ฐœ๋ณ€์ˆ˜ ์ง‘ํ•ฉ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ํ‘œ์ค€ 2-layer FFN ์ „๋ฌธ๊ฐ€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Ei(x)=ReLU(xโ‹…W1,i)โ‹…W2,iE_i(x) = \text{ReLU}(x \cdot W_{1,i}) \cdot W_{2,i}

์—ฌ๊ธฐ์„œ W1,iW_{1,i} ์™€ W2,iW_{2,i}๋Š” ๊ฐ๊ฐ ์ „๋ฌธ๊ฐ€ ii์˜ ์ฒซ ๋ฒˆ์งธ์™€ ๋‘ ๋ฒˆ์งธ ์„ ํ˜• ๋ ˆ์ด์–ด์˜ ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ์ž…๋‹ˆ๋‹ค.

1.3. Sparse MoE (Top-k ๋ผ์šฐํŒ…)

์œ„์—์„œ ์‚ฐ์ถœํ•œ ๋ฐ€์ง‘dense ํ™•๋ฅ  ๋ฒกํ„ฐ์ธ G(x)G(x) ๋ฒกํ„ฐ๋Š” ๋ชจ๋“  ์ „๋ฌธ๊ฐ€๊ฐ€ ์ถœ๋ ฅ์— ๊ธฐ์—ฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋ฉฐ, ์ด๋Š” MoE์˜ ๊ณ„์‚ฐ ํšจ์œจ์„ฑ์ด ๋†’์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํฌ์†Œ์„ฑSparse์„ ๊ฐ•์ œํ•˜๊ธฐ ์œ„ํ•ด top-k ์„ ํƒ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ ์šฉํ•จ์œผ๋กœ์จ, ์ฃผ์–ด์ง„ ํ† ํฐ์— ๋Œ€ํ•ด ์ „๋ฌธ๊ฐ€์˜ ์ผ๋ถ€๋งŒ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“  NN๊ฐœ์˜ ์ „๋ฌธ๊ฐ€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ๋กœ์ง“ ๋ฒกํ„ฐ HH์—์„œ ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜๋ฅผ ๊ฐ€์ง„ kk๊ฐœ์˜ ์ „๋ฌธ๊ฐ€๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. kk์˜ ๊ฐ’์€ ๋Œ€๊ฐœ 1 ๋˜๋Š” 2๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. (์˜ˆ์ปจ๋Œ€, k=2k=2 ์ธ ๊ฒฝ์šฐ, ๋ผ์šฐํ„ฐ๋Š” ๊ฐ€์žฅ ๋†’์€ ๋กœ์ง“์„ ๊ฐ€์ง„ ๋‘ ์ „๋ฌธ๊ฐ€๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.) ๋‹ค๋ฅธ ๋ชจ๋“  ์ „๋ฌธ๊ฐ€๋Š” ์ด ํŠน์ • ํ† ํฐ์— ๋Œ€ํ•ด ๋ฌด์‹œ๋˜์–ด, ๊ณ„์‚ฐ ๋น„์šฉ์ด ์ด ์ „๋ฌธ๊ฐ€ ์ˆ˜ NN์ด ์•„๋‹Œ kk์— ๋น„๋ก€ํ•ฉ๋‹ˆ๋‹ค.

๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค:

  1. ์ ์ˆ˜ ๊ณ„์‚ฐ: G(x)G(x)๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

  2. Top-k ์„ ํƒ: GG์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’ kk๊ฐœ์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค TopK(H)=i1,i2,...,ik\text{TopK}(H) = {i_1, i_2, ..., i_k}๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

  3. ์ ์ˆ˜ ์žฌ์ •๊ทœํ™” ๋ฐ ๊ฐ€์ค‘ํ•ฉ ๊ณ„์‚ฐ: ์„ ํƒ๋œ kk๋ช…์˜ ์ „๋ฌธ๊ฐ€์— ๋Œ€ํ•ด์„œ๋งŒ ์†Œํ”„ํŠธ๋งฅ์Šค๋ฅผ ์ ์šฉํ•˜์—ฌ ์ ์ˆ˜(ํ™•๋ฅ )๋ฅผ ์žฌ์ •๊ทœํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ข… ์ถœ๋ ฅ์€ (์žฌ์ •๊ทœํ™”๋œ) ๊ฒŒ์ดํŒ… ํ™•๋ฅ ์„ ๊ฐ€์ค‘์น˜๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์„ ํƒ๋œ ์ „๋ฌธ๊ฐ€๋“ค์˜ ์ถœ๋ ฅ์˜ ๊ฐ€์ค‘ ํ•ฉ์ž…๋‹ˆ๋‹ค.

y(x)=โˆ‘iโˆˆTopK(H)expโก(Hi)โˆ‘jโˆˆTopK(H)expโก(Hj)โ‹…Ei(x) y(x) = \sum_{i \in \text{TopK}(H)} \frac{\exp(H_i)}{\sum_{j \in \text{TopK}(H)} \exp(H_j)} \cdot E_i(x)

Sparse MoE ์ ‘๊ทผ๋ฒ•์€ ๋ชจ๋ธ ํฌ๊ธฐ(๋งค๊ฐœ๋ณ€์ˆ˜ ์ˆ˜)์™€ ๊ณ„์‚ฐ ๋น„์šฉ(ํ† ํฐ๋‹น FLOPs)์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ˆ˜์กฐ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง„ ์ดˆ๊ฑฐ๋Œ€ ๋ชจ๋ธ์„ ๊ตฌ์ถ•ํ•˜๋ฉด์„œ๋„ ํ›ˆ๋ จ๊ณผ ์ถ”๋ก  ์‹œ ๊ณ„์‚ฐ ์šฉ๋Ÿ‰์„ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•œ ์ˆ˜์ค€์œผ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1.4. Dense ๋ชจ๋ธ๊ณผ Sparse MoE ๋ชจ๋ธ์˜ ๊ณ„์‚ฐ ๋น„์šฉ (FLOPs) ๋น„๊ต

Dense ๋ชจ๋ธ vs. Sparse MoE ๋ชจ๋ธ

Dense ๋ชจ๋ธ

๋ฐ€์ง‘dense ๋ชจ๋ธ์—์„œ๋Š” ์ฃผ์–ด์ง„ ์ธต์˜ ๋ชจ๋“  ์ž…๋ ฅ ํ† ํฐ์ด ๋ชจ๋“  ํŒŒ๋ผ๋ฏธํ„ฐ์— ์˜ํ•ด ์ฒ˜๋ฆฌ๊ธฐ์— ํ† ํฐ๋‹น FLOPs๋Š” ๋ฐ€์ง‘ ๊ณ„์ธต ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ํฌ๊ธฐ์— ๋น„๋ก€ํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ/์ถœ๋ ฅ ์ฐจ์›์ด dmodeld_{\text{model}}์ด๊ณ  ์ค‘๊ฐ„ ์ฐจ์›์ด dffnd_{\text{ffn}}์ธ FFN์˜ ๊ฒฝ์šฐ, ๋‹จ์ผ ํ† ํฐ์— ํ•„์š”ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜์™€ ๊ณ„์‚ฐ๋Ÿ‰์€ ๋ชจ๋ธ์˜ ์ฐจ์›, ํŠนํžˆ dmodeld_{\text{model}}๊ณผ dffnd_{\text{ffn}}์— ์ •๋น„๋ก€ํ•ฉ๋‹ˆ๋‹ค.

์ด ์‹์€ dffnd_{\text{ffn}}์„ ์ฆ๊ฐ€์‹œ์ผœ ๋ชจ๋ธ์„ ๋” ๋˜‘๋˜‘ํ•˜๊ฒŒ ๋งŒ๋“ค๋ ค๋ฉด ๋ฐฉ๋Œ€ํ•œ ๊ณ„์‚ฐ ๋น„์šฉ์„ ์ง€๋ถˆํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

Sparse MoE ๋ชจ๋ธ

Sparse MoE ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ ๋งŽ์€ ์ „๋ฌธ๊ฐ€๋“ค์— ๊ฑธ์ณ ๋ฐฉ๋Œ€ํ•œ ์ˆ˜์˜ ์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์„์ง€๋ผ๋„, ์ฃผ์–ด์ง„ ํ† ํฐ์— ๋Œ€ํ•ด ํ™œ์„ฑํ™”๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๊ทธ ์ค‘ ์ผ๋ถ€์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ปจ๋Œ€ ์ „๋ฌธ๊ฐ€๋ฅผ 16๋ช…์—์„œ 64๋ช…์œผ๋กœ ๋Š˜๋ ค๋„ ํ† ํฐ๋‹น FLOPs๋Š” ์ฆ๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

MoE ๋ ˆ์ด์–ด์˜ ์ด ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜๋Š” ๋ชจ๋“  ์ „๋ฌธ๊ฐ€๋“ค์˜ ํ•ฉ์ž…๋‹ˆ๋‹ค.

ParametersMoE=Nexpertsร—Parametersexpert\text{Parameters}_{\text{MoE}} = N_{\text{experts}} \times \text{Parameters}_{\text{expert}}

ํ•˜์ง€๋งŒ FLOPs๋Š” ํ™œ์„ฑํ™”๋œ ์ „๋ฌธ๊ฐ€ ์ˆ˜ kk์—๋งŒ ๋น„๋ก€ํ•ฉ๋‹ˆ๋‹ค.

FLOPsMoEโ‰ˆkร—(2ร—batch_sizeร—seq_lenร—dmodelร—dexpert)\text{FLOPs}_{\text{MoE}} \approx k \times (2 \times \text{batch\_size} \times \text{seq\_len} \times d_{\text{model}} \times d_{\text{expert}})

์ด๊ฒƒ์ด MoE ์•„ํ‚คํ…์ฒ˜์˜ ํ•ต์‹ฌ ์žฅ์ ์ž…๋‹ˆ๋‹ค. ์ „๋ฌธ๊ฐ€ ์ˆ˜ NexpertsN_{\text{experts}}๋ฅผ ๋Š˜๋ ค ๋ชจ๋ธ์˜ ์šฉ๋Ÿ‰capacity(์ด ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜)์„ ๊ทน์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ๋„, ํ† ํฐ๋‹น ๊ณ„์‚ฐ ๋น„์šฉ์€ kk๋ฅผ ๊ณ ์ •ํ•จ์œผ๋กœ์จ ์ผ์ •ํ•˜๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ€์ง‘ ๋ชจ๋ธ๋ณด๋‹ค ํ›จ์”ฌ ์ž‘์€ ๊ณ„์‚ฐ ์˜ˆ์‚ฐ์œผ๋กœ๋„ ์ˆ˜์กฐ ๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ€์ง„ ๋ชจ๋ธ์„ ํ›ˆ๋ จํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

2. Router ๋„คํŠธ์›Œํฌ ํ›ˆ๋ จ


์ง๊ด€์ ์œผ๋กœ ํŠน์ • ์œ ํ˜•์˜ ํ† ํฐ์„ ํŠน์ • ์ „๋ฌธ๊ฐ€์—๊ฒŒ ๋ผ์šฐํŒ…ํ•˜๋Š” ๊ฒƒ์ด ์ง€์†์ ์œผ๋กœ ๋ชจ๋ธ์˜ loss๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๊ฒŒ, ์˜ค๋ฅ˜์—ญ์ „ํŒŒ๋ฅผ ํ†ตํ•ด WgW_g ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ๋ฏธ๋ž˜์— ํŠน์ • ์ „๋ฌธ๊ฐ€ ํ• ๋‹น์˜ ํ™•๋ฅ ์„ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๊ณผ์ •์—์„œ ํฐ ๋‚œ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ ๊ฒŒ์ดํŒ… ๋„คํŠธ์›Œํฌ๊ฐ€ ์†Œ์ˆ˜์˜ ์ „๋ฌธ๊ฐ€๋“ค๋งŒ ์„ ํ˜ธํ•˜์—ฌ ๋‹ค๋ฅธ ์ „๋ฌธ๊ฐ€๋“ค์„ ํ›ˆ๋ จ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‚จ๊ฒจ๋‘๋Š” ๋ถˆ๊ท ํ˜• ๋ผ์šฐํŒ… ๋ฌธ์ œ(๋˜๋Š” ์ „๋ฌธ๊ฐ€ ๋ถ•๊ดดExpert collapse)๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ณด์กฐ ์†์‹คAuxiliary Loss (๋˜๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ์†Œ์‹ค), ์ „๋ฌธ๊ฐ€ ์šฉ๋Ÿ‰Capacity Factor, ๋ผ์šฐํ„ฐ ๋…ธ์ด์ฆˆ ๊ธฐ๋ฒ•์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ณด์กฐ ์†์‹ค (Auxiliary Loss): ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ์†์‹ค์— ๋ณด์กฐ ์†์‹ค์„ ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ ์ „๋ฌธ๊ฐ€์˜ ๋ถ„ํฌ๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ผ์šฐํ„ฐ ๋…ธ์ด์ฆˆ: top-k ์ „๋ฌธ๊ฐ€๋ฅผ ์„ ํƒํ•˜๊ธฐ ์ „์— ๊ฒŒ์ดํŒ… ๋„คํŠธ์›Œํฌ์˜ ๋กœ์ง“์— ์†Œ๋Ÿ‰์˜ ๋ฌด์ž‘์œ„ ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์„ ํƒ๋  ํ™•๋ฅ ์ด ๋‚ฎ์€ ์ „๋ฌธ๊ฐ€๋„ ๊ฐ€๋” ํƒ์ƒ‰ํ•˜๋„๋ก ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค.

  3. ์ „๋ฌธ๊ฐ€ ์šฉ๋Ÿ‰ (Expert Capacity): ์ „๋ฌธ๊ฐ€๊ฐ€ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ† ํฐ ์ˆ˜์— ๋Œ€ํ•œ ๋ฒ„ํผ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

2.1. ์ „๋ฌธ๊ฐ€ ๋ถ•๊ดด (Expert Collapse)

์ „๋ฌธ๊ฐ€ ๋ถ•๊ดด๋Š” ๋ผ์šฐํ„ฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„์˜ ํ† ํฐ์„ ์ž‘๊ณ  ์„ ํ˜ธ๋˜๋Š” ์ „๋ฌธ๊ฐ€ ๋ถ€๋ถ„์ง‘ํ•ฉ์œผ๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ๊ฒƒ์„ ํ•™์Šตํ•˜๋Š” ๋ฐ˜๋ฉด, ๋‚˜๋จธ์ง€ ์ „๋ฌธ๊ฐ€๋“ค์€ ์ ๊ฑฐ๋‚˜ ์•„์˜ˆ ํ† ํฐ์„ ๋ฐ›์ง€ ๋ชปํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ™œ์šฉ๋„๊ฐ€ ๋‚ฎ์€ ์ „๋ฌธ๊ฐ€๋“ค์€ ์˜๋ฏธ ์žˆ๋Š” ์ „๋ฌธํ™”๋ฅผ ํ•™์Šตํ•˜์ง€ ๋ชปํ•˜๊ณ , ํšจ๊ณผ์ ์œผ๋กœ "์ฃฝ์€" ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

MoE ๋ชจ๋ธ ํ›ˆ๋ จ ์ค‘์—๋Š” ์ „๋ฌธ๊ฐ€ ๋ถ•๊ดดExpert Collapse ํ˜„์ƒ์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค:

  • ์ดˆ๊ธฐํ™”: ๊ฒŒ์ดํŒ… ๋„คํŠธ์›Œํฌ์˜ ์ดˆ๊ธฐ ๋ฌด์ž‘์œ„ ๊ฐ€์ค‘์น˜๊ฐ€ ํŠน์ • ์ „๋ฌธ๊ฐ€๋“ค์„ ๋ณธ์งˆ์ ์œผ๋กœ ์„ ํ˜ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ดˆ๊ธฐ ํ›ˆ๋ จ ์—ญํ•™Dynamics: ์ดˆ๊ธฐ ๊ทธ๋ž˜๋””์–ธํŠธ๊ฐ€ ์ดˆ๊ธฐ์— ์„ค์ •๋œ ๋ผ์šฐํŒ… ํŒจํ„ด์„ ๊ฐ•ํ™”ํ•˜์—ฌ, ์•ฝ๊ฐ„ ๋” ์ž˜ ์ˆ˜ํ–‰ํ•˜๋Š” ์ผ๋ถ€ ์ „๋ฌธ๊ฐ€๋“ค์ด ์ ์  ๋” ๋งŽ์€ ํ† ํฐ์„ ๋ฐ›๋Š” ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ๋ถ„ํฌ: ํŠน์ • ํŠน์ง•์ด๋‚˜ ํŒจํ„ด์ด ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์— ๋” ๋งŽ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์–ด, ์ตœ์ ํ™”๊ฐ€ ์ž˜ ๋œ ๊ฒŒ์ดํŒ… ๋„คํŠธ์›Œํฌ๊ฐ€ ์ด๋ฅผ ํŠน์ • ์ „๋ฌธ๊ฐ€์—๊ฒŒ ๋ผ์šฐํŒ…ํ•˜๊ฒŒ ๋˜๊ณ , ํ•ด๋‹น ํŒจํ„ด์ด ํ”ํ•  ๊ฒฝ์šฐ ์ „๋ฌธ๊ฐ€๋“ค์ด ๊ณผ๋ถ€ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ช…์‹œ์  ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋ถ€์กฑ: ๋ถ€ํ•˜ ๊ท ํ˜•์„ ์žฅ๋ คํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์—†์œผ๋ฉด ๋ถ€ํ•˜๋ฅผ ๊ณ ๋ฅด๊ฒŒ ๋ถ„๋ฐฐํ•  ๋™๊ธฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ „๋ฌธ๊ฐ€ ๋ถ•๊ดด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํ•œ ์ตœ์ ํ™” ์„ธ๋ถ€์‚ฌํ•ญ์ด ์•„๋‹ˆ๋ผ, ํฌ๊ณ  ์„ฑ๋Šฅ ์ข‹์€ MoE ๋ชจ๋ธ์„ ์„ฑ๊ณต์ ์œผ๋กœ ํ›ˆ๋ จํ•˜๊ธฐ ์œ„ํ•œ ํ•„์ˆ˜ ์ ˆ์ฐจ์ž…๋‹ˆ๋‹ค.

์ „๋ฌธ๊ฐ€ ๋ถ•๊ดด ๋ผ์šฐํŒ… (์ขŒ์ธก ๋„์‹) ๋ฐ ๊ท ํ˜• ๋ผ์šฐํŒ… (์šฐ์ธก ๋„์‹)

์ „๋ฌธ๊ฐ€ ๋ถ•๊ดด๋ฅผ ์‹๋ณ„ํ•˜๋ ค๋ฉด ํ›ˆ๋ จ ๊ณผ์ • ์ „๋ฐ˜์— ๊ฑธ์ณ ๋ผ์šฐํ„ฐ ํ–‰๋™์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ์ด ์†์‹ค์„ ๊ด€์ฐฐํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ๋ถˆ์ถฉ๋ถ„ํ•˜๋ฉฐ, ๊ทผ๋ณธ์ ์ธ ๋ถˆ๊ท ํ˜•์„ ๋“œ๋Ÿฌ๋‚ด์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง„๋‹จ์„ ์œ„ํ•ด ์•„๋ž˜์˜ ์ฃผ์š” ์ง€ํ‘œ๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์ „๋ฌธ๊ฐ€ ํ™œ์šฉ๋„ (Expert Utilization): ์„ค์ •๋œ ํ›ˆ๋ จ ๋‹จ๊ณ„ ์ˆ˜์— ๊ฑธ์ณ ๊ฐ ์ „๋ฌธ๊ฐ€์—๊ฒŒ ์ „๋‹ฌ๋œ ํ† ํฐ ์ˆ˜๋ฅผ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ์ „๋ฌธ๊ฐ€๋‹น ํ† ํฐ ์ˆ˜์˜ ํžˆ์Šคํ† ๊ทธ๋žจ์ด ์‹ฌํ•˜๊ฒŒ ์น˜์šฐ์ณ ์žˆ๋‹ค๋ฉด ์ „๋ฌธ๊ณผ ๋ถ•๊ดด์ž„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  • ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ์†์‹ค (Load Balancing Loss): ๋†’์€ ๊ฐ’์€ ๋ผ์šฐํ„ฐ๊ฐ€ ๋กœ๋“œ ๊ท ํ˜•์„ ๋งž์ถ”๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ์Œ์„ ์‹œ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚ฎ์€ ๊ฐ’์ด ํ•ญ์ƒ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ผ์šฐํ„ฐ๊ฐ€ ํ† ํฐ์„ ๋“œ๋กญํ•˜์—ฌ ๋‚ฎ์€ ์†์‹ค์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • ๋ณ€๋™ ๊ณ„์ˆ˜ (CV; Coefficient Variation): ์ „๋ฌธ๊ฐ€๋‹น ํ† ํฐ ๋ถ„ํฌ์˜ ๋ณ€๋™ ๊ณ„์ˆ˜๋กœ ํ‘œ์ค€ํŽธ์ฐจ๋ฅผ ํ‰๊ท ์œผ๋กœ ๋‚˜๋ˆˆ ๊ฐ’์œผ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค. 0์— ๊ฐ€๊นŒ์šด CV๋Š” ์™„๋ฒฝํ•œ ๊ท ํ˜•์„ ๋‚˜ํƒ€๋‚ด๊ณ , ๋†’์€ CV๋Š” ์ƒ๋‹นํ•œ ๋ถˆ๊ท ํ˜•์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, ๊ฐ ์ „๋ฌธ๊ฐ€์˜ ์ค‘์š”๋„ ์ ์ˆ˜๊ฐ€ ๋งŽ์ด ๋‹ค๋ฅด๋ฉด CV๊ฐ€ ๋†’๊ณ  ๋ชจ๋“  ์ „๋ฌธ๊ฐ€์˜ ์ค‘์š”๋„ ์ ์ˆ˜๊ฐ€ ๋น„์Šทํ•˜๋ฉด CV๊ฐ€ ๋‚ฎ์•„์ง‘๋‹ˆ๋‹ค.

CV=1Nโˆ‘i=1N(Liโˆ’Lห‰)2Lห‰ \text{CV} = \frac{\sqrt{\frac{1}{N} \sum_{i=1}^{N} (L_i - \bar{L})^2}}{\bar{L}}
  • NN: ์ „๋ฌธ๊ฐ€ ์ˆ˜, LiL_i: ํ›ˆ๋ จ ๋‹จ๊ณ„์—์„œ ์ „๋ฌธ๊ฐ€ ii์˜ ๋กœ๋“œ(ํ† ํฐ ์ˆ˜), Lห‰\bar{L}: ํ‰๊ท  ๋กœ๋“œ

๋‚ฎ์€ CV์™€ ๋†’์€ CV (์ถœ์ฒ˜: A Visual Guide to Mixture of Experts)

2.2. ๋ณด์กฐ ์†์‹ค (Auxiliary Loss)

๋ณด์กฐ ์†์‹ค์˜ ๋ชฉํ‘œ๋Š” ๋ผ์šฐํ„ฐ์˜ ๋ถˆ๊ท ํ˜•์— ๋Œ€ํ•ด ํŽ˜๋„ํ‹ฐ๋ฅผ ์ฃผ๋Š” ์†์‹ค ํ•ญ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›๋ž˜ Sparsely-Gated MoE ๋…ผ๋ฌธ์—์„œ ๋„์ž…๋œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์ ‘๊ทผ๋ฒ•์€ ๋ฐฐ์น˜์—์„œ ํ† ํฐ๊ณผ ๋ผ์šฐํ„ฐ ํ™•๋ฅ  ๋ถ„ํฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ณด์กฐ ์†์‹ค ํ•จ์ˆ˜

๋ณด์กฐ ์†์‹ค LauxL_{aux}๋Š” ์ด ๋‘ ๋ฒกํ„ฐ์˜ ๋‚ด์ ์œผ๋กœ ๊ณ„์‚ฐ๋˜๋ฉฐ, ์ „๋ฌธ๊ฐ€ ์ˆ˜ NN์œผ๋กœ ์Šค์ผ€์ผ๋ฉ๋‹ˆ๋‹ค:

Laux=Nโ‹…โˆ‘i=1Nfiโ‹…PiL_{aux} = N \cdot \sum_{i=1}^{N} f_i \cdot P_i

  • ์ „๋ฌธ๊ฐ€๋‹น ํ† ํฐ ๋น„์œจ (fif_i): ์ „๋ฌธ๊ฐ€ ii๋กœ ๋ณด๋‚ด์ง€๋Š” ํ† ํฐ์˜ ์ˆ˜๋ฅผ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์น˜์— BB๊ฐœ์˜ ํ† ํฐ์ด ์žˆ๊ณ  top-1 ๊ฒŒ์ดํŒ…์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ์ด๋Š” ๋‹จ์ˆœํžˆ ์ „๋ฌธ๊ฐ€ ii๋กœ ๋ผ์šฐํŒ…๋œ ํ† ํฐ ์ˆ˜๋ฅผ BB๋กœ ๋‚˜๋ˆˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์ „๋ฌธ๊ฐ€๋‹น ํ‰๊ท  ๋ผ์šฐํ„ฐ ํ™•๋ฅ  (PiP_i): ๋ฐฐ์น˜์˜ ๋ชจ๋“  ํ† ํฐ์— ๊ฑธ์ณ ๋ผ์šฐํ„ฐ๊ฐ€ ์ „๋ฌธ๊ฐ€ ii์— ํ• ๋‹นํ•˜๋Š” ํ‰๊ท  ํ™•๋ฅ (๋˜๋Š” ๊ฒŒ์ดํŒ… ์ ์ˆ˜)์ž…๋‹ˆ๋‹ค. ๋ผ์šฐํ„ฐ๊ฐ€ ์ „๋ฌธ๊ฐ€ ii์—๊ฒŒ ๋ถ€์—ฌํ•˜๋Š” "์ค‘์š”๋„"์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ด ์†์‹ค์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด, ๋ชจ๋ธ์€ ๋‹จ์ผ ์ „๋ฌธ๊ฐ€ ii๊ฐ€ ๋†’์€ ํ† ํฐ ๋น„์œจ fif_i์™€ ๋†’์€ ํ‰๊ท  ํ™•๋ฅ  PiP_i๋ฅผ ๋™์‹œ์— ๊ฐ–๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์†์‹ค์€ ๊ณฑ fiโ‹…Pif_i \cdot P_i๊ฐ€ ์ž‘๊ณ  ๊ณ ๋ฅด๊ฒŒ ๋ถ„ํฌ๋  ๋•Œ ๊ฐ€์žฅ ๋‚ฎ์œผ๋ฉฐ, ์ด๋Š” ๋ชจ๋“  ์ „๋ฌธ๊ฐ€์— ๊ฑธ์ณ ๋กœ๋“œ๊ฐ€ ๊ท ํ˜•์„ ์ด๋ฃฐ ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ณด์กฐ ์†์‹ค ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ (์ถœ์ฒ˜: A Visual Guide to Mixture of Experts)

์ตœ์ข… ์†์‹ค ํ•จ์ˆ˜

๋ณด์กฐ ์†์‹ค์€ ์ž‘์—… ์†์‹ค(์˜ˆ: Ltask=CrossEntropy(ypred,ytrue)L_{\text{task}} = \text{CrossEntropy}(y_{\text{pred}}, y_{\text{true}}))๊ณผ ๊ฒฐํ•ฉ๋˜์–ด ์—ญ์ „ํŒŒ์— ์‚ฌ์šฉ๋˜๋Š” ์ตœ์ข… ์†์‹ค ํ•จ์ˆ˜๋ฅผ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค:

Ltotal=Ltask+ฮฑโ‹…Laux L_{total} = L_{task} + \alpha \cdot L_{aux}

ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ฮฑ\alpha๋Š” ์ข…์ข… load_balance_loss_coef๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ, ๊ท ํ˜• ์ธ์„ผํ‹ฐ๋ธŒ์˜ ๊ฐ•๋„๋ฅผ ์ œ์–ดํ•˜๋Š” ์ž‘์€ ์Šค์นผ๋ผ ๊ฐ’์ž…๋‹ˆ๋‹ค.

  • ฮฑ\alpha๊ฐ€ ๋„ˆ๋ฌด ์ž‘์œผ๋ฉด, ๊ท ํ˜• ํž˜์ด ๋„ˆ๋ฌด ์•ฝํ•ด์„œ ์ „๋ฌธ๊ฐ€ ๋ถ•๊ดด๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • ฮฑ\alpha๊ฐ€ ๋„ˆ๋ฌด ํฌ๋ฉด, ๋ชจ๋ธ์ด ์ฃผ์š” ์ž‘์—…์˜ ์„ฑ๋Šฅ์„ ํฌ์ƒํ•˜๋ฉด์„œ ์™„๋ฒฝํ•œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ์šฐ์„ ์‹œํ•˜์—ฌ ์ „์ฒด์ ์ธ ์ •ํ™•๋„๊ฐ€ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ฮฑ\alpha์— ์ ํ•ฉํ•œ ๊ฐ’์„ ์ฐพ๋Š” ๊ฒƒ์€ MoE ๋ชจ๋ธ์˜ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹ ๊ณผ์ •์ด๋ฉฐ, ์ผ๋ฐ˜์ ์ธ ์‹œ์ž‘์ ์€ 0.01 ์ •๋„์˜ ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ„๋‹จํ•˜์ง€๋งŒ ํšจ๊ณผ์ ์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๊ฑฐ์˜ ๋ชจ๋“  MoE ํ›ˆ๋ จ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋ฒ ์ด์Šค๋ผ์ธ์ž…๋‹ˆ๋‹ค.

2.3. ์ „๋ฌธ๊ฐ€ ์šฉ๋Ÿ‰ (Expert Capacity)

์ „๋ฌธ๊ฐ€ ์šฉ๋Ÿ‰Expert Capacity์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ „๋ฌธ๊ฐ€๋‹น ์ด์ƒ์ ์ธ ๊ท ์ผ ๋ถ€ํ•˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ „๋ฌธ๊ฐ€ ์šฉ๋Ÿ‰ ๊ณ„์ˆ˜capacity factor๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. TT๊ฐ€ ์ฒ˜๋ฆฌ๋˜๋Š” ํ† ํฐ ์ˆ˜์ผ ๋•Œ, ์ด์ƒ์ ์ธ ์™„๋ฒฝํ•˜๊ฒŒ ๊ท ํ˜• ์žกํžŒ ๋ผ์šฐํ„ฐ๋Š” ๊ฐ ์ „๋ฌธ๊ฐ€์—๊ฒŒ ์ •ํ™•ํžˆ TN\frac{T}{N} ๊ฐœ์˜ ํ† ํฐ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์šฉ๋Ÿ‰ ๊ณ„์ˆ˜ CC๋Š” ํ†ต๊ณ„์  ๋ณ€๋™์„ฑ์— ๋Œ€ํ•œ ์™„์ถฉ ์—ญํ• ์„ ์ œ๊ณตํ•˜๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Expertย Capacity=(Tokensย perย BatchNexperts)ร—C\text{Expert Capacity} = \left( \frac{\text{Tokens per Batch}}{N_{\text{experts}}} \right) \times C

CC์˜ ์ผ๋ฐ˜์ ์ธ ๊ฐ’ ๋ฒ”์œ„๋Š” 1.0์—์„œ 2.0 ์‚ฌ์ด์ž…๋‹ˆ๋‹ค. (์˜ˆ์ปจ๋Œ€ CC๊ฐ€ 1.25๋ผ๋Š” ๊ฒƒ์€ ๊ฐ ์ „๋ฌธ๊ฐ€๊ฐ€ ํ‰๊ท ๋ณด๋‹ค 25% ๋” ๋งŽ์€ ํ† ํฐ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.)

  • 1.0์— ๊ฐ€๊นŒ์šด ๊ฐ’(์˜ˆ: 1.25)์€ ๊ณ„์‚ฐ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ตœ์†Œํ™”ํ•˜์ง€๋งŒ, ๋ถ€ํ•˜๊ฐ€ ์•ฝ๊ฐ„๋งŒ ๋ถˆ๊ท ํ˜•ํ•ด๋„ ํ† ํฐ์ด ์†์‹ค๋  ์œ„ํ—˜์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • ๋” ํฐ ๊ฐ’(์˜ˆ: 1.5, 2.0)์€ ํ† ํฐ ์†์‹ค ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ด์ง€๋งŒ, ์ „๋ฌธ๊ฐ€๊ฐ€ ์ข…์ข… CC๊ฐœ์˜ ํ† ํฐ๋ณด๋‹ค ์ ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š” ์ด์ƒ์œผ๋กœ ๊ณ„์‚ฐ ์ž์›์ด ํ• ๋‹น๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „๋ฌธ๊ฐ€์˜ ์šฉ๋Ÿ‰์ด ์ดˆ๊ณผ๋˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? ์ „๋ฌธ๊ฐ€๊ฐ€ ์šฉ๋Ÿ‰์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ, ์ƒ์„ฑ๋œ ํ† ํฐ๋“ค์€ Top-2์ผ ๊ฒฝ์šฐ ๋‹ค์Œ ์ „๋ฌธ๊ฐ€์—๊ฒŒ ์ „๋‹ฌ๋˜๋ฉฐ, ๋‹ค์Œ ์ „๋ฌธ๊ฐ€์˜ ์šฉ๋Ÿ‰์ด ์ดˆ๊ณผ๋œ๋‹ค๋ฉด ํ˜„์žฌ ๊ณ„์ธต์—์„œ์˜ ํ† ํฐ์„ ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. (์ด๋ฅผ ํ† ํฐ ์˜ค๋ฒ„ํ”Œ๋กœtoken overflow๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.) Top-1์€ ์ „๋‹ฌํ•œ ๋‹ค๋ฅธ ์ „๋ฌธ๊ฐ€๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์ „๋ฌธ๊ฐ€ ์šฉ๋Ÿ‰ ์ดˆ๊ณผ ์‹œ ๊ณง๋ฐ”๋กœ ํ† ํฐ์„ ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. (์ฆ‰, ์–ด๋–ค ์ „๋ฌธ๊ฐ€์— ์˜ํ•ด์„œ๋„ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.) ๋Œ€์‹ , ์ž”์ฐจ ์—ฐ๊ฒฐresidual connection์—์„œ์˜ ํ‘œํ˜„์ด ๋‹ค์Œ ์ธต์œผ๋กœ ์ง์ ‘ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” MoE ๊ณ„์ธต ๋‚ด์—์„œ ํ† ํฐ์ด ํ•ญ๋“ฑ ํ•จ์ˆ˜identity function๋ฅผ ํ†ต๊ณผํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ† ํฐ์„ ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ด ํ•ด๋กœ์›Œ ๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์‹คํ—˜ ๊ฒฐ๊ณผ ์ž˜ ์กฐ์ •๋œ ์šฉ๋Ÿ‰ ๊ณ„์ˆ˜์™€ ๋ณด์กฐ ์†์‹คauxiliary loss์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฒ„๋ ค์ง€๋Š” ํ† ํฐ์˜ ๋น„์œจ์ด ์ข…์ข… ๋‚ฎ์œผ๋ฉฐ(<1%), ์ „์ฒด ๋ชจ๋ธ ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

2.4. ๋ผ์šฐํ„ฐ ๋…ธ์ด์ฆˆ (Noisy Top-k Gating)

์ „๋ฌธ๊ฐ€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์˜ ๋˜๋‹ค๋ฅธ ๊ธฐ๋ฒ•์€ ๋ผ์šฐํ„ฐ ๋…ธ์ด์ฆˆ์ž…๋‹ˆ๋‹ค. ์›์‹œ ๊ฒŒ์ดํŒ… ๋กœ์ง“raw gating logits๋งŒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์œ„ kk๋ช…์˜ ์ „๋ฌธ๊ฐ€๋ฅผ ์„ ํƒํ•˜๋Š” ๋Œ€์‹ , ์„ ํƒ ๊ณผ์ • ์ „์— ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๊ฐ€์šฐ์‹œ์•ˆ ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

noisy_logits=logits+N(0,ฯƒ2)\text{noisy\_logits} = \text{logits} + \mathcal{N}(0, \sigma^2)

N(0,ฯƒ2) \mathcal{N}(0, \sigma^2)๋Š” ๋ถ„์‚ฐ์ด ฯƒ2\sigma^2, ํ‰๊ท ์ด 0์ธ ๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ์—์„œ ์ถ”์ถœ๋œ ์ƒ˜ํ”Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด noisy_logits์— ๋Œ€ํ•ด TopK ์„ ํƒ์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋…ธ์ด์ฆˆ ๋ถ„์‚ฐ ฯƒ2\sigma^2๋Š” ์ข…์ข… ํ›ˆ๋ จ ๊ฐ€๋Šฅํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๊ตฌํ˜„๋˜๊ฑฐ๋‚˜ ํ›ˆ๋ จ ์Šค์ผ€์ค„๋ง์— ์˜ํ•ด ์กฐ์ ˆ๋ฉ๋‹ˆ๋‹ค.

Noisy Top-k ์˜ˆ์‹œ: ํ‘œ์ค€ Top-k์—์„œ๋Š” ์ „๋ฌธ๊ฐ€ 1๊ณผ 3์ด ์„ ํƒ๋˜์ง€๋งŒ, Noise Top-k์—์„œ๋Š” ์ „๋ฌธ๊ฐ€ 1๊ณผ 4๊ฐ€ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.

์กฐ๊ธˆ ๋” ์ˆ˜ํ•™์ ์œผ๋กœ ํ‘œํ˜„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ WgW_g๊ฐ€ ๊ฒŒ์ดํŒ… ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ์ด๊ณ  xx๊ฐ€ ์ž…๋ ฅ ํ† ํฐ ํ‘œํ˜„์ด๋ผ๋ฉด, ํ‘œ์ค€ ๋กœ์ง“์€ logits=xโ‹…Wg\text{logits} = x \cdot W_g ์ž…๋‹ˆ๋‹ค. Noisy top-k์˜ ๊ฒฝ์šฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

ฯตโˆผN(0,1)\epsilon \sim \mathcal{N}(0, 1)๋Š” ํ† ํฐ๋ณ„๋กœ ์ƒ˜ํ”Œ๋ง๋œ ํ‘œ์ค€ ๊ฐ€์šฐ์‹œ์•ˆ ๋…ธ์ด์ฆˆ์ด๋ฉฐ, WnoiseW_{noise}๋Š” ์ž…๋ ฅ์— ๊ธฐ๋ฐ˜ํ•ด ๋…ธ์ด์ฆˆ๋ฅผ ๊ณฑ์…ˆ์ ์œผ๋กœ ์Šค์ผ€์ผ๋งํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ํ›ˆ๋ จ ๊ฐ€๋Šฅํ•œ ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ์ž…๋‹ˆ๋‹ค. softplus ํ•จ์ˆ˜๋Š” ๋…ธ์ด์ฆˆ ์Šค์ผ€์ผ๋ง ์ธ์ž๊ฐ€ ์–‘์ˆ˜๊ฐ€ ๋˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์ถ”๊ฐ€๋œ ์žก์Œ์€ ๋ผ์šฐํŒ… ๊ฒฐ์ •์— ํ™•๋ฅ ์„ฑ์„ ๋„์ž…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ ์ˆ˜๊ฐ€ ๋‚ฎ์€ ์ „๋ฌธ๊ฐ€๋“ค๋„ ์„ ํƒ๋  ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ํƒ์ƒ‰์„ ์ด‰์ง„ํ•˜๊ณ , ๋ผ์šฐํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ์ผ์ฐ ์ตœ์ ์ด ์•„๋‹Œ ํ• ๋‹น ํŒจํ„ด์— ๊ณ ์ฐฉ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. MoE ์ตœ์ ํ™” ๋ฒ ์ด์Šค๋ผ์ธ


์•„๋ž˜ ๋ฒ ์ด์Šค๋ผ์ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ•˜๋“œ์›จ์–ด ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์„ฑ๋Šฅ, ์ „๋ฌธํ™”, ๊ณ„์‚ฐ ๊ฐ€๋Šฅ์„ฑ์˜ ๊ท ํ˜•์„ ๋งž์ถ˜ MoE ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋„์ถœํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

3.1. ์ „๋ฌธ๊ฐ€ ์ˆ˜ ๊ฒฐ์ •

์ „์ฒด ์ „๋ฌธ๊ฐ€ ์ˆ˜ NN์€ ์ฃผ์š” ์•„ํ‚คํ…์ฒ˜ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ๋Š˜๋ฆฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • ๋” ๋งŽ์€ ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜: MoE ๊ณ„์ธต์€ ๋ชจ๋ธ ํฌ๊ธฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. ์ „๋ฌธ๊ฐ€๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ „์ฒด ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜๊ฐ€ ํฌ๊ฒŒ ์ฆ๊ฐ€ํ•˜์ง€๋งŒ, ๊ฐ ํ† ํฐ์ด ๋ผ์šฐํŒ…๋˜๋Š” ์ „๋ฌธ๊ฐ€ ์ˆ˜ kk๊ฐ€ ์ž‘๊ฒŒ ์œ ์ง€๋œ๋‹ค๋ฉด ๊ณ„์‚ฐ ๋น„์šฉ(FLOPs per token)์€ ์ ๋‹นํžˆ๋งŒ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • ๋” ์„ธ๋ฐ€ํ•œ ์ „๋ฌธํ™”: ๋” ๋งŽ์€ ์ „๋ฌธ๊ฐ€๋Š” ๋ชจ๋ธ์ด ๋‹ค์–‘ํ•œ ์ž…๋ ฅ ์œ ํ˜•์ด๋‚˜ ๋ฌธ๋งฅ์— ๋Œ€ํ•ด ๋” ๊ตฌ๋ณ„๋˜๊ณ  ํŠนํ™”๋œ ๊ธฐ๋Šฅ์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  • ํ•˜๋“œ์›จ์–ด ๋งคํ•‘: ์ „๋ฌธ๊ฐ€ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌExpert Parallelism๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ๋Š” NN์ด ๋ณดํ†ต ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฒ˜๋ฆฌ ์žฅ์น˜(GPU ๋“ฑ)์˜ ์ˆ˜์— ๋”ฐ๋ผ ๊ฒฐ์ •๋˜๋ฉฐ, ๊ฐ ์žฅ์น˜์— ํ•˜๋‚˜ ์ด์ƒ์˜ ์ „๋ฌธ๊ฐ€๊ฐ€ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ๋Œ€ํ˜• ๋ชจ๋ธ์—์„œ ํ”ํžˆ ์‚ฌ์šฉ๋˜๋Š” NN ๊ฐ’์€ 8, 16, 64, 128 ๋˜๋Š” ๊ทธ ์ด์ƒ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ NN์„ ๋Š˜๋ฆฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค:

  • ํ†ต์‹  ์˜ค๋ฒ„ํ—ค๋“œ: ์ „๋ฌธ๊ฐ€ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ์—์„œ๋Š” All-to-All ํ†ต์‹ ์ด ํ•„์š”ํ•˜์—ฌ ์žฅ์น˜ ๊ฐ„ ํ† ํฐ์„ ์„ž์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ „๋ฌธ๊ฐ€ ์ˆ˜๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ํ†ต์‹  ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ปค์ ธ ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • ๋ถ€ํ•˜ ๊ท ํ˜•์˜ ์–ด๋ ค์›€: ๋” ๋งŽ์€ ์ „๋ฌธ๊ฐ€๊ฐ€ ๋ชจ๋‘ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉ๋˜๋„๋ก ๋ผ์šฐํ„ฐ์™€ ๋ณด์กฐ ์†์‹ค ํ•จ์ˆ˜๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์ด ๋” ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค.

  • ์ด๋“ ๊ฐ์†Œ: ๋ฐ์ดํ„ฐ๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ทธ๋ ‡๊ฒŒ ๋งŽ์€ ๊ตฌ๋ณ„๋œ ์ „๋ฌธ ๋ถ„์•ผ๋กœ ๋ถ„ํ•ด๋˜์ง€ ์•Š๊ฑฐ๋‚˜, ๋ผ์šฐํ„ฐ๊ฐ€ ํ† ํฐ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ• ๋‹นํ•˜์ง€ ๋ชปํ•˜๋ฉด ์ „๋ฌธ๊ฐ€๋ฅผ ๋” ์ถ”๊ฐ€ํ•ด๋„ ๋ชจ๋ธ ํ’ˆ์งˆ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3.2. Top-k ๋ผ์šฐํŒ…๊ณผ์˜ ์ƒํ˜ธ์ž‘์šฉ

๋Œ€๋ถ€๋ถ„์˜ ์ตœ์‹  MoE ๊ตฌํ˜„์—์„œ๋Š” top-k ๋ผ์šฐํŒ…์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ k=1k=1 ๋˜๋Š” k=2k=2๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  • k=1: ๊ฐ ํ† ํฐ์€ ๋‹จ์ผ ์ „๋ฌธ๊ฐ€์—๊ฒŒ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค. ๋ฐฐ์น˜/๊ทธ๋ฃน ์ „์ฒด์˜ ํ† ํฐ ํ• ๋‹น ์ˆ˜๋Š” TT์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ€์šฉ ์šฉ๋Ÿ‰์€ Nร—CN \times C์ž…๋‹ˆ๋‹ค. ๋ถ€ํ•˜ ๋ถ„์‚ฐ์€ TT๊ฐœ์˜ ํ• ๋‹น์„ NN๋ช…์˜ ์ „๋ฌธ๊ฐ€๋“ค ์‚ฌ์ด์— ๋Œ€๋žต ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„๋ฐฐํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

  • k=2: ๊ฐ ํ† ํฐ์€ ๋‘ ๋ช…์˜ ์ „๋ฌธ๊ฐ€์—๊ฒŒ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค. ํ† ํฐ ํ• ๋‹น ์ˆ˜๋Š” ์ด 2T2T๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ€์šฉ ์šฉ๋Ÿ‰์€ ์—ฌ์ „ํžˆ Nร—CN \times C์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์‹œ์Šคํ…œ์— ํ›จ์”ฌ ๋” ํฐ ๋ถ€๋‹ด์„ ์ค๋‹ˆ๋‹ค. ๊ณผ๋„ํ•œ ํ† ํฐ ์†์‹ค์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

    • ๋” ๋†’์€ ์ „๋ฌธ๊ฐ€ ์šฉ๋Ÿ‰Expert Capacity

    • ๋ณด์กฐ ์†์‹คauxiliary loss ์„ ํ†ตํ•œ ๋” ํšจ๊ณผ์ ์ธ ๋ถ€ํ•˜ ๋ถ„์‚ฐ

    • ํ† ํฐ ๋ฐฐ์น˜ ํฌ๊ธฐ(TT)์— ๋น„ํ•ด ๋” ๋งŽ์€ ์ „๋ฌธ๊ฐ€ ์ˆ˜(NN)

k=2k=2๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ† ํฐ์ด ์—ฌ๋Ÿฌ ์ „๋ฌธํ™”๋œ ๊ธฐ๋Šฅ์˜ ํ˜œํƒ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ ๋ชจ๋ธ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์ง€๋งŒ, ํ† ํฐ๋‹น ๋‘ ๋ช…์˜ ์ „๋ฌธ๊ฐ€๋ฅผ ํ™œ์„ฑํ™”ํ•จ์œผ๋กœ์จ ๊ณ„์‚ฐ๋Ÿ‰ ์ฆ๊ฐ€์™€ ์ž ์žฌ์ ์œผ๋กœ ๋” ๋†’์€ ํ†ต์‹  ๋ฐ ์šฉ๋Ÿ‰ ์š”๊ตฌ ์‚ฌํ•ญ์ด๋ผ๋Š” ๋น„์šฉ์ด ๋”ฐ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์‹ ์ค‘ํžˆ ๊ฒ€ํ† ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

3.3. ๋ณด์กฐ ์†์‹ค ๊ท ํ˜• ๊ณ„์ˆ˜ (alpha) ์กฐ์ •

ฮฑ\alpha์˜ ์ ์ ˆํ•œ ๊ฐ’์€ ๋ณดํ†ต ๊ฒฝํ—˜์ ์œผ๋กœheuristic ์ฐพ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. ์ถ”์ฒœ ๋ฒ”์œ„: ๊ฐ’์€ ๋ณดํ†ต 10โˆ’210^{-2} ๋˜๋Š” 10โˆ’310^{-3}์ฒ˜๋Ÿผ ์ž‘์ง€๋งŒ, ์ตœ์  ๊ฐ’์€ ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜, ์ž‘์—…, ์ „๋ฌธ๊ฐ€ ์ˆ˜, ์„ ํƒํ•œ ๋ณด์กฐ ์†์‹ค ๊ณต์‹์— ํฌ๊ฒŒ ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์ง€๋‚˜์น˜๊ฒŒ ํฐ ฮฑ\alpha๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ์šฐ์„ ์‹œํ•˜์—ฌ ์ „์ฒด์ ์ธ ์ •ํ™•๋„๊ฐ€ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๊ณ  ์ง€๋‚˜์น˜๊ฒŒ ์ž‘์€ ฮฑ\alpha๋Š” ๋ผ์šฐํ„ฐ ๋ถˆ๊ท ํ˜•์„ ๊ฐœ์„ ํ•˜์ง€ ์•Š๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•ด ์ฃผ์„ธ์š”.

  2. ๋ชจ๋‹ˆํ„ฐ๋ง: ํ›ˆ๋ จ ์ค‘์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ค‘์š”ํ•œ ์ง€ํ‘œ๋“ค์„ ๊ด€์ฐฐํ•˜์„ธ์š”. ๋ชจ๋‹ˆํ„ฐ๋ง์€ Weights & Biases๋‚˜ ํ…์„œ๋ณด๋“œ ๊ฐ™์€ ํˆดํ‚ท์ด ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

    1. ์ „๋ฌธ๊ฐ€ ํ™œ์šฉ๋„: ๊ฐ ๋ฐฐ์น˜ ๋˜๋Š” ์—ฌ๋Ÿฌ ๋‹จ๊ณ„์— ๊ฑธ์ณ ๊ฐ ์ „๋ฌธ๊ฐ€๊ฐ€ ์ฒ˜๋ฆฌํ•œ ํ† ํฐ์˜ ์ˆ˜๋‚˜ ๋น„์œจ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” ์ „๋ฌธ๊ฐ€๋“ค์ด ๋Œ€๋žต ๋น„์Šทํ•œ ํ™œ์šฉ๋„๋ฅผ ๊ฐ€์ ธ์•ผ ํ•˜์ง€๋งŒ, ์™„๋ฒฝํ•œ ๊ท ์ผ์„ฑ์ด ํ•ญ์ƒ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์ตœ์ ์€ ์•„๋‹™๋‹ˆ๋‹ค.

    2. ๋ณด์กฐ ์†์‹ค LauxL_{aux} ํฌ๊ธฐ: ๋ณด์กฐ ์†์‹ค ๊ฐ’ ์ž์ฒด๋ฅผ ๊ด€์ฐฐํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ›ˆ๋ จ์ด ์ง„ํ–‰๋˜๊ณ  ๊ท ํ˜•์ด ๊ฐœ์„ ๋จ์— ๋”ฐ๋ผ ๊ฐ์†Œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. LauxL_{aux}๊ฐ€ LtaskL_{task}์— ๋น„ํ•ด ์–ด๋А ์ •๋„์ธ์ง€๋„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

    3. ์ž‘์—… ์†์‹ค ๋ฐ ๊ฒ€์ฆ ์„ฑ๋Šฅ: ฮฑ\alpha๋ฅผ ์ฆ๊ฐ€์‹œํ‚ฌ ๋•Œ ๋ชจ๋ธ์ด ์ฃผ ์ž‘์—…์„ ํ•™์Šตํ•˜๋Š” ๋Šฅ๋ ฅ์ด ์ง€๋‚˜์น˜๊ฒŒ ์†์ƒ๋˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. LtaskL_{task}์™€ ๊ด€๋ จ๋œ ๊ฒ€์ฆ ์ง€ํ‘œ(์˜ˆ: ์ •ํ™•๋„, BLEU ๋“ฑ)๋ฅผ ์ถ”์ ํ•˜์„ธ์š”.

  3. ํŠธ๋ ˆ์ด๋“œ-์˜คํ”„Trade-off ๋ถ„์„์„ ํ†ตํ•œ ๋ฐ˜๋ณต ์กฐ์ •: ์ž‘์€ ฮฑ\alpha๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์‹ฌ๊ฐํ•œ ๋ถˆ๊ท ํ˜•(์˜ˆ: ์ผ๋ถ€ ์ „๋ฌธ๊ฐ€๋Š” ํ‰๊ท ๋ณด๋‹ค ํ›จ์”ฌ ์ ์€ ํ† ํฐ์„ ๊ณ„์† ๋ฐ›๋Š” ๊ฒฝ์šฐ)์ด ๊ด€์ฐฐ๋˜๋ฉด ฮฑ\alpha๋ฅผ ์ ์ง„์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. ฮฑ\alpha๋ฅผ ํ‚ค์šธ ๋•Œ ์ฃผ ์ž‘์—… ์„ฑ๋Šฅ(๊ฒ€์ฆ ์†์‹ค/์ •ํ™•๋„)์ด ํฌ๊ฒŒ ๋–จ์–ด์ง€์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•ฉ๋‹ˆ๋‹ค.

  4. ์Šค์ผ€์ค„๋ง: ์ผ๋ถ€ ์‹ค๋ฌด์ž๋Š” ํ›ˆ๋ จ ์ค‘ ฮฑ\alpha๋ฅผ ์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๋ฐ˜์—๋Š” ๊ท ํ˜• ๊ฐ•์ œ๋ฅผ ์œ„ํ•ด ์•ฝ๊ฐ„ ๋†’์€ ๊ฐ’์œผ๋กœ ์‹œ์ž‘ํ•˜๊ณ , ํ›ˆ๋ จ์ด ์ง„ํ–‰๋˜์–ด ์ „๋ฌธ๊ฐ€๋“ค์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํŠนํ™”๋˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ์ ์ฐจ ๊ฐ’์„ ์ค„์ด๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

3.4. ์‹ค์šฉ์  ์ง€์นจ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง

MoE ๋ชจ๋ธ ๊ฐœ๋ฐœ ๋ฐ ํ›ˆ๋ จ ์ค‘์— ์ถ”์ ํ•ด์•ผ ํ•  ์ค‘์š”ํ•œ ์ง€ํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. ๋“œ๋กญ๋œ ํ† ํฐ ๋น„์œจ: ์šฉ๋Ÿ‰์ด ์ถฉ๋ถ„ํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ฃผ์š” ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค. ๋†’์€ ๊ฐ’(1-2% ์ด์ƒ)์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  2. ์ „๋ฌธ๊ฐ€ ํ™œ์šฉ๋„: ์ „๋ฌธ๊ฐ€ ์šฉ๋Ÿ‰์ด๋‚˜ ์ „๋ฌธ๊ฐ€ ํ• ๋‹น ์‹œ๊ฐํ™”์™€ ๊ฐ™์€ ์ง€ํ‘œ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ผ์šฐํ„ฐ ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•˜๊ณ  ๋ถ€ํ•˜ ๊ท ํ˜• ์†์‹ค์„ ์กฐ์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

  3. ๊ณ„์‚ฐ ๋น„์šฉ(FLOPs) ๋ฐ ํ›ˆ๋ จ ์ฒ˜๋ฆฌ๋Ÿ‰: ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ์˜ ์‹ค์ œ ์„ฑ๋Šฅ ์˜ํ–ฅ์„ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค.

  4. ์ „์ฒด ๋ชจ๋ธ ์„ฑ๋Šฅ: LLM์˜ BLEU/ROUGE๋‚˜ ๋‹ค์šด์ŠคํŠธ๋ฆผ ์ž‘์—…์˜ ์ •ํ™•๋„์™€ ๊ฐ™์€ ํ‘œ์ค€ ์ง€ํ‘œ๋ฅผ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ์•„ํ‚คํ…์ฒ˜ ์„ ํƒ์ด ์ตœ์ข… ์„ฑ๋Šฅ ํ–ฅ์ƒ์œผ๋กœ ์ด์–ด์ง€๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  5. ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰: ํŠนํžˆ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ์ค‘์š”ํ•˜๋ฉฐ, ์„ ํƒํ•œ ๊ตฌ์„ฑ์ด ์žฅ์น˜ ๋ฉ”๋ชจ๋ฆฌ ์ œ์•ฝ ๋‚ด์— ๋งž๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

3.5. ์˜ตํ‹ฐ๋งˆ์ด์ € ๋ฐ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ

MoE ํ›ˆ๋ จ์„ ์œ„ํ•œ ์ตœ์ ์˜ ์˜ตํ‹ฐ๋งˆ์ด์ € ์„ค์ •๊ณผ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์กฐํ•ฉ์„ ์ฐพ๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฒฝํ—˜์ ์ธ ๊ณผ์ •์ด๋งŒ, ์•„๋ž˜์˜ ๋ฒ ์ด์Šค๋ผ์ธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด๋ณด๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

  1. ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ: ํ‘œ์ค€ AdamW ์„ค์ •ฮฒ1=0.9,ฮฒ2=0.999\beta_1=0.9, \beta_2=0.999, ์ž˜ ์•Œ๋ ค์ง„ ํ•™์Šต๋ฅ  ์Šค์ผ€์ค„(warmup + decay), ๊ทธ๋ฆฌ๊ณ  ์ ๋‹นํ•œ ๊ฐ€์ค‘์น˜ decay(์˜ˆ: 0.01 ๋˜๋Š” 0.1)๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์„ธ์š”.

  2. ํ•™์Šต๋ฅ learning rate๊ณผ ๋ณด์กฐ ์†์‹ค ๊ณ„์ˆ˜๋ฅผ ํ•จ๊ป˜ ์กฐ์ •ํ•˜๊ธฐ: ํ•™์Šต๋ฅ ๊ณผ ๋ณด์กฐ ์†์‹ค ๊ณ„์ˆ˜ ฮฑ\alpha๋Š” ๋ณดํ†ต ๊ฐ€์žฅ ๋ฏผ๊ฐํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ์ž…๋‹ˆ๋‹ค. ๋‘ ๊ฐ’์„ ํ•จ๊ป˜ ๋ณ€ํ™”์‹œํ‚ค๋ฉด์„œ ์ž‘์—… ์†์‹ค๊ณผ ๋ถ€ํ•˜ ๊ท ํ˜• ์ง€ํ‘œ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ์‹คํ—˜์„ ์ˆ˜ํ–‰ํ•˜์„ธ์š”.

  3. Gradient Clipping: ๊ทธ๋ž˜๋””์–ธํŠธ ํญ์ฃผexploding gradients๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด gradient norm clipping์„ ์•ˆ์ „์žฅ์น˜๋กœ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

  4. Longer Warmup: ์ดˆ๊ธฐ ์•ˆ์ •์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋ฉด warmup ๋‹จ๊ณ„๋ฅผ ์—ฐ์žฅํ•ด ๋ณด์„ธ์š”.

References

Last updated

Was this helpful?