모델 압축과 희소성: 지식 증류 · 가지치기 · 전문가 혼합
지식 증류(온도 · T²) · 가지치기 · 전문가 혼합 라우팅과 부하 균형을 손계산하는 수업
먼저 알아야 할 것
다루는 내용
큰 모델의 비용을 줄이는 세 방법을 비교합니다. 온도 소프트맥스와 증류 손실, 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), 부하 균형 손실, 용량 계수, 총 · 활성 파라미터 |
들어가기 전에
- 정보 이론 최소한: 엔트로피 · 교차 엔트로피 · KL 발산 — 증류 손실이 교차 엔트로피 · KL 발산입니다.
- 트랜스포머 블록 한 층을 손으로 — MoE는 블록의 FFN을 여러 개로 늘린 것입니다.
- 추론 최적화 — '메모리'와 '계산' 중 무엇이 줄어드는지 구분하는 감각.
한눈에 보기
- 온도를 높인 소프트맥스(소프트 타깃)가 정답 레이블보다 정보가 많은 이유를 숫자로 봅니다.
- 증류 손실에 를 곱하는 이유를 압니다.
- 크기 기준 가지치기를 직접 해 보고, 비구조적 · 구조적 희소성의 차이를 압니다.
- MoE 라우터가 토큰을 전문가에 배정하는 계산(top-1 · top-2)과 부하 균형 손실을 계산합니다.
- Mixtral의 "총 47B, 활성 13B"가 메모리와 계산에 각각 무엇을 뜻하는지 설명할 수 있습니다.
1. 지식 증류: 선생의 '애매함'까지 배우기
직관(해설용 비유). 정답지만 보는 학생은 "이건 고양이"만 배웁니다. 선생님 옆에서 배우는 학생은 "고양이일 확률이 높지만 호랑이와도 좀 닮았고, 자동차와는 전혀 안 닮았다"까지 배웁니다. 이 틀린 답들 사이의 상대적 확률 이 Hinton 외(2015)가 말한 '어두운 지식'이며, 증류의 핵심입니다.
온도를 높인 소프트맥스. 논문은 로짓 를 온도 로 나눈 소프트맥스를 씁니다.
이 보통 소프트맥스이고, 를 키우면 분포가 부드러워져 작은 확률들이 드러납니다.
숫자로 해 보기(해설용, 코드로 확인). 선생 로짓 :
- : — 거의 정답 레이블과 같아 추가 정보가 적습니다.
- : — "둘째가 셋째보다 조금 더 그럴듯하다"는 정보가 보입니다.
증류 손실. 학생도 같은 온도 로 소프트맥스를 하고, 선생 분포 와의 교차 엔트로피를 줄입니다. 보통 정답 레이블과의 교차 엔트로피()도 함께 씁니다.
| 기호 | 뜻 |
|---|---|
| 온도. 학습 중에는 높게, 학습 후 추론 때는 1 | |
| · | 온도 의 선생 · 학생 확률 |
| 정답 레이블 | |
| 두 손실의 비중(해설용 표기) | |
| 기울기 크기 보정 |
왜 인가. 논문은 소프트 타깃에서 나오는 기울기의 크기가 로 줄어들기 때문에, 온도를 바꿔도 두 손실의 상대 비중이 유지되도록 를 곱하는 것이 중요하다고 설명합니다.
숫자로 해 보기(해설용). 학생 로짓이 일 때 에서 학생 분포는 , 선생과의 KL 발산은 약 0.262입니다. 에서는 학생 , KL 약 0.039. 온도가 높으면 차이 값 자체가 작아지는데, 이것이 보정이 필요한 직관입니다.
DistilBERT(Sanh 외, 2019). 사전학습 단계에서 증류를 해, BERT를 40% 줄이면서 언어 이해 능력의 97%를 유지하고 60% 빠르게 만들었다고 보고합니다. 손실은 언어 모델링 · 증류 · 은닉 상태 코사인 거리, 세 가지를 합친 것입니다.
LLM에서의 증류. 오늘날에는 큰 모델이 만든 답(또는 확률)으로 작은 모델을 미세조정하는 방식도 넓은 의미의 증류로 부릅니다. 이 경우 선생 모델 이용 약관에서 출력 재사용이 허용되는지 확인해야 합니다.
2. 가지치기: 덜 중요한 가중치 지우기
직관. 큰 나무에서 잎이 거의 없는 가지를 쳐내도 나무 모양은 그대로입니다. 신경망에서도 값이 0에 가까운 가중치는 출력에 거의 영향을 주지 않습니다.
크기 기준 가지치기(magnitude pruning).
- 가중치의 절댓값을 봅니다.
- 작은 것부터 정해진 비율만큼 0으로 만듭니다.
- (선택) 남은 가중치로 다시 학습해 성능을 회복합니다.
숫자로 해 보기(해설용). 에서 50%(3개)를 지우면 가 가장 작은 이 0이 되어 . 입력이 모두 1이면 출력이 으로 바뀝니다. 지운 값들의 합(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 여러 개(전문가 )로 바꾸고, 작은 라우터 가 토큰마다 어떤 전문가를 쓸지 고릅니다. Mixtral 논문의 식은 다음과 같습니다.
| 기호 | 뜻 |
|---|---|
| 전문가별 점수(로짓) | |
| TopK | 상위 개만 남기고 나머지는 |
| 전문가 의 가중치(선택 안 된 전문가는 0) | |
| 전문가 (FFN)의 출력 |
숫자로 해 보기(해설용, 전문가 4개). 라우터 점수가 일 때
- top-2(Mixtral 방식): 전문가 2 · 4가 뽑히고, 둘만 소프트맥스 → . 출력 . 전문가 1 · 3은 계산하지 않습니다.
- top-1(Switch 방식): 전문가 2만 씁니다. Switch는 전체 소프트맥스 확률 를 게이트 값으로 곱합니다.
발전 과정.
- 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는 다음 보조 손실을 더합니다.
는 배치에서 전문가 로 실제 보낸 토큰 비율, 는 라우터가 전문가 에 준 평균 확률, 논문은 을 썼습니다. 고르게 나뉘면 최소가 됩니다.
숫자로 해 보기(해설용, , 제외). 고르게 나뉘면 → . 전문가 1에 몰리면 , → . 쏠릴수록 손실이 커져 라우터가 고르게 나누도록 밀어 줍니다.
용량 계수. Switch는 전문가마다 받을 수 있는 토큰 수를 (배치 토큰 수 ÷ 전문가 수) × 용량 계수로 제한합니다. 넘친 토큰은 그 층의 전문가 계산을 건너뛰고 잔차 연결로만 넘어갑니다. 예: 토큰 1,024개, 전문가 8개, 계수 1.25면 전문가당 160개입니다.
MoE의 비용 구조(중요).
| 항목 | 밀집 모델 13B | Mixtral(총 47B · 활성 13B) |
|---|---|---|
| 토큰당 계산 | 13B 기준 | 약 13B 기준 |
| 가중치 메모리 | 13B 분 | 47B 분 전부 |
| 장점 | 단순 | 같은 계산으로 더 큰 용량 |
MoE는 계산 을 아끼지만 메모리 는 아끼지 않습니다. 모든 전문가가 GPU 메모리에 있어야 하기 때문입니다.
flowchart LR
BIG[큰 모델] --> D[지식 증류<br/>작은 학생 모델]
BIG --> P[가지치기<br/>가중치 일부 0]
BIG --> Q[양자화<br/>비트 수 줄이기]
BIG --> M[MoE<br/>토큰마다 일부 전문가만]
D --> R1[메모리 ↓ 계산 ↓]
P --> R2[메모리 ↓ · 속도는 희소 지원에 달림]
Q --> R3[메모리 ↓ · 대역폭 ↓]
M --> R4[계산 ↓ · 메모리는 그대로]연습 문제
- 선생 로짓 의 , 소프트맥스는?
- 풀이: : → . : 로짓 → 입니다.
- 를 50% 크기 기준으로 가지치기하면?
- 풀이: 절댓값이 작은 를 지워 입니다.
- 라우터 점수 에서 top-2 게이트 값은?
- 풀이: 전문가 2 · 3, 소프트맥스 입니다.
- 전문가 16개, 토큰 2,048개, 용량 계수 1.0이면 전문가당 최대 토큰 수는?
- 풀이: 개입니다.
스스로 점검
- 증류에서 정답 레이블만 쓰지 않고 선생의 소프트 타깃을 쓰는 이유는?
- 답: 틀린 답들 사이의 상대적 확률(무엇과 무엇이 닮았는지)이라는 추가 정보가 들어 있어, 같은 데이터로 학생이 더 많이 배우기 때문입니다.
- 비구조적 가지치기로 50%를 지워도 바로 2배 빨라지지 않는 이유는?
- 답: 0이 흩어져 있어 일반 밀집 행렬 곱 하드웨어는 그대로 다 계산하기 때문입니다. 희소 연산을 지원하는 커널 · 하드웨어가 있어야 속도가 납니다.
- MoE 모델이 '계산은 작은데 메모리는 큰' 이유는?
- 답: 토큰마다 일부 전문가만 계산하지만, 어떤 토큰이 어떤 전문가로 갈지 모르므로 모든 전문가 가중치를 메모리에 올려 둬야 하기 때문입니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 지식 증류 | 큰 선생 모델의 출력 분포를 작은 학생 모델이 따라 배우게 하는 것 |
| 소프트 타깃 · 온도 | 온도를 높여 부드럽게 만든 확률 분포 · 그 부드러움 정도 |
| 가지치기 | 덜 중요한 가중치를 0으로 만들어 지우는 것 |
| 비구조적 · 구조적 희소성 | 개별 가중치를 지움 · 행 · 열 · 헤드 단위로 지움 |
| 복권 가설 | 큰 신경망 안에 혼자 학습해도 잘 되는 작은 부분망이 있다는 가설 |
| 전문가 혼합(MoE) | 여러 FFN 중 일부만 토큰마다 골라 쓰는 구조 |
| 라우터(게이트) | 토큰을 어느 전문가로 보낼지 고르는 작은 신경망 |
| 부하 균형 손실 | 전문가 사용이 한쪽으로 쏠리지 않게 하는 보조 손실 |
| 총 · 활성 파라미터 | 모델 전체 파라미터 · 토큰 하나 처리에 실제 쓰는 파라미터 |
더 깊이 보려면
- 스위치 트랜스포머: 희소 전문가 혼합 (MoE) — top-1 라우팅과 용량 계수 원 논문
- Mixtral: 전문가 혼합 모델 — 8개 중 2개를 고르는 공개 MoE
- Hugging Face MoE 해설: huggingface.co/blog/moe
다음에 볼 것
- 스위치 트랜스포머: 희소 전문가 혼합 (MoE) — MoE를 조 단위로 키운 방법
- Mixtral: 전문가 혼합 모델 — 실제로 쓰이는 공개 MoE의 구성과 성능
라이선스
본문은 KAITABASE 자체 해설입니다. 기법별 수치와 식은 지식 증류 · DistilBERT · 복권 가설 · SparseGPT · 희소 게이트 MoE · Switch Transformer · Mixtral 원문에서 확인한 것만 옮겼습니다. 숫자 예(로짓 · 가중치 · 라우터 점수)는 해설용이며 파이썬으로 검산했습니다.
출처
- Hinton 외, Distilling the Knowledge in a Neural Network (2015): arxiv.org/abs/1503.02531
- Sanh 외, DistilBERT, a distilled version of BERT (2019): arxiv.org/abs/1910.01108
- Frankle · Carbin, The Lottery Ticket Hypothesis (2018): arxiv.org/abs/1803.03635
- Frantar · Alistarh, SparseGPT: Massive Language Models Can be Accurately Pruned in One-Shot (2023): arxiv.org/abs/2301.00774
- Shazeer 외, Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer (2017): arxiv.org/abs/1701.06538
- Fedus 외, Switch Transformers (2021): arxiv.org/abs/2101.03961
- Jiang 외, Mixtral of Experts (2024): arxiv.org/abs/2401.04088
- Hugging Face, Mixture of Experts Explained: huggingface.co/blog/moe
AI 원리부터 이해하기 · 스케일링·효율 모듈
스케일링·효율 모듈 학습
이 글은 스케일링·효율 모듈의 학습 자료입니다. 전체 19개 자료 중 15번째입니다.
출처·원문
원문 보기요약만