개요

Knowledge Distillation (지식 증류)은 크고 복잡한 **교사 모델(Teacher)**의 지식을 작고 가벼운 **학생 모델(Student)**로 전이하는 모델 압축 기법입니다. 2015년 Hinton 등이 제안하였으며, 대형 Large Language Models (LLMs)를 엣지 디바이스나 프로덕션 환경에서 효율적으로 실행하기 위해 널리 사용됩니다.


핵심 원리

소프트 레이블 (Soft Labels)

  • 하드 레이블: 정답 클래스만 1, 나머지 0 (one-hot)
  • 소프트 레이블: 교사 모델의 출력 확률 분포 전체를 학습
  • 소프트 레이블에는 클래스 간 관계 정보가 포함됨
    • 예: “고양이” 이미지 → 교사가 “호랑이 0.1, 개 0.05” 정보 제공

Temperature Scaling

  • softmax 온도(T)를 높여 확률 분포를 부드럽게 만듦
  • T가 높을수록 소프트 레이블이 더 많은 정보를 전달
  • 일반적으로 T = 3~20 사용

손실 함수

L = α × L_soft(학생 출력, 교사 소프트 레이블)
  + (1-α) × L_hard(학생 출력, 정답 레이블)

증류 유형

유형방식예시
Response-based교사의 최종 출력(로짓) 모방기본 KD
Feature-based교사의 중간 레이어 표현 모방FitNet
Relation-based데이터 간 관계 구조 학습RKD
Self-Distillation자기 자신의 앙상블에서 증류Born-Again Networks

LLM에서의 활용

기법설명
Word-level KD토큰별 확률 분포 전이
Sequence-level KD교사가 생성한 텍스트로 학생 학습
Synthetic Data교사 모델로 합성 데이터 (Synthetic Data) 생성 후 학생 학습
Distil- 시리즈DistilBERT (BERT의 97% 성능, 60% 크기)

관련 기법 비교

기법방식효과
Knowledge Distillation교사→학생 전이모델 크기 축소
Model Pruning불필요한 가중치 제거희소성 증가
Model Quantization수치 정밀도 축소메모리 절감
Low-Rank Adaptation (LoRA)저랭크 어댑터 추가파인튜닝 효율

관련 항목