🧠 지식 증류(Knowledge Distillation, KD) 쉽게 이해하기
작은 모델도 큰 모델처럼 똑똑해질 수 있을까?
📌 지식 증류란?
지식 증류는 큰 모델(Teacher Model)이 가진 지식을 작은 모델(Student Model)에게 전달하여, 작은 모델이 더 효율적으로 학습할 수 있도록 돕는 기술입니다.
쉽게 말해, “큰 모델의 똑똑함을 작은 모델에게 전수하는 과정”이라고 할 수 있어요.
🔑 핵심 아이디어
1. Teacher Model
- 수많은 파라미터와 연산을 가진 대규모 모델
- 대량의 데이터와 컴퓨팅 자원으로 학습됨
- 예: GPT-4, 거대한 CNN 기반 이미지 분류 모델
2. Student Model
- 훨씬 작은 크기와 연산량을 가진 모델
- 모바일, 임베디드 장치 등에서 동작 가능
- Teacher로부터 지식을 전수받아 가볍지만 성능 좋은 모델을 목표로 함
3. Soft Target (부드러운 정답)
- Teacher 모델이 출력하는 확률 분포를 학습
- 예: “고양이 0.7, 개 0.2, 토끼 0.1”
- 단순히 정답 라벨(고양이=1)만 쓰는 것보다 훨씬 풍부한 정보를 제공
📐 지식 증류의 기본 공식
학생 모델은 두 가지 손실을 동시에 최소화합니다.
-
Cross-Entropy Loss
-
Distillation Loss
- Teacher와 Student의 확률 분포 차이를 학습
- 보통 KL Divergence 사용
LKD=KL(pteacher(T)∥pstudent(T))
여기서 온도(Temperature, T) 파라미터는 분포를 더 부드럽게 만들어, Teacher의 미세한 판단 근거까지 Student가 학습할 수 있게 도와줍니다.
🔥 지식 증류의 장점
- 모델 경량화 → 작은 모델도 큰 모델 수준의 성능
- 실행 속도 향상 → 모바일/엣지 디바이스에서 실시간 사용 가능
- 학습 효율 증가 → 단순히 라벨만 쓰는 것보다 더 잘 학습
📌 응용 사례
- 📱 모바일 음성 인식 (Google Speech 등)
- 🤖 대형 언어모델 경량화 (예: LLaMA → TinyLLaMA, Qwen → Qwen1.5-S)
- 🎥 실시간 영상 인식 (Edge AI, 자율주행)
👉 정리
지식 증류(Knowledge Distillation)는
“큰 모델이 알고 있는 정답에 이르는 사고 과정까지 작은 모델에게 가르치는 기술”입니다.
즉, 단순히 정답만 알려주는 것이 아니라, 왜 그런 답을 내렸는지에 대한 힌트까지 전해주는 셈이죠.