Transformers 아키텍처에서 자주 사용되는 SwiGLU
activation function 은 어떤 함수일까? 이를 이해하기 위해 Swish, GLU, SwiGLU 를 차례대로 이해할 필요가 있다. 결론만 먼저 얘기하면 아래와 같다.
📌 Summary
Swish
: β 값에 따라 다른 특성을 가질 수 있는 activation function 의 한 종류이다.GLU
: Component-wise product of two linear transformations of inputSwiGLU
: Swish 를 non-linear function 으로 사용하고, GLU 를 적용한 activation function 이다.
1. Swish
1.1 Swish 의 특징
- Searching for Activation Functions (2017, Google Brain)
Swish(x)=x⋅σ(βx)
- beta 는 상수 혹은 학습 가능한 파라미터이고 beta 의 값에 따라,
- β=1 일 때, Sigmoid-weighted Linear Unit (
SiLU
) 로 동작한다. - β=0 일 때, σ(0)=0.5 가 되어 scaled linear function 이 된다. (x/2)
- β=inf 일 때, σ 가 0-1 function 처럼 되어
ReLU
와 유사해진다.
- β=1 일 때, Sigmoid-weighted Linear Unit (
- 즉, β 가 학습 파라미터라면 linear function 과 ReLU 간의 nonlinearly interpolate 하는 smooth function 으로 볼 수 있고, 모델 학습에 의해 결정된다.
1.2 Swish 의 실험 결과
- Swish 특징에 의해, 다양한 모델에 대하여 ReLU 보다 성능이 좋다. 그 외 성질로는 0 보다 큰 값에 대하여 unbound 하고, 0 보다 작은 값에 대하여 bounded 하다. (그러나 ReLU 와 달리 작은 음수값에 대하여 허용하고 있다.)
- 또한 Non-monotonicity (Non-단조함수) 성질을 가지고 있는데, 이는 일반적인 activation function 과 구분되는 특징이다. 특히, 아래 이미지를 보면 preactivation 분포에서 상당수의 값이
bump
영역 (−5<x<0) 에 빠지게 되므로 ReLU 와 달리 이 값을 허용하는 것이 중요하다. - 다양한 모델에 대하여 다른 activation 보다 성능이 우수하다. (ImageNet, ResNet, MobileNet, MT-Transformer 등)
2. SwiGLU
- GLU Variants Improve Transformer (2020, Google): 다양한 activation 에 GLU 를 적용하였을 때, Transformer 의 성능을 향상시킨다는 논문이다.
- MetaAI 에서 공개한 Open LLM 모델인 LLaMA1, LLaMA2 은 모두 SwiGLU 를 채택하고 있다.
2.1 GLU
- GLU(Gated Linear Units) 는 component-wise product of two linear transformations of input 으로, non-linear function 으로 σ(x) 사용한다.
GLU(x,W,V,b,c)=σ(xW+b)⊗(xV+c)
2.2 SwiGLU 의 실험 결과
- SwiGLU 는 GLU 의 non-linear function 으로 σ(x) 대신 Swish(x) 를 사용하는 형태이다.
SwiGLU(x,W,V,b,c,β)=Swishβ(xW+b)⊗(xV+c)
- 논문에서는 T5 architecture 의 FFN layer 에 다양한 GLU 를 적용하여 실험 진행하였다. Pre-training & log-perplexity 결과와 Fine-tuning 실험 결과 (
GLUE
) 는 각각 아래와 같다.
FFNSwiGLU(x,W,V,W2)=(Swish1(xW)⊗xV)W2


2.3 SwiGLU 실험 결론
- Transformer architecture 에 다양한 activation 형태의 GLU 를 적용하여 실험하였고, 그 결과
SwiGLU
가 괜찮은 성능을 보였다.
'AI' 카테고리의 다른 글
[AI] RAGAS 공식 문서(docs) 파악하기 (2) | 2024.11.10 |
---|---|
[AI] Mixed Precision Training 이란? (3) | 2024.11.01 |
[AI] Anthropic의 Contextual Retrieval (0) | 2024.10.05 |
[AI] LLM 의 발현 능력 (Emergent Ability of LLMs) (3) | 2024.10.02 |
[AI] BM25 분석하기 (0) | 2024.10.02 |