기술 가이드

SwiGLU 및 게이트 활성화

SwiGLU는 입력의 하나의 선형 투영에 Swish 활성화된 두 번째 투영을 곱하는 게이트 활성화 함수로, 변환기 피드포워드 레이어 내에서 학습 가능한 데이터 종속 게이트 역할을 합니다.

2분 읽기마지막 업데이트

개요

It consistently improves language-model quality, which is why nearly every modern LLM uses it.

심층 분석

표준 변압기 피드포워드 블록은 ReLU 또는 GELU가 사이에 있는 두 개의 선형 레이어입니다. Dauphin 등이 제안한 Gated Linear Units. 2016년에는 첫 번째 투영을 두 개의 절반으로 나누고 절반을 사용하여 요소별 곱셈을 통해 다른 절반을 게이트로 연결했습니다. 2020년 Noam Shazeer가 대중화한 SwiGLU는 해당 게이트에 Swish(SiLU) 함수를 사용합니다. 출력 = (Swish(xW) * (xV)) W2, 2개가 아닌 3개의 가중치 행렬이 있습니다. 게이팅을 통해 네트워크는 차원별로 정보를 선택적으로 전달하거나 억제할 수 있습니다. 세 번째 행렬을 추가하면 매개변수가 증가하므로 구현 시 숨겨진 차원이 대략 2/3로 줄어들어 총 컴퓨팅이 GELU MLP와 유사하게 유지됩니다. Shazeer의 실험에서는 측정 가능한 Perplexity 이득이 나타났으며 LLaMA, PaLM 및 Mistral이 모두 이를 채택했습니다.

기술적 통찰력

Swish는 ReLU와 달리 작은 음수 값을 허용하는 부드럽고 비단조적인 함수인 x * sigmoid(beta*x)입니다. SwiGLU에서 '게이트' 분기 Swish(xW)는 '값' 분기에 xV 요소를 곱하는 0 또는 1 근처의 값을 생성하므로 각 숨겨진 유닛의 기여는 학습된 입력 종속 신호에 의해 변조됩니다. 세 번째 가중치 행렬은 비용입니다. 2/3 숨겨진 크기 트릭은 FLOP 예산을 바닐라 피드포워드 레이어와 일치하도록 유지합니다.

전략적 영향

비용 및 예산

아키텍처 결정은 수년 동안 성능과 운영 비용을 결정합니다.

더 명확한 결정들

기술 교육은 팀이 최신 스택뿐만 아니라 올바른 스택을 선택하는 데 도움이 됩니다.

품질 관리

더 나은 엔지니어링 선택은 생산 시 신뢰성 사고를 줄입니다.

SwiGLU 및 게이트 활성화의 미래

SwiGLU는 개방형 LLM의 기본 MLP로 자리 잡았으며 곧 대체될 가능성은 낮습니다. 활성 방향에는 GeGLU 및 ReGLU 변형, 한 번에 두 투영을 모두 계산하는 융합 GPU 커널, 전문가 혼합과 게이트된 MLP 결합이 포함되므로 각 전문가는 그 자체가 SwiGLU 블록입니다. 연구원들은 또한 게이팅이 최적화에 도움이 되는 이유를 연구하고 있으며 훨씬 더 저렴한 게이트를 설계하는 것을 목표로 하고 있습니다.

실제 구현

LLaMA, PaLM 및 Mistral은 동일한 컴퓨팅에서 복잡성을 낮추기 위해 GELU 피드포워드 계층을 SwiGLU로 대체합니다.

숨겨진 차원은 약 2/3(8/3d)로 확장되므로 추가 게이팅 행렬이 FLOP를 팽창시키지 않습니다.

Mixtral과 같은 전문가 혼합 모델은 SwiGLU 블록을 전문가별 피드포워드 네트워크로 사용합니다.

비전 및 다중 모드 변환기는 GeGLU/SwiGLU 게이팅을 빌려 MLP 하위 계층을 개선합니다.

위험 및 가드레일

하나의 벤치마크를 최적화하면 더 광범위한 시스템 약점을 숨길 수 있습니다.

인프라 및 유지 관리 비용은 종종 과소평가됩니다.

시스템이 더욱 복잡해짐에 따라 보안 및 관찰 가능성의 격차가 커질 수 있습니다.

구현 로드맵

1

구현하기 전에 지연 시간, 품질, 비용 목표를 정의하세요.

2

현실적인 로드 및 데이터 조건에서 벤치마킹합니다.

3

오류, 드리프트 및 사용자 영향에 대한 계측기 모니터링.

4

확장하기 전에 롤백 및 사고 대응 경로를 준비하세요.

계속 탐색하세요

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the SwiGLU and Gated Activations quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

퀴즈 시작

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

다음 가이드

활성화 재계산 장단점

자주 묻는 질문

What is SwiGLU and Gated Activations?

SwiGLU는 입력의 하나의 선형 투영에 Swish 활성화된 두 번째 투영을 곱하는 게이트 활성화 함수로, 변환기 피드포워드 레이어 내에서 학습 가능한 데이터 종속 게이트 역할을 합니다. 언어 모델 품질을 지속적으로 향상시키므로 거의 모든 최신 LLM이 이를 사용합니다.

Gated Linear Unit을 정의하는 핵심 작업은 무엇입니까?

GLU는 값 투영에 게이트 투영 요소를 곱하여 네트워크 제어 정보가 차원별로 흐르도록 합니다.

SwiGLU는 게이트 분기에 어떤 활성화 기능을 사용합니까?

SwiGLU는 게이팅 분기에 x * sigmoid(beta*x)로 정의된 SiLU라고도 하는 Swish를 사용합니다.

SwiGLU 피드포워드 블록은 몇 개의 가중치 행렬을 사용합니까?

SwiGLU에는 게이트 투영, 값 투영, 출력 투영이라는 세 가지 행렬이 필요합니다.

숨겨진 차원이 일반적으로 SwiGLU 레이어에서 약 2/3로 확장되는 이유는 무엇입니까?

그렇지 않으면 세 번째 행렬이 계산을 확장하므로 숨겨진 크기를 대략 8/3d로 축소하면 예산이 일치하게 유지됩니다.

2020년에 변압기 피드포워드 레이어용 SwiGLU를 대중화한 사람은 누구입니까?

Noam Shazeer의 2020년 노트 'GLU Variants Improve Transformer'에서는 SwiGLU를 소개하고 그 복잡성 향상을 보여주었습니다.