[๊ฐœ๋…] GLU์™€ ๊ทธ ๋ณ€ํ˜•๋“ค: ์—ญ์‚ฌ์™€ ์ฃผ์š” ๊ฐœ๋… ์ •๋ฆฌ

Posted by Euisuk's Dev Log on October 14, 2024

[๊ฐœ๋…] GLU์™€ ๊ทธ ๋ณ€ํ˜•๋“ค: ์—ญ์‚ฌ์™€ ์ฃผ์š” ๊ฐœ๋… ์ •๋ฆฌ

์›๋ณธ ๊ฒŒ์‹œ๊ธ€: https://velog.io/@euisuk-chung/๊ฐœ๋…-GLU์™€-๊ทธ-๋ณ€ํ˜•๋“ค-์—ญ์‚ฌ์™€-์ฃผ์š”-๊ฐœ๋…-์ •๋ฆฌ

๋”ฅ๋Ÿฌ๋‹ ๋ถ„์•ผ์—์„œ ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋Š” ์‹ ๊ฒฝ๋ง ๋ชจ๋ธ์ด ํ•™์Šตํ•  ๋•Œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ค‘์—์„œ๋„ GLU(Gated Linear Unit)๋Š” ๊ณ ๊ธ‰ ๋ชจ๋ธ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํ™œ์„ฑํ™” ํ•จ์ˆ˜ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

ํŠนํžˆ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ(NLP)์™€ ๊ฐ™์€ ๋ถ„์•ผ์—์„œ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•˜๋ฉฐ, ์ด ํ™œ์„ฑํ™” ํ•จ์ˆ˜์—์„œ ํŒŒ์ƒ๋œ ์—ฌ๋Ÿฌ ๋ณ€ํ˜•๋“ค์ด ์—ฐ๊ตฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” GLU์™€ ๊ทธ ๋ณ€ํ˜•๋“ค, ๊ทธ๋ฆฌ๊ณ  ๊ฐ ๋ณ€ํ˜•์˜ ๋ฐœ์ „ ๊ณผ์ •์„ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ๊ทธ ๊ฐœ๋…๊ณผ ์ค‘์š”์„ฑ์„ ์„ค๋ช…ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“‹ (์ฐธ๊ณ ) GLU Variants Improve Transformer

โœ” ์ด๋ฒˆ ํฌ์ŠคํŒ…์„ ์“ฐ๋ฉด์„œ ์ฐธ๊ณ ํ•œ ๋…ผ๋ฌธ์ธ๋ฐ, Transformer ๋ชจ๋ธ์—์„œ Gated Linear Units (GLU) ๋ฐ Variants์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ ๋…ผ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • ์•„๋ž˜๋Š” ๋งํฌ ๋ฐ ์ฃผ์š” ๋‚ด์šฉ ์š”์•ฝ์ž…๋‹ˆ๋‹ค. ๐Ÿ˜Ž
  • Transformer ๋ชจ๋ธ์€ ์‹œํ€€์Šค-ํˆฌ-์‹œํ€€์Šค ๋ณ€ํ™˜ ์ž‘์—…์— ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋ธ๋กœ, ๋‹ค์ค‘ ํ—ค๋“œ ์ฃผ์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ์œ„์น˜๋ณ„ ํ”ผ๋“œํฌ์›Œ๋“œ ๋„คํŠธ์›Œํฌ(FFN)๋ฅผ ๊ต๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • FFN์€ ์ž…๋ ฅ ๋ฒกํ„ฐ๋ฅผ ๋‘ ๊ฐœ์˜ ์„ ํ˜• ๋ณ€ํ™˜์„ ๊ฑฐ์ณ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ์ค‘๊ฐ„์— ReLU ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ์กด์˜ FFN ๊ตฌ์กฐ์—์„œ๋Š” ReLU ์™ธ์—๋„ ๋‹ค๋ฅธ ํ™œ์„ฑํ™” ํ•จ์ˆ˜(GELU, Swish ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๋…ผ๋ฌธ์—์„œ๋Š” GLU ๋ฐ ๊ทธ ๋ณ€ํ˜•์„ FFN์— ์ ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

  • ์ €์ž๋“ค์€ ๋‹ค์–‘ํ•œ GLU ๋ณ€ํ˜•์„ Transformer ๊ธฐ๋ฐ˜์˜ Text-to-Text Transfer Transformer(T5) ๋ชจ๋ธ์— ์ ์šฉํ•˜์—ฌ ์‹คํ—˜์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์ด๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด FFN ๋ณ€ํ˜•๋“ค์ด ๊ธฐ์กด FFN ๊ตฌ์กฐ์— ๋น„ํ•ด ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ๋ณด์ธ๋‹ค๋Š” ๊ฒƒ์„ ์ž…์ฆํ–ˆ์Šต๋‹ˆ๋‹ค.

(์ฐธ๊ณ ) Activation Functions

Sigmoid

  • ์†Œ๊ฐœ ์‹œ๊ธฐ: 1960๋…„๋Œ€
  • ์ˆ˜ํ•™์  ์ •์˜: ฯƒ(x)=11+eโˆ’x\sigma(x) = \frac{1}{1 + e^{-x}}ฯƒ(x)=1+eโˆ’x1โ€‹
  • ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ: ์‹ ๊ฒฝ๋ง์˜ ์ดˆ๊ธฐ ๋ชจ๋ธ์—์„œ ์‚ฌ์šฉ๋˜์—ˆ์œผ๋ฉฐ, ์ถœ๋ ฅ์„ 0๊ณผ 1 ์‚ฌ์ด๋กœ ์ œํ•œํ•˜์—ฌ ํ™•๋ฅ ๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

Tanh (Hyperbolic Tangent)

  • ์†Œ๊ฐœ ์‹œ๊ธฐ: 1990๋…„๋Œ€
  • ์ˆ˜ํ•™์  ์ •์˜: tanhโก(x)=exโˆ’eโˆ’xex+eโˆ’x\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}tanh(x)=ex+eโˆ’xexโˆ’eโˆ’xโ€‹
  • ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ: Sigmoid์˜ ๋Œ€์•ˆ์œผ๋กœ ์ œ์•ˆ๋˜์—ˆ์œผ๋ฉฐ, ์ถœ๋ ฅ ๋ฒ”์œ„๊ฐ€ -1์—์„œ 1 ์‚ฌ์ด๋กœ ์ค‘์‹ฌ์ด 0์ด๋ผ๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ReLU (Rectified Linear Unit)

  • ์†Œ๊ฐœ ์‹œ๊ธฐ: 2010๋…„
  • ์ˆ˜ํ•™์  ์ •์˜: f(x)=maxโก(0,x)f(x) = \max(0, x)f(x)=max(0,x)๋“ฑ์žฅ ๋ฐฐ๊ฒฝ: ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๊ณ„์‚ฐ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Leaky ReLU

  • ์†Œ๊ฐœ ์‹œ๊ธฐ: 2013๋…„
  • ์ˆ˜ํ•™์  ์ •์˜: f(x)=maxโก(0.01x,x)f(x) = \max(0.01x, x)f(x)=max(0.01x,x)
  • ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ: ReLU์˜ โ€œ์ฃฝ์€ ๋‰ด๋Ÿฐโ€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Maxout

  • ์†Œ๊ฐœ ์‹œ๊ธฐ: 2013๋…„
  • ์ˆ˜ํ•™์  ์ •์˜: f(x)=maxโก(w1Tx+b1,w2Tx+b2)f(x) = \max(w_1^Tx + b_1, w_2^Tx + b_2)f(x)=max(w1Tโ€‹x+b1โ€‹,w2Tโ€‹x+b2โ€‹)
  • ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ: ReLU์˜ ์ผ๋ฐ˜ํ™”๋œ ํ˜•ํƒœ๋กœ, ๋” ๊ฐ•๋ ฅํ•œ ํŠน์ง• ํ•™์Šต์„ ์œ„ํ•ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ELU (Exponential Linear Unit)

  • ์†Œ๊ฐœ ์‹œ๊ธฐ: 2015๋…„
  • ์ˆ˜ํ•™์  ์ •์˜: f(x)={xifย x>0ฮฑ(exโˆ’1)ifย xโ‰ค0f(x) = \begin{cases} x & \text{if } x > 0 \ \alpha(e^x - 1) & \text{if } x \leq 0 \end{cases}f(x)={xฮฑ(exโˆ’1)โ€‹ifย x>0ifย xโ‰ค0โ€‹
  • ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ: ReLU์˜ ์žฅ์ ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์Œ์ˆ˜ ์ž…๋ ฅ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

GELU (Gaussian Error Linear Unit)

  • ์†Œ๊ฐœ ์‹œ๊ธฐ: 2016๋…„
  • ์ˆ˜ํ•™์  ์ •์˜: GELU(x)=xโ‹…ฮฆ(x)\text{GELU}(x) = x \cdot \Phi(x)GELU(x)=xโ‹…ฮฆ(x)
    • ์—ฌ๊ธฐ์„œ ฮฆ(x)\Phi(x)ฮฆ(x)๋Š” ํ‘œ์ค€ ์ •๊ทœ ๋ถ„ํฌ์˜ ๋ˆ„์  ๋ถ„ํฌ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ: ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ ํƒœ์Šคํฌ์—์„œ ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ณด์ด๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Mish

  • ์†Œ๊ฐœ ์‹œ๊ธฐ: 2019๋…„
  • ์ˆ˜ํ•™์  ์ •์˜: f(x)=xโ‹…tanhโก(lnโก(1+ex))f(x) = x \cdot \tanh(\ln(1 + e^x))f(x)=xโ‹…tanh(ln(1+ex))
  • ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ: ์ž๊ธฐ ์ •๊ทœํ™” ํŠน์„ฑ๊ณผ ๋ถ€๋“œ๋Ÿฌ์šด ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ฐ€์ง€๋ฉด์„œ ReLU์˜ ์žฅ์ ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Swish

  • ์†Œ๊ฐœ ์‹œ๊ธฐ: 2017๋…„
  • ์ˆ˜ํ•™์  ์ •์˜: f(x)=xโ‹…ฯƒ(ฮฒx)f(x) = x \cdot \sigma(\beta x)f(x)=xโ‹…ฯƒ(ฮฒx)
    • ์—ฌ๊ธฐ์„œ ฯƒ\sigmaฯƒ๋Š” ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜์ด๊ณ , ฮฒ\betaฮฒ๋Š” ํ•™์Šต ๊ฐ€๋Šฅํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ์ž…๋‹ˆ๋‹ค.
  • ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ: ์‹ ๊ฒฝ ์•„ํ‚คํ…์ฒ˜ ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ๋ฐœ๊ฒฌ๋˜์—ˆ์œผ๋ฉฐ, ๋‹ค์–‘ํ•œ ํƒœ์Šคํฌ์—์„œ ReLU๋ณด๋‹ค ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ณด์ž…๋‹ˆ๋‹ค.

GLU์™€ ๊ทธ ๋ณ€ํ˜•๋“ค์˜ ๋ฐœ์ „ ์ˆœ์„œ

1. GLU (Gated Linear Unit)

GLU๋Š” 2016๋…„ Dauphin ๋“ฑ์ด โ€œLanguage Modeling with Gated Convolutional Networksโ€ ๋…ผ๋ฌธ์—์„œ ์ฒ˜์Œ ์†Œ๊ฐœํ•œ ํ™œ์„ฑํ™” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. GLU๋Š” ์‹ ๊ฒฝ๋ง์˜ ํ•™์Šต ๊ณผ์ •์—์„œ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์ค‘์š”๋„๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒŒ์ดํŒ…(Gating) ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋„์ž…ํ•˜์—ฌ, ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋Š” ์ฐจ๋‹จํ•˜๊ณ  ์ค‘์š”ํ•œ ์ •๋ณด๋งŒ์„ ๋‹ค์Œ ๋ ˆ์ด์–ด๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ํฌ๊ฒŒ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ˆ˜ํ•™์ ์œผ๋กœ GLU๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค:

GLU(x,W,V,b,c)=(xW+b)โŠ—ฯƒ(xV+c)GLU(x, W, V, b, c) = (xW + b) \otimes \sigma(xV + c)GLU(x,W,V,b,c)=(xW+b)โŠ—ฯƒ(xV+c)

์—ฌ๊ธฐ์„œ:

  • x๋Š” ์ž…๋ ฅ ๋ฒกํ„ฐ,
  • W, V๋Š” ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ,
  • b, c๋Š” ํŽธํ–ฅ ๋ฒกํ„ฐ,
  • ฯƒ\sigmaฯƒ๋Š” ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜๋กœ, ๋น„์„ ํ˜• ํ™œ์„ฑํ™” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
    • ํ™œ์„ฑํ™” ํ•จ์ˆ˜(์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ๊ทธ๋ชจ์ด๋“œ ฯƒ\sigmaฯƒ)๋ฅผ ์ ์šฉํ•˜์—ฌ ์ถœ๋ ฅํ•  ์ •๋ณด์˜ ์–‘์„ ์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค.
  • โŠ—\otimesโŠ—๋Š” ์š”์†Œ๋ณ„ ๊ณฑ์…ˆ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์œ„ ๋…ผ๋ฌธ Gated Convolutional Networks์—์„œ๋Š” Gating ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ๊ฐ€ ๋‹ค์Œ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์„ ํƒํ•˜๋„๋ก ๋„์™€์ฃผ๋ฉฐ, ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ •๋ณด๋ฅผ ์ „ํŒŒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋„คํŠธ์›Œํฌ๋Š” ์–ด๋–ค ๋‹จ์–ด ๋˜๋Š” ํŠน์„ฑ์ด ๋‹ค์Œ ๋‹จ์–ด ์˜ˆ์ธก์— ์ค‘์š”ํ•œ์ง€๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Gating ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์ „ํ†ต์ ์ธ ๋น„์„ ํ˜• ํ™œ์„ฑํ™” ํ•จ์ˆ˜(activation function) ๋Œ€์‹ ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์˜ˆ๋ฅผ ๋“ค์–ด, Gated Linear Units(GLU)๋Š” ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์˜ ๊ด€๊ณ„๋ฅผ ์ œ์–ดํ•˜๋Š” ๊ฒŒ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ณด ํ๋ฆ„์„ ๋” ์ž˜ ์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž…๋ ฅ์ด ๊ฒŒ์ดํŠธ์™€ ๊ฒฐํ•ฉ๋˜์–ด ๋น„์„ ํ˜•์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ์ •๋ณด๊ฐ€ ๋ณด๋‹ค ์›ํ™œํ•˜๊ฒŒ ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • GLU๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํ˜• ๋ณ€ํ™˜ํ•œ ํ›„, ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฒŒ์ดํŠธ๋ฅผ ์กฐ์ ˆํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์„ ํƒ์ ์œผ๋กœ ํ†ต๊ณผ์‹œํ‚ต๋‹ˆ๋‹ค.

    • ์ด ๋ฐฉ์‹์€ ์„ ํ˜•์„ฑ๊ณผ ๋น„์„ ํ˜•์„ฑ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋” ๊ฐ•๋ ฅํ•œ ํ‘œํ˜„๋ ฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์˜ ํ•™์Šต ๊ณผ์ •์—์„œ ์ค‘์š”ํ•œ ์ •๋ณด๋งŒ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค๋‹ˆ๋‹ค.

2. Bilinear GLU

GLU์™€ ํ•จ๊ป˜ ์ฒ˜์Œ ๋…ผ๋ฌธ์—์„œ ์†Œ๊ฐœ๋œ ๋ณ€ํ˜•์œผ๋กœ, Bilinear GLU๋Š” ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋” ๋‹จ์ˆœํ•œ ํ˜•ํƒœ๋กœ ๋ฐœ์ „๋œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

Bilinear GLU๋Š” ์„ ํ˜• ๋ณ€ํ™˜๋งŒ์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ˆ˜ํ•™์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค:

Bilinearย GLU(x,W1,W2,b1,b2)=(xW1+b1)โŠ—(xW2+b2)Bilinear\ GLU(x, W_1, W_2, b_1, b_2) = (xW_1 + b_1) \otimes (xW_2 + b_2)Bilinearย GLU(x,W1โ€‹,W2โ€‹,b1โ€‹,b2โ€‹)=(xW1โ€‹+b1โ€‹)โŠ—(xW2โ€‹+b2โ€‹)

์—ฌ๊ธฐ์„œ โŠ—\otimesโŠ—๋Š” ์š”์†Œ๋ณ„ ๊ณฑ(element-wise product)์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Bilinear GLU๋Š” ๋‘ ๊ฐœ์˜ ์„ ํ˜• ๋ณ€ํ™˜์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์—์„œ ๊ฐ๊ฐ์˜ ๊ฒŒ์ดํŠธ๋ฅผ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์กฐ์ ˆํ•˜๊ธฐ ์œ„ํ•ด ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • Bilinear GLU์˜ ๊ฒฝ์šฐ, ์‹œ๊ทธ๋ชจ์ด๋“œ๊ฐ€ ์—†๋”๋ผ๋„ ๊ดœ์ฐฎ์€ ์ด์œ ๋Š”, ๋น„์„ ํ˜•์„ฑ์„ Bilinear ๋ฐฉ์‹์œผ๋กœ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ์ฆ‰, Bilinear GLU๋Š” ๋‘ ์ž…๋ ฅ ๋ฒกํ„ฐ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ(์ฆ‰, bilinear transformation)์„ ํ†ตํ•ด ํ•„์š”ํ•œ ๋น„์„ ํ˜•์„ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋ชจ๋ธ์€ ๋‹ค์–‘ํ•œ ์ž…๋ ฅ์— ๋Œ€ํ•œ ๋ณต์žกํ•œ ์˜์กด ๊ด€๊ณ„๋ฅผ ๋ชจ๋ธ๋งํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Bilinear GLU์—์„œ ๋น„์„ ํ˜•์„ฑ์„ ํ™•๋ณดํ•˜๋Š” ๋ฐฉ์‹

  • ๋‹ค์–‘ํ•œ ์„ ํ˜• ๋ณ€ํ™˜: Bilinear GLU์—์„œ๋Š” ์ž…๋ ฅ ๋ฒกํ„ฐ XXX๋ฅผ ๋‘ ๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์„ ํ˜• ๋ณ€ํ™˜์„ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ณ€ํ™˜์ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ์„ ์‚ฌ์šฉํ•˜์—ฌ XXX์˜ ์ •๋ณด๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•จ์œผ๋กœ์จ, ์ž…๋ ฅ์˜ ๋‹ค์–‘ํ•œ ํŠน์„ฑ์ด๋‚˜ ํŒจํ„ด์„ ๋ณด๋‹ค ์ž์„ธํ•˜๊ฒŒ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์š”์†Œ๋ณ„ ๊ณฑ์„ ํ†ตํ•œ ์ƒํ˜ธ์ž‘์šฉ: ๋‘ ์„ ํ˜• ๋ณ€ํ™˜ ๊ฒฐ๊ณผ๋ฅผ ์š”์†Œ๋ณ„ ๊ณฑ์œผ๋กœ ๊ฒฐํ•ฉํ•˜๋ฉด์„œ, ๊ฐ ์š”์†Œ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์ •ํ™•ํ•˜๊ฒŒ ๋ชจ๋ธ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์กฐํ•ฉ์€ ๋‹จ์ˆœํ•œ ์„ ํ˜• ๊ฒฐํ•ฉ ์ด์ƒ์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๋ณต์žกํ•œ ๊ด€๊ณ„๋ฅผ ํฌ์ฐฉํ•˜๋Š” ๋ฐ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค.
  • ์ฐจ์› ํ™•์žฅ์œผ๋กœ ์ธํ•œ ํ‘œํ˜„๋ ฅ ์ฆ๊ฐ€: ๋‘ ์„ ํ˜• ๋ณ€ํ™˜๊ณผ ์š”์†Œ๋ณ„ ๊ณฑ์ด ๊ฒฐํ•ฉ๋จ์œผ๋กœ์จ, ๋ชจ๋ธ์ด ํ•™์Šตํ•˜๋Š” ์ •๋ณด์˜ ๊ณต๊ฐ„์ด ํ™•์žฅ๋˜์–ด ๋” ๋งŽ์€ ํ‘œํ˜„๋ ฅ์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋ธ์ด ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ๋‹ค์–‘ํ•œ ํŠน์„ฑ์„ ํฌ์ฐฉํ•˜๊ณ , ๋”์šฑ ๋ณต์žกํ•œ ํ•จ์ˆ˜๋“ค์„ ๊ทผ์‚ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ, Bilinear GLU๋Š” ์ฐจ์›์„ ํ™•์žฅํ•˜๊ณ  ์ž…๋ ฅ์˜ ๋‹ค์–‘ํ•œ ์ƒํ˜ธ์ž‘์šฉ์„ ๋ชจ๋ธ๋งํ•จ์œผ๋กœ์จ ๋น„์„ ํ˜•์„ฑ์„ ํ™•๋ณดํ•˜๊ณ , ๋ณด๋‹ค ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ํŒจํ„ด์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ReGLU (ReLU-Gated Linear Unit)

ReGLU๋Š” 2020๋…„ Shazeer์˜ โ€œGLU Variants Improve Transformerโ€ ๋…ผ๋ฌธ์—์„œ ์†Œ๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. GLU์˜ ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜๋ฅผ ReLU๋กœ ๋Œ€์ฒดํ•œ ๋ณ€ํ˜•์ž…๋‹ˆ๋‹ค.

  • ReLU๋Š” ์ž…๋ ฅ์ด ์–‘์ˆ˜์ผ ๋•Œ๋Š” ๊ทธ๋Œ€๋กœ ํ†ต๊ณผ์‹œํ‚ค๊ณ , ์Œ์ˆ˜์ผ ๋•Œ๋Š” 0์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฐ„๋‹จํ•œ ๋น„์„ ํ˜• ํ™œ์„ฑํ™” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. (์œ„ Activiation Function ์ฐธ๊ณ )

์ˆ˜์‹์œผ๋กœ ReGLU๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

ReGLU(x,W,V,b,c)=(xW+b)โŠ—ReLU(xV+c)ReGLU(x, W, V, b, c) = (xW + b) \otimes ReLU(xV + c)ReGLU(x,W,V,b,c)=(xW+b)โŠ—ReLU(xV+c)

ReLU๋Š” ๊ณ„์‚ฐ์ด ๊ฐ„๋‹จํ•˜๋ฉด์„œ๋„ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๋ฅผ ์ž˜ ํ•ด๊ฒฐํ•˜๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ReGLU๋Š” ์ด๋Ÿฌํ•œ ReLU์˜ ์žฅ์ ์„ ์ด์šฉํ•˜์—ฌ ๋” ๋น ๋ฅธ ํ•™์Šต๊ณผ ๊ณ„์‚ฐ ํšจ์œจ์„ฑ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

4. GEGLU (GELU-Gated Linear Unit)

GEGLU ์—ญ์‹œ Shazeer์˜ 2020๋…„ ๋…ผ๋ฌธ์—์„œ ์†Œ๊ฐœ๋œ ๋ณ€ํ˜•์ž…๋‹ˆ๋‹ค. GLU์˜ ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜๋ฅผ GELU(Gaussian Error Linear Unit)๋กœ ๋Œ€์ฒดํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  • GELU๋Š” ์ž…๋ ฅ๊ฐ’์„ Gaussian ๋ถ„ํฌ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋กœ, ๋” ์ž์—ฐ์Šค๋Ÿฌ์šด ๋น„์„ ํ˜•์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. (์œ„ Activiation Function ์ฐธ๊ณ )

GEGLU๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค:

GEGLU(x,W,V,b,c)=(xW+b)โŠ—GELU(xV+c)GEGLU(x, W, V, b, c) = (xW + b) \otimes GELU(xV + c)GEGLU(x,W,V,b,c)=(xW+b)โŠ—GELU(xV+c)

GELU๋Š” ํŠนํžˆ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ์™€ ๊ฐ™์€ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ์—์„œ ๋ชจ๋ธ์ด ๋” ๋ถ€๋“œ๋Ÿฝ๊ณ  ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ๋ฐ ํฐ ์—ญํ• ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

5. SwiGLU (Swish-Gated Linear Unit)

SwiGLU๋Š” Swish ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•œ GLU์˜ ๋ณ€ํ˜•์ž…๋‹ˆ๋‹ค. ์ด ๋˜ํ•œ 2020๋…„ Shazeer์˜ ๋…ผ๋ฌธ์—์„œ ์†Œ๊ฐœ๋˜์—ˆ์œผ๋ฉฐ, ์ดํ›„ 2022๋…„ Google์˜ โ€œPaLM(Pathways Language Model)โ€์—์„œ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ์— ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • Swish ํ•จ์ˆ˜๋Š” Swish(x)=xโ‹…ฯƒ(ฮฒx)Swish(x) = x \cdot \sigma(\beta x)Swish(x)=xโ‹…ฯƒ(ฮฒx)๋กœ ์ •์˜๋˜๋ฉฐ, ์—ฌ๊ธฐ์„œ ฮฒ\betaฮฒ๋Š” ํ•™์Šต ๊ฐ€๋Šฅํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ์ž…๋‹ˆ๋‹ค. (์œ„ Activiation Function ์ฐธ๊ณ )

์ˆ˜ํ•™์ ์œผ๋กœ SwiGLU๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

SwiGLU(x,W,V,b,c)=(xW+b)โŠ—Swish(xV+c)SwiGLU(x, W, V, b, c) = (xW + b) \otimes Swish(xV + c)SwiGLU(x,W,V,b,c)=(xW+b)โŠ—Swish(xV+c)

SwiGLU์˜ ํŠน์ง•์€ Swish ํ•จ์ˆ˜์˜ ๋ถ€๋“œ๋Ÿฌ์šด ๊ธฐ์šธ๊ธฐ๋ฅผ ํ†ตํ•ด ํ•™์Šต ๊ณผ์ •์ด ๋”์šฑ ์›ํ™œํ•˜๊ณ  ์•ˆ์ •์ ์ด๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ, PaLM๊ณผ ๊ฐ™์€ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ์—์„œ ๋งค์šฐ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ–ˆ์œผ๋ฉฐ, ์ด๋Š” ์‹ค์ œ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ํ•™์Šต์—์„œ๋„ ์œ ์šฉํ•จ์„ ์ž…์ฆํ–ˆ์Šต๋‹ˆ๋‹ค.

GLU์™€ ๊ทธ ๋ณ€ํ˜•๋“ค์˜ ์„ฑ๋Šฅ ๋น„๊ต ๋ฐ ์ค‘์š”์„ฑ

GLU์™€ ๊ทธ ๋ณ€ํ˜•๋“ค์€ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์ƒํ™ฉ์—์„œ ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ๋ณด์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, 2020๋…„ Shazeer์˜ ๋…ผ๋ฌธ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ณ€ํ˜•๋“ค์ด Transformer ๊ตฌ์กฐ์—์„œ ์–ด๋–ป๊ฒŒ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋Š”์ง€ ๋น„๊ตํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด ์—ฐ๊ตฌ์—์„œ๋Š” GEGLU์™€ SwiGLU๊ฐ€ ๋‹ค๋ฅธ ๋ณ€ํ˜•๋“ค๋ณด๋‹ค ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ณด์˜€๋‹ค๊ณ  ๋ณด๊ณ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

์ •๋ฆฌ

GLU์—์„œ ์ถœ๋ฐœํ•˜์—ฌ Bilinear GLU, ReGLU, GEGLU, ๊ทธ๋ฆฌ๊ณ  SwiGLU๊นŒ์ง€ ์ด์–ด์ง€๋Š” ๋ฐœ์ „ ๊ณผ์ •์€ ํ™œ์„ฑํ™” ํ•จ์ˆ˜์˜ ์„ฑ๋Šฅ์„ ์ง€์†์ ์œผ๋กœ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋”ฅ๋Ÿฌ๋‹ ์—ฐ๊ตฌ์˜ ํŠน์„ฑ์„ ์ž˜ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ฐ ๋ณ€ํ˜•์€ ์ด์ „ ๋ฒ„์ „์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ์•„์ด๋””์–ด๋ฅผ ๋„์ž…ํ•˜์—ฌ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถ”์—ˆ์Šต๋‹ˆ๋‹ค.

  • GLU: ์„ ํ˜•์„ฑ๊ณผ ๋น„์„ ํ˜•์„ฑ์„ ๊ฒฐํ•ฉํ•œ ๊ฒŒ์ดํŒ… ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ์‹œ์ž‘.
  • Bilinear GLU: ๋” ๋‹จ์ˆœํ•œ ๊ณ„์‚ฐ์„ ์œ„ํ•œ ์‹œ๊ทธ๋ชจ์ด๋“œ ์ œ๊ฑฐ ๋ฒ„์ „.
  • ReGLU: ์‹œ๊ทธ๋ชจ์ด๋“œ ๋Œ€์‹  ReLU๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์‚ฐ ํšจ์œจ์„ฑ์„ ๋†’์ž„.
  • GEGLU: ๋” ๋ถ€๋“œ๋Ÿฌ์šด ๊ธฐ์šธ๊ธฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” GELU ๋„์ž….
  • SwiGLU: Swish ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋Œ€๊ทœ๋ชจ ๋ชจ๋ธ์—์„œ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜.

์ด์™€ ๊ฐ™์€ ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋“ค์€ ์˜ค๋Š˜๋‚  ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ, ํŠนํžˆ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ(NLP)์™€ ๊ฐ™์€ ๋ถ„์•ผ์—์„œ ์ค‘์š”ํ•œ ๋„๊ตฌ๋กœ ์ž๋ฆฌ ์žก๊ณ  ์žˆ์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ์˜ ๋ณต์žกํ•œ ํŒจํ„ด์„ ํ•™์Šตํ•˜๊ณ  ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ๋ฐ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.



-->