검색
← 모듈 로드맵

모델 압축과 희소성: 지식 증류 · 가지치기 · 전문가 혼합

강의 · 준전문가 · KAITABASE 정리

원제 · Distillation, Pruning and Mixture of Experts

지식 증류(온도 · T²) · 가지치기 · 전문가 혼합 라우팅과 부하 균형을 손계산하는 수업

먼저 알아야 할 것

소프트맥스와 교차 엔트로피KL 발산트랜스포머 FFN메모리와 계산 비용 구분

다루는 내용

큰 모델의 비용을 줄이는 세 방법을 비교합니다. 온도 소프트맥스와 증류 손실, DistilBERT의 결과를 보고, 크기 기준 가지치기와 비구조적 · 구조적 희소성, 복권 가설, SparseGPT를 정리합니다. MoE의 top-1 · top-2 라우팅과 부하 균형 손실 · 용량 계수를 계산하고, 총 · 활성 파라미터가 메모리와 계산에 주는 의미를 설명합니다.

해설

모델 압축과 희소성: 지식 증류 · 가지치기 · 전문가 혼합

큰 모델은 똑똑하지만 비쌉니다. 비용을 줄이는 길은 크게 셋입니다. 큰 모델의 지식을 작은 모델에 옮기는 지식 증류, 쓸모가 적은 가중치를 지우는 가지치기, 그리고 파라미터는 많이 두되 토큰마다 일부만 쓰는 전문가 혼합(MoE). 앞의 둘은 "모델을 작게", 셋째는 "큰 모델을 싸게 쓰기"입니다. 이 수업에서는 세 가지를 작은 숫자로 직접 계산하며 각각 무엇을 아끼고 무엇을 포기하는지 비교합니다.

항목내용
참고 출처Hugging Face MoE 해설 · 지식 증류(arXiv 1503.02531) · DistilBERT(arXiv 1910.01108) · 복권 가설(arXiv 1803.03635) · SparseGPT(arXiv 2301.00774) · 희소 게이트 MoE(arXiv 1701.06538) · Switch Transformer(arXiv 2101.03961) · Mixtral(arXiv 2401.04088)
트랙 · 수준스케일링·효율 · 중급
이 수업이 다루는 범위소프트 타깃 · 온도, 증류 손실, DistilBERT, 크기 기준 가지치기, 비구조적 · 구조적 희소성, 복권 가설, SparseGPT, MoE 라우팅(top-k), 부하 균형 손실, 용량 계수, 총 · 활성 파라미터

들어가기 전에

한눈에 보기

  • 온도를 높인 소프트맥스(소프트 타깃)가 정답 레이블보다 정보가 많은 이유를 숫자로 봅니다.
  • 증류 손실에 T2T^2 를 곱하는 이유를 압니다.
  • 크기 기준 가지치기를 직접 해 보고, 비구조적 · 구조적 희소성의 차이를 압니다.
  • MoE 라우터가 토큰을 전문가에 배정하는 계산(top-1 · top-2)과 부하 균형 손실을 계산합니다.
  • Mixtral의 "총 47B, 활성 13B"가 메모리와 계산에 각각 무엇을 뜻하는지 설명할 수 있습니다.

1. 지식 증류: 선생의 '애매함'까지 배우기

직관(해설용 비유). 정답지만 보는 학생은 "이건 고양이"만 배웁니다. 선생님 옆에서 배우는 학생은 "고양이일 확률이 높지만 호랑이와도 좀 닮았고, 자동차와는 전혀 안 닮았다"까지 배웁니다. 이 틀린 답들 사이의 상대적 확률 이 Hinton 외(2015)가 말한 '어두운 지식'이며, 증류의 핵심입니다.

온도를 높인 소프트맥스. 논문은 로짓 ziz_i 를 온도 TT 로 나눈 소프트맥스를 씁니다.

qi=exp⁡(zi/T)∑jexp⁡(zj/T)q_i=\frac{\exp(z_i/T)}{\sum_j\exp(z_j/T)}

T=1T=1 이 보통 소프트맥스이고, TT 를 키우면 분포가 부드러워져 작은 확률들이 드러납니다.

숫자로 해 보기(해설용, 코드로 확인). 선생 로짓 (4, 1, 0)(4,\ 1,\ 0):

  • T=1T=1: (0.936, 0.047, 0.017)(0.936,\ 0.047,\ 0.017) — 거의 정답 레이블과 같아 추가 정보가 적습니다.
  • T=4T=4: (0.543, 0.257, 0.200)(0.543,\ 0.257,\ 0.200) — "둘째가 셋째보다 조금 더 그럴듯하다"는 정보가 보입니다.

증류 손실. 학생도 같은 온도 TT 로 소프트맥스를 하고, 선생 분포 p(T)p^{(T)} 와의 교차 엔트로피를 줄입니다. 보통 정답 레이블과의 교차 엔트로피(T=1T=1)도 함께 씁니다.

L=λ T2 CE(p선생(T), q학생(T))+(1−λ) CE(y, q학생(1))\mathcal L = \lambda\, T^2\, \mathrm{CE}\big(p^{(T)}_\text{선생},\ q^{(T)}_\text{학생}\big) + (1-\lambda)\,\mathrm{CE}\big(y,\ q^{(1)}_\text{학생}\big)
기호뜻
TT온도. 학습 중에는 높게, 학습 후 추론 때는 1
p(T)p^{(T)} · q(T)q^{(T)}온도 TT 의 선생 · 학생 확률
yy정답 레이블
λ\lambda두 손실의 비중(해설용 표기)
T2T^2기울기 크기 보정

왜 T2T^2 인가. 논문은 소프트 타깃에서 나오는 기울기의 크기가 1/T21/T^2 로 줄어들기 때문에, 온도를 바꿔도 두 손실의 상대 비중이 유지되도록 T2T^2 를 곱하는 것이 중요하다고 설명합니다.

숫자로 해 보기(해설용). 학생 로짓이 (2, 1, 0.5)(2,\ 1,\ 0.5) 일 때 T=1T=1 에서 학생 분포는 (0.629, 0.231, 0.140)(0.629,\ 0.231,\ 0.140), 선생과의 KL 발산은 약 0.262입니다. T=4T=4 에서는 학생 (0.406, 0.316, 0.279)(0.406,\ 0.316,\ 0.279), KL 약 0.039. 온도가 높으면 차이 값 자체가 작아지는데, 이것이 T2T^2 보정이 필요한 직관입니다.

DistilBERT(Sanh 외, 2019). 사전학습 단계에서 증류를 해, BERT를 40% 줄이면서 언어 이해 능력의 97%를 유지하고 60% 빠르게 만들었다고 보고합니다. 손실은 언어 모델링 · 증류 · 은닉 상태 코사인 거리, 세 가지를 합친 것입니다.

LLM에서의 증류. 오늘날에는 큰 모델이 만든 답(또는 확률)으로 작은 모델을 미세조정하는 방식도 넓은 의미의 증류로 부릅니다. 이 경우 선생 모델 이용 약관에서 출력 재사용이 허용되는지 확인해야 합니다.

2. 가지치기: 덜 중요한 가중치 지우기

직관. 큰 나무에서 잎이 거의 없는 가지를 쳐내도 나무 모양은 그대로입니다. 신경망에서도 값이 0에 가까운 가중치는 출력에 거의 영향을 주지 않습니다.

크기 기준 가지치기(magnitude pruning).

  1. 가중치의 절댓값을 봅니다.
  2. 작은 것부터 정해진 비율만큼 0으로 만듭니다.
  3. (선택) 남은 가중치로 다시 학습해 성능을 회복합니다.

숫자로 해 보기(해설용). w=(0.8, −0.05, 0.3, −0.6, 0.02, 0.1)w=(0.8,\ -0.05,\ 0.3,\ -0.6,\ 0.02,\ 0.1) 에서 50%(3개)를 지우면 ∣w∣|w| 가 가장 작은 −0.05, 0.02, 0.1-0.05,\ 0.02,\ 0.1 이 0이 되어 (0.8, 0, 0.3, −0.6, 0, 0)(0.8,\ 0,\ 0.3,\ -0.6,\ 0,\ 0). 입력이 모두 1이면 출력이 0.57→0.500.57 \to 0.50 으로 바뀝니다. 지운 값들의 합(0.07)만큼 차이가 납니다.

비구조적 vs 구조적.

종류무엇을 지우나장점단점
비구조적아무 위치의 개별 가중치같은 희소율에서 정확도 손실이 작음하드웨어에서 빠르게 돌리기 어려움(0이 흩어져 있음)
구조적행 · 열 · 헤드 · 층 전체그냥 작은 밀집 행렬이 되어 바로 빨라짐정확도 손실이 큼
반구조적(예: 4개 중 2개)정해진 패턴일부 GPU가 가속 지원패턴 제약

복권 가설(Frankle · Carbin, 2018). 무작위 초기화된 밀집 신경망 안에는, 원래 초기값 그대로 따로 학습해도 원래 신경망 정확도에 도달하는 작은 부분망('당첨 복권')이 있다는 가설입니다. 논문은 MNIST · CIFAR10의 여러 구조에서 원래 크기의 10~20% 이하인 당첨 복권을 꾸준히 찾았다고 보고합니다. "큰 신경망이 학습을 쉽게 만드는 이유"에 대한 하나의 설명입니다.

SparseGPT(Frantar · Alistarh, 2023). 거대 모델은 가지치기 뒤 재학습이 너무 비쌉니다. SparseGPT는 재학습 없이 한 번에(one-shot) 가지치기를 하는 방법으로, OPT-175B · BLOOM-176B를 4.5시간 안에 최소 50% 희소도로 정확도 손실을 작게 만들고 비구조적 60%까지 갈 수 있었다고 보고합니다. GPTQ 와 같은 저자들이 비슷한 2차 정보 기반 아이디어를 썼습니다.

3. 전문가 혼합(MoE): 많이 두고 조금만 쓰기

직관(해설용 비유). 큰 병원에 전문의가 여러 명 있지만, 환자 한 명은 접수 창구(라우터)가 고른 한두 명만 만납니다. 병원 전체 지식(파라미터)은 크지만, 환자 한 명당 진료 비용(계산)은 작습니다.

구조. 트랜스포머 블록의 FFN 하나를 FFN 여러 개(전문가 E1,…,ENE_1,\dots,E_N)로 바꾸고, 작은 라우터 WgW_g 가 토큰마다 어떤 전문가를 쓸지 고릅니다. Mixtral 논문의 식은 다음과 같습니다.

G(x)=Softmax(TopK(x⋅Wg)),y=∑iG(x)i Ei(x)G(x)=\mathrm{Softmax}\big(\mathrm{TopK}(x\cdot W_g)\big),\qquad y=\sum_{i} G(x)_i\,E_i(x)
기호뜻
x⋅Wgx\cdot W_g전문가별 점수(로짓)
TopK상위 KK 개만 남기고 나머지는 −∞-\infty
G(x)iG(x)_i전문가 ii 의 가중치(선택 안 된 전문가는 0)
Ei(x)E_i(x)전문가 ii (FFN)의 출력

숫자로 해 보기(해설용, 전문가 4개). 라우터 점수가 (1.0, 2.0, 0.5, 1.5)(1.0,\ 2.0,\ 0.5,\ 1.5) 일 때

  • top-2(Mixtral 방식): 전문가 2 · 4가 뽑히고, 둘만 소프트맥스 → (0.622, 0.378)(0.622,\ 0.378). 출력 =0.622E2(x)+0.378E4(x)=0.622E_2(x)+0.378E_4(x). 전문가 1 · 3은 계산하지 않습니다.
  • top-1(Switch 방식): 전문가 2만 씁니다. Switch는 전체 소프트맥스 확률 0.4550.455 를 게이트 값으로 곱합니다.

발전 과정.

  • Shazeer 외(2017): 수천 개 FFN 전문가와 학습되는 게이트로, 계산은 조금만 늘리고 모델 용량을 1,000배 넘게 키웠다고 보고합니다. 게이트에 잡음을 더한 top-k(Noisy Top-K)를 썼고, 최대 1,370억 파라미터 MoE를 LSTM 층 사이에 넣었습니다.
  • Switch Transformer(Fedus 외, 2021): 라우팅을 top-1 로 단순화해 통신 · 계산을 줄였고, 같은 계산 자원에서 사전학습 속도를 최대 7배 높였다고 보고합니다. 조 단위 파라미터 모델까지 학습했습니다.
  • Mixtral 8x7B(Jiang 외, 2024): 층마다 전문가 8개 중 2개를 고릅니다. 토큰은 47B 파라미터에 접근할 수 있지만 추론 때 활성 파라미터는 13B입니다.

부하 균형 손실. 라우터가 몇몇 전문가만 계속 고르면 그 전문가만 학습되고 나머지는 놀게 됩니다. Switch는 다음 보조 손실을 더합니다.

Laux=α N∑i=1Nfi Pi\mathcal L_\text{aux}=\alpha\, N\sum_{i=1}^{N} f_i\, P_i

fif_i 는 배치에서 전문가 ii 로 실제 보낸 토큰 비율, PiP_i 는 라우터가 전문가 ii 에 준 평균 확률, 논문은 α=10−2\alpha=10^{-2} 을 썼습니다. 고르게 나뉘면 최소가 됩니다.

숫자로 해 보기(해설용, N=4N=4, α\alpha 제외). 고르게 나뉘면 f=P=(0.25,… )f=P=(0.25,\dots) → 4×4×0.0625=1.04\times4\times0.0625=1.0. 전문가 1에 몰리면 f=(0.7,0.1,0.1,0.1)f=(0.7,0.1,0.1,0.1), P=(0.6,0.15,0.15,0.1)P=(0.6,0.15,0.15,0.1) → 4×(0.42+0.015+0.015+0.01)=1.844\times(0.42+0.015+0.015+0.01)=1.84. 쏠릴수록 손실이 커져 라우터가 고르게 나누도록 밀어 줍니다.

용량 계수. Switch는 전문가마다 받을 수 있는 토큰 수를 (배치 토큰 수 ÷ 전문가 수) × 용량 계수로 제한합니다. 넘친 토큰은 그 층의 전문가 계산을 건너뛰고 잔차 연결로만 넘어갑니다. 예: 토큰 1,024개, 전문가 8개, 계수 1.25면 전문가당 160개입니다.

MoE의 비용 구조(중요).

항목밀집 모델 13BMixtral(총 47B · 활성 13B)
토큰당 계산13B 기준약 13B 기준
가중치 메모리13B 분47B 분 전부
장점단순같은 계산으로 더 큰 용량

MoE는 계산 을 아끼지만 메모리 는 아끼지 않습니다. 모든 전문가가 GPU 메모리에 있어야 하기 때문입니다.

mermaid
flowchart LR
  BIG[큰 모델] --> D[지식 증류<br/>작은 학생 모델]
  BIG --> P[가지치기<br/>가중치 일부 0]
  BIG --> Q[양자화<br/>비트 수 줄이기]
  BIG --> M[MoE<br/>토큰마다 일부 전문가만]
  D --> R1[메모리 ↓ 계산 ↓]
  P --> R2[메모리 ↓ · 속도는 희소 지원에 달림]
  Q --> R3[메모리 ↓ · 대역폭 ↓]
  M --> R4[계산 ↓ · 메모리는 그대로]

연습 문제

  1. 선생 로짓 (3, 0, 0)(3,\ 0,\ 0) 의 T=1T=1, T=3T=3 소프트맥스는?
    • 풀이: T=1T=1: e3=20.09e^3=20.09 → (0.909, 0.045, 0.045)(0.909,\ 0.045,\ 0.045). T=3T=3: 로짓 (1,0,0)(1,0,0) → (0.576, 0.212, 0.212)(0.576,\ 0.212,\ 0.212) 입니다.
  2. w=(0.4, −0.9, 0.05, 0.2)w=(0.4,\ -0.9,\ 0.05,\ 0.2) 를 50% 크기 기준으로 가지치기하면?
    • 풀이: 절댓값이 작은 0.05, 0.20.05,\ 0.2 를 지워 (0.4, −0.9, 0, 0)(0.4,\ -0.9,\ 0,\ 0) 입니다.
  3. 라우터 점수 (0.2, 1.2, 1.0, −0.5)(0.2,\ 1.2,\ 1.0,\ -0.5) 에서 top-2 게이트 값은?
    • 풀이: 전문가 2 · 3, 소프트맥스(1.2, 1.0)(1.2,\ 1.0) =(0.550, 0.450)=(0.550,\ 0.450) 입니다.
  4. 전문가 16개, 토큰 2,048개, 용량 계수 1.0이면 전문가당 최대 토큰 수는?
    • 풀이: 2048/16×1.0=1282048/16\times1.0=128 개입니다.

스스로 점검

  1. 증류에서 정답 레이블만 쓰지 않고 선생의 소프트 타깃을 쓰는 이유는?
    • 답: 틀린 답들 사이의 상대적 확률(무엇과 무엇이 닮았는지)이라는 추가 정보가 들어 있어, 같은 데이터로 학생이 더 많이 배우기 때문입니다.
  2. 비구조적 가지치기로 50%를 지워도 바로 2배 빨라지지 않는 이유는?
    • 답: 0이 흩어져 있어 일반 밀집 행렬 곱 하드웨어는 그대로 다 계산하기 때문입니다. 희소 연산을 지원하는 커널 · 하드웨어가 있어야 속도가 납니다.
  3. MoE 모델이 '계산은 작은데 메모리는 큰' 이유는?
    • 답: 토큰마다 일부 전문가만 계산하지만, 어떤 토큰이 어떤 전문가로 갈지 모르므로 모든 전문가 가중치를 메모리에 올려 둬야 하기 때문입니다.

용어 정리

용어쉬운 뜻
지식 증류큰 선생 모델의 출력 분포를 작은 학생 모델이 따라 배우게 하는 것
소프트 타깃 · 온도온도를 높여 부드럽게 만든 확률 분포 · 그 부드러움 정도
가지치기덜 중요한 가중치를 0으로 만들어 지우는 것
비구조적 · 구조적 희소성개별 가중치를 지움 · 행 · 열 · 헤드 단위로 지움
복권 가설큰 신경망 안에 혼자 학습해도 잘 되는 작은 부분망이 있다는 가설
전문가 혼합(MoE)여러 FFN 중 일부만 토큰마다 골라 쓰는 구조
라우터(게이트)토큰을 어느 전문가로 보낼지 고르는 작은 신경망
부하 균형 손실전문가 사용이 한쪽으로 쏠리지 않게 하는 보조 손실
총 · 활성 파라미터모델 전체 파라미터 · 토큰 하나 처리에 실제 쓰는 파라미터

더 깊이 보려면

다음에 볼 것

라이선스

본문은 KAITABASE 자체 해설입니다. 기법별 수치와 식은 지식 증류 · DistilBERT · 복권 가설 · SparseGPT · 희소 게이트 MoE · Switch Transformer · Mixtral 원문에서 확인한 것만 옮겼습니다. 숫자 예(로짓 · 가중치 · 라우터 점수)는 해설용이며 파이썬으로 검산했습니다.

출처

AI 원리부터 이해하기 · 스케일링·효율 모듈

스케일링·효율 모듈 학습

이 글은 스케일링·효율 모듈의 학습 자료입니다. 전체 19개 자료 중 15번째입니다.

AI 기초 과정은 현재 진도 저장을 지원하지 않습니다.

출처·원문

원문 보기

요약만

본문 자체 작성 · 참고 자료 Hugging Face 블로그 · arXiv 원 논문