AI VIDEO BRIEFING
SwiGLU란? 최신 LLM이 GELU·ReLU 대신 쓰는 게이팅 활성화 함수 원리
팜(PaLM)과 라마(Llama) 같은 최신 LLM은 피드포워드 블록에서 GELU·ReLU 대신 SwiGLU를 쓴다. 게이트와 값 경로로 입력을 나눠 특징을 선택적으로 통과시키고, 너비를 8/3로 줄여 같은 연산량으로 더 낮은 손실을 얻는다. 원리와 구현, 함정을 정리했다.

핵심 메시지
쉽게 이해하기
SwiGLU는 '같은 연산량, 더 낮은 손실'을 내세우는 활성화 방식이다. GELU와 비교하면 연산량(FLOPs)은 거의 같은데 손실은 눈에 띄게 낮아진다. 이는 이론에 그치지 않고, PaLM과 Llama가 모두 SwiGLU로 표준화한 이유다. 비슷한 연산 비용에서 더 좋은 perplexity를 제공하기 때문이다.
활성화 함수는 어텐션 층 사이에 놓인 피드포워드 신경망(FFN) 블록에서 작동한다. 오랫동안 이 자리의 기본값은 GELU였다. ReLU는 음수를 모두 죽이고 GELU는 그것을 부드럽게 다듬지만, 둘 다 단조 함수라 입력마다 같은 방식으로 변환할 뿐 특징을 선택적으로 통과시키는 '게이팅' 능력이 없다.
GLU 계열은 입력을 게이트와 값이라는 두 경로로 나눠 이 한계를 해결한다. 입력 벡터를 두 벡터로 투영한 뒤 게이트에는 시그모이드 같은 함수를 적용하고 값과 원소별로 곱한다. 그러면 신경망이 특징별로 채널을 열거나 닫을 수 있어 표현력이 좋아지고, FFN이 정보를 동적으로 라우팅하게 된다.
SwiGLU는 그중 최신 LLM이 선호하는 변형이다. 수식은 SiLU(x·W1)을 x·W2와 원소별로 곱하는 형태다. SiLU(스위시)는 x·시그모이드(x)로, 죽은 뉴런을 피하고 ReLU보다 매끄러운 기울기를 준다. 핵심 트릭은 너비 조정이다. GLU FFN은 보통 모델 차원의 4배 너비에 투영 2개를 쓰지만, SwiGLU는 투영이 3개이므로 너비를 8/3배로 줄인다. 3×8/3=8이 되어 원래 파라미터 수·연산량과 맞아떨어진다. 실제로 Llama는 모델 차원 4096에 FFN 너비를 약 11008로 두어 8/3 비율에 가깝게 맞춘다.
구현은 모델 차원으로부터 8/3 너비를 구하고, 그 두 배로 가는 단일 업-투영을 만든 뒤 결과를 둘로 쪼개 한쪽에 SiLU를 적용하고 다른 쪽과 곱한 다음 다시 모델 차원으로 투영하는 순서다. 흔한 실수도 짚는다. 너비를 4배로 두면 연산 예산이 터지므로 8/3을 지켜야 하고, 드롭아웃은 게이팅 곱 이후에 적용해야 하며, 게이트 편향을 0으로 무너뜨리지 않게 초기화에 주의해야 한다. 다만 만능은 아니어서 작은 모델이나 비언어 과제에서는 이득이 적고 학습률·초기화 튜닝이 필요하다.
주요 인사이트
- 게이팅 덕분에 신경망이 특징 채널을 동적으로 열고 닫아 표현력이 높아진다.
- SiLU(스위시)는 ReLU보다 매끄러운 기울기를 제공해 학습 안정성을 돕는다.
- 너비를 8/3로 줄이면 투영이 3개여도 파라미터와 연산량이 기존과 동일하게 유지된다.
- 구현 함정: 너비 4배 금지, 드롭아웃은 게이팅 곱 이후, 게이트 편향 초기화 주의.
- SwiGLU는 만능이 아니며 작은 모델·비언어 과제에서는 이득이 미미할 수 있다.
자주 묻는 질문
SwiGLU가 왜 GELU보다 좋은가?
게이팅으로 특징을 선택적으로 통과시켜 같은 연산량에서 더 낮은 손실(perplexity)을 달성하기 때문이다. PaLM·Llama가 이를 채택했다.
8/3 너비 트릭이란?
SwiGLU는 투영이 3개로 늘지만 FFN 너비를 모델 차원의 8/3배로 줄여 연산량과 파라미터 수를 기존 4배 너비 GLU와 동일하게 맞춘다.
구현 시 주의할 점은?
너비를 4배로 두지 말고 8/3을 지키며, 드롭아웃은 게이팅 곱 이후에 적용하고, 게이트 편향이 0으로 무너지지 않도록 초기화에 주의해야 한다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗