한 줄 정의

SwiGLU는 Transformer의 feed-forward layer에서 두 선형 경로를 곱하고, 그중 한쪽에 Swish 활성화를 거는 GLU 변형이야. 모델 이름도 아니고 attention 변형도 아니야. Transformer block 안에서 attention 뒤에 오는 FFN, 그리고 MoE 전문가 내부 MLP를 읽을 때 나오는 계산 구조라고 보면 돼.

수식으로는 보통 SwiGLU(x, W, V) = Swish_1(xW) ⊗ xV처럼 생각하면 편해. 여기서 는 같은 위치끼리 곱한다는 뜻이고, 실제 FFN에서는 이 결과에 다시 W2를 곱해서 다음 hidden representation으로 보낸다.

어떻게 작동하나

기본 Transformer FFN은 대체로 xW1에 ReLU나 GELU 같은 비선형 함수를 걸고, 그 결과에 W2를 곱하는 두 단계 구조야. SwiGLU는 여기서 첫 선형 경로를 하나 더 만든다. 하나는 Swish를 거친 gate 역할을 하고, 다른 하나는 그대로 값 경로가 돼. 둘을 원소별로 곱하면 “어떤 hidden 차원을 얼마나 통과시킬지”를 더 세밀하게 조절할 수 있어.

Shazeer의 2020년 논문은 이 GLU 계열을 Transformer FFN에 넣어 비교했어. GLU 변형은 W, V, W2처럼 weight matrix가 3개라서, 논문은 기본 두-matrix FFN과 파라미터 수와 계산량을 맞추려고 hidden units를 2/3로 줄였어. 실험 설정도 꽤 구체적이야. encoder와 decoder가 각각 12 layers이고, d_model = 768, attention heads 12, 기본 d_ff = 3072, GLU 변형 d_ff = 2048이었어.

결과는 “SwiGLU라는 이름이 왜 오래 살아남았나”를 설명해줘. 524,288 training steps 뒤 heldout log-perplexity는 ReLU FFN이 1.677, GEGLU가 1.633, SwiGLU가 1.636이었어. 낮을수록 좋은 지표라서 GEGLU와 SwiGLU가 상위권이야. GLUE dev 평균도 ReLU 83.80 대비 SwiGLU 84.36, SuperGLUE dev 평균은 ReLU 72.76 대비 SwiGLU 74.56으로 나왔어. 다만 이건 특정 T5 setup의 실험 결과라서, 모든 모델에서 같은 폭으로 좋아진다고 읽으면 안 돼.

왜 중요한가

SwiGLU가 중요한 이유는 최신 모델 기사에서 attention보다 덜 보이지만, 실제 연산 비용에서는 FFN과 MLP가 큰 비중을 차지하기 때문이야. Transformer block을 읽을 때 attention만 보면 절반만 보는 셈이야. attention은 토큰끼리 무엇을 참고할지 계산하고, FFN은 각 토큰 표현을 더 풍부하게 바꿔. SwiGLU는 바로 그 FFN 쪽에서 표현을 gate처럼 조절하는 선택지야.

MoE 문맥에서는 더 자주 보인다. 각 토큰이 선택한 전문가 안에서도 보통 linear 1, 활성화, linear 2 흐름이 있고, 여기서 SwiGLU가 중간 활성화로 들어갈 수 있어. 그래서 DeepGEMM의 2026년 4월 Mega MoE 업데이트가 dispatch → linear 1 → SwiGLU → linear 2 → combine을 하나의 mega-kernel로 묶는다고 할 때, SwiGLU는 논문 속 activation 이름이 아니라 실제 GPU 커널 fusion 경로의 한 단계가 돼.

이 차이를 잡아두면 기사 해석이 편해져. “SwiGLU가 들어갔다”는 말은 모델이 새로 출시됐다는 뜻이 아니야. 보통은 FFN 구조, MoE 전문가 내부 계산, 또는 CUDA 커널에서 어느 단계를 fuse하는지에 관한 이야기야. 특히 FP8, FP4, BF16 같은 정밀도와 함께 나오면 모델 품질보다 실행 비용, 지연시간, GPU utilization을 먼저 봐야 해.

헷갈리기 쉬운 경계도 같이 잡아두면 좋아. Transformer는 전체 아키텍처이고, SwiGLU는 그 안의 FFN 선택지야. Mixture of Experts토큰을 전문가로 보내는 구조이고, SwiGLU는 선택된 전문가 내부 MLP에서 쓰일 수 있는 활성화야. Mega MoEDeepGEMM은 이 단계를 GPU 커널로 묶어 실행하는 쪽이고, FP8BF16은 그 계산을 어떤 정밀도로 돌릴지에 관한 선택이야.

주의해서 볼 점

SwiGLU를 ReLU나 GELU의 단순 대체 버튼처럼 보면 곤란해. GLU 변형은 weight matrix가 하나 더 생기기 때문에 hidden width를 어떻게 줄였는지, 파라미터 수를 같은 조건으로 맞췄는지, 어떤 커널이 실제로 실행되는지를 같이 봐야 해. 논문도 그래서 d_ff = 3072 기본 FFN과 d_ff = 2048 GLU 변형을 비교했어.

운영에서는 모델 품질과 커널 성능을 따로 재는 편이 좋아. 품질은 같은 평가셋에서 기준 모델과 비교하고, 성능은 p50/p95 지연시간, tokens/sec, peak memory, GPU utilization으로 봐야 해. DeepGEMM처럼 Mega MoE가 SwiGLU를 포함해 여러 단계를 fuse한다고 해도, 그 숫자가 전체 서비스 지연시간이나 답변 품질 개선을 바로 보장하지는 않아.

또 SwiGLU는 attention 병목을 해결하는 기법이 아니야. 긴 문맥에서 attention 비용이 커지는 문제와, FFN 안에서 gate를 쓰는 문제는 서로 다른 층위야. 둘 다 Transformer block 안에 있지만 확인할 숫자가 달라. attention 쪽은 입력 길이에 따른 메모리와 관계 점수를 보고, SwiGLU 쪽은 FFN hidden size, 정밀도, 커널 fusion, MoE 전문가 경로를 보는 게 맞아.