지식 증류

편집 역사 토론
소프트웨어 통계 수치해석 마지막 수정: 2026-08-13 04:39:07

1. 개요[편집]

지식 증류
Knowledge Distillation
대중화Hinton, Vinyals, Dean (2015)
선행 연구Buciluă, Caruana, Niculescu-Mizil (2006) 모델 압축
핵심 재료온도 T 로 부드럽게 만든 교사의 출력 분포
손실하드 라벨 교차엔트로피 + T² × 소프트 타깃 KL
별명다크 놀리지 (dark knowledge)
극한T → ∞ 이면 로짓 매칭(최소제곱)에 수렴
경쟁·보완재가지치기 · 양자화 · 저계수 분해 (직교하므로 함께 씀)

지식 증류는 이미 잘 학습된 큰 모형(교사, teacher)이 내놓는 확률분포 전체를 작은 모형(학생, student)이 흉내 내도록 학습시켜, 성능을 크게 잃지 않고 모형을 줄이는 기법이다. 정답 라벨만 보고 배우는 대신 교사의 출력 벡터를 표적으로 삼는다는 것이 전부다.

발상의 출발점은 이 관찰이다. 손글씨 숫자 2를 분류하는 교사가 “2일 확률 0.99”를 뱉었다고 하자. 나머지 0.01이 7에 10410^{-4}, 3에 10610^{-6}, 9에 10910^{-9} 로 갈렸다면 이 모형은 “이 2는 7과 좀 닮았고 9와는 전혀 안 닮았다”는 정보를 갖고 있는 것이다. 원핫 라벨 (0,0,1,0,)(0,0,1,0,\dots) 에는 이 구조가 전혀 없다. 힌턴은 이 오답 클래스들의 상대적 확률을 다크 놀리지라 불렀다 — 질량의 대부분을 차지하지만 눈에 안 보인다는 우주론 농담이다.1

문제는 이 정보가 너무 작다는 것이다. 10610^{-6}10910^{-9} 의 차이는 교차엔트로피 손실에서 사실상 0이다. 그래서 확대경이 필요하고, 그 확대경이 온도다.

2. 온도 스케일링과 손실 함수[편집]

소프트맥스 함수에 온도 TT 를 넣어 로짓을 눌러 준다.

pi(T)=exp(zi/T)jexp(zj/T)p_i^{(T)} = \frac{\exp(z_i/T)}{\sum_j \exp(z_j/T)}

TT 가 커질수록 분포가 평평해지면서 작은 확률들 사이의 비율이 손실 값에 실질적으로 기여하게 된다. 학생과 교사에 같은 TT 를 쓰고, 총 손실은 두 항을 섞는다.

L=(1λ)CE(y, ps(1))하드 라벨  +  λT2DKL(pt(T)ps(T))소프트 타깃\mathcal{L} = (1-\lambda)\,\underbrace{\mathrm{CE}\bigl(y,\ p_s^{(1)}\bigr)}_{\text{하드 라벨}} \;+\; \lambda\,T^2\,\underbrace{D_{\mathrm{KL}}\bigl(p_t^{(T)} \,\big\Vert\, p_s^{(T)}\bigr)}_{\text{소프트 타깃}}

관례값은 T=25T = 2\sim 5, λ\lambda 는 0.5~0.9 사이. 하드 라벨 항을 완전히 빼기도 하지만, 교사가 틀린 표본에서 학생을 붙잡아 주는 역할이 있어 보통 조금은 남겨 둔다.

3. 왜 하필 T² 인가[편집]

여기가 이 문서에서 유일하게 계산을 해야 하는 곳이다. 교사 로짓 viv_i, 학생 로짓 ziz_i 에 대해 소프트 타깃 손실을 ziz_i 로 미분하면

Lsoftzi=1T(ps,i(T)pt,i(T))\frac{\partial \mathcal{L}_{\text{soft}}}{\partial z_i} = \frac{1}{T}\left(p^{(T)}_{s,i} - p^{(T)}_{t,i}\right)

가 된다(소프트맥스+교차엔트로피의 그 유명한 잔차 꼴에 연쇄법칙의 1/T1/T 가 붙은 것). TT 가 크면 괄호 안의 확률 차이 자체도 O(1/T)O(1/T) 로 줄어들므로, 전체 기울기는 O(1/T2)O(1/T^2) 로 작아진다. TT 를 3에서 5로 올리는 순간 소프트 타깃 항의 기여가 3배 가까이 쪼그라들어, 하드 라벨 항이 학습을 독식하게 된다. T2T^2 를 곱하는 것은 TT 를 바꿔도 두 항의 상대적 세기가 유지되도록 하는 보정이며, 이걸 빼먹으면 “온도를 올렸더니 증류가 안 되네요”라는 흔한 삽질이 발생한다.

같은 전개에서 한 가지가 더 나온다. 로짓의 평균이 0이라 가정하고 TT 를 크게 하면 exp(x/T)1+x/T\exp(x/T) \approx 1 + x/T 이므로

Lsoftzi  1KT2(zivi)\frac{\partial \mathcal{L}_{\text{soft}}}{\partial z_i} \ \approx\ \frac{1}{K T^2}\left(z_i - v_i\right)

고온 극한의 지식 증류는 로짓의 최소제곱 매칭이다. 확률을 맞추는 게 아니라 로짓을 맞추는 것. 낮은 TT 에서는 교사가 확률을 거의 0으로 준 클래스가 손실에 기여하지 않지만, 높은 TT 에서는 그 클래스들의 로짓까지 학생이 따라간다. TT 는 결국 “교사가 확신 없이 흘린 정보를 얼마나 진지하게 받을 것인가” 의 손잡이다. 교사의 아주 작은 로짓은 노이즈일 수도 있으므로 TT 를 무작정 올리는 게 정답은 아니다.

4. 변종들[편집]

기본형(출력 분포만 맞추기)은 응답 기반(response-based) 증류라 부른다. 여기서 갈라져 나온 계보가 있다.

  • 특징 증류. 출력층 말고 중간 층의 활성값을 맞춘다. FitNets(2015)가 교사의 중간 층을 “힌트”, 학생의 대응 층을 “가이드”로 두고 차원이 다르니 회귀기 하나를 끼워 맞췄다. 어텐션 맵을 맞추는 어텐션 전달, 표본 쌍 사이의 관계(거리·각도)를 맞추는 관계 기반 증류 등으로 확장된다. 학생이 교사보다 얕으면 어느 층을 어디에 대응시킬지가 곧 하이퍼파라미터가 되어 튜닝 부담이 커진다.
  • 자기 증류. 교사와 학생의 구조가 같은 경우. Born-Again Networks(2018)는 학습된 모형을 교사로 삼아 동일 구조를 다시 학습시켰더니 성능이 올라가는 현상을 보고했다. 압축이 목적이 아니므로 이건 사실상 정규화 기법이다. 같은 망의 깊은 층이 얕은 층을 가르치는 층간 자기 증류판도 있다.
  • 앙상블 증류. 여러 모형의 평균 예측을 교사로 쓴다. 원 논문의 주요 동기이기도 했다 — 앙상블은 성능이 좋지만 추론 비용이 NN 배라 배포가 안 되니, 그 예측 분포를 단일 모형에 밀어 넣는다. 앙상블의 불확실성 다양성은 평균 내는 순간 사라지므로, 그것까지 옮기려면 학생이 분포의 분포를 출력해야 한다.
  • 온라인·상호 증류. 교사를 먼저 학습시키지 않고 여러 학생을 동시에 학습시키며 서로의 출력을 표적으로 삼는다. 2단계 파이프라인이 사라져 편하다.
  • 데이터 없는 증류. 원본 데이터에 접근할 수 없을 때(개인정보·라이선스), 교사를 속이는 합성 입력을 생성해 그걸로 증류한다. 성능은 원본 데이터 대비 확실히 떨어지지만 “모형은 받았는데 데이터는 못 받는” 산업 현장에서 수요가 있다.

5. 다른 압축 기법과의 관계[편집]

기법줄이는 대상구조 변화하드웨어 이득
지식 증류층 수·폭 (사람이 설계)완전히 다른 망항상, 그리고 예측 가능
가지치기개별 가중치·채널희소화 또는 채널 축소비정형 희소는 실속 적음, 구조적 가지치기는 확실
양자화수치 정밀도 (FP32 → INT8/INT4)없음메모리·대역폭에서 즉효
저계수 분해가중치 행렬의 계수큰 층을 두 개로 쪼갬계수 감소분만큼

핵심은 이들이 경쟁 관계가 아니라는 것이다. 증류로 작은 망을 뽑고, 그 망을 구조적으로 가지치기하고, 최종적으로 INT8로 신경망 양자화해 배포하는 것이 실무 파이프라인의 표준 코스다. 증류가 특별한 이유는 다른 셋과 달리 학생의 구조를 자유롭게 정할 수 있다는 점이다. 교사가 트랜스포머여도 학생은 합성곱 신경망일 수 있고, 실제로 대형 언어모형의 지식을 훨씬 작은 아키텍처로 옮기는 작업이 이 자유도 위에서 이루어진다. 관측 대비 표현을 압축한다는 점에서 벡터 양자화와 목적이 겹쳐 보이지만, 그쪽은 데이터를 코드북으로 줄이고 증류는 함수를 줄인다.

6. 왜 되는가, 그리고 정말 되는가[편집]

설명은 여러 갈래로 제시돼 있고 어느 것도 완결되지 않았다.

  • 정규화 관점. 소프트 타깃은 클래스별로 다른 강도의 라벨 평활화처럼 작동해 학생의 과신을 막는다. 다만 균등 평활화와 달리 클래스 간 유사도 구조를 담고 있어 더 낫다는 것이 통설이다. 재미있게도 교사를 라벨 평활화로 학습시키면 증류 성능이 나빠진다는 보고가 있는데, 평활화가 교사의 표현에서 클래스 간 상대 거리 정보를 지워 버리기 때문이라는 해석이다.
  • 기울기 재가중 관점. 소프트 타깃은 표본별로 손실의 크기를 조절한다. 교사가 확신하는 쉬운 표본은 기울기가 작고, 헷갈리는 표본은 크다. 일종의 자동 커리큘럼이다.
  • 최적화 관점. 학생 혼자서는 도달하기 어려운 해로 가는 경로를 교사가 안내한다는 시각.

그런데 여기에 찬물을 끼얹는 결과도 있다. 학생이 훈련 데이터에서조차 교사의 예측을 제대로 재현하지 못하는 경우가 흔하다는 실증 연구가 나왔다. 즉 실패의 원인이 “학생 용량이 부족해서”가 아니라 최적화가 거기까지 못 가서라는 것이다. 증류가 얼마나 성공했는지를 재는 지표(교사-학생 일치도)와 우리가 실제로 원하는 것(시험 정확도)이 서로 다르게 움직인다는 관측은 이 분야의 열린 문제로 남아 있다. “증류하면 웬만하면 몇 % 오른다”는 경험칙은 견고한데, 그 이유에 대한 설명은 아직 검증 및 확인 기준을 통과하지 못했다는 뜻이다.2

7. 시뮬레이션 쪽에서의 쓰임[편집]

CAE 바닥에서 증류가 등장하는 지점은 대개 대리 모델의 2차 압축이다. 고충실도 해석 결과로 학습한 무거운 신경망 대리 모델을 실시간 루프(HIL, 최적화 내부 반복, 임베디드 제어기)에 넣으려면 추론 비용을 한 자릿수 이상 줄여야 하는데, 이때 원본 데이터로 작은 망을 다시 학습시키는 것보다 큰 망을 교사로 증류하는 쪽이 대체로 낫다. 이유는 단순하다 — 교사는 원본 해석 데이터보다 훨씬 촘촘한 표본을 공짜로 만들어 줄 수 있다. 해석 한 번에 수 시간이 걸리는 데이터셋에서 표본 수가 곧 병목이라면, 교사를 무한 오라클로 쓰는 이 구조는 성능이 아니라 예산의 문제를 푼다.

주의점도 같은 자리에서 나온다. 교사가 물리적으로 틀린 곳에서 학생은 더 틀린다. 증류는 오차를 줄이는 기법이 아니라 교사를 신뢰한다는 전제 위에서 비용을 줄이는 기법이고, 물리 정보 신경망처럼 지배방정식 잔차를 손실에 넣어 두지 않는 한 학생은 교사의 편향을 그대로 상속한다. 외삽 영역에서는 특히 그렇다.3

8. 관련 문서[편집]

9. Footnotes[편집]

  1. 이 작명 덕분에 “우리 모델에는 다크 매터가 있습니다” 같은 발표 슬라이드가 한동안 유행했다. 실제로는 그냥 소프트맥스 꼬리 확률이다. 이 바닥에서 좋은 이름은 인용 수를 두 배로 만든다는 속설의 대표 사례.

  2. 대형 언어모형 압축의 대표 사례로 인용되는 DistilBERT(2019)는 층 수를 절반으로 줄여 파라미터 약 40% 감소, 추론 속도 약 60% 향상에 GLUE 성능 97% 유지를 보고했다. 숫자가 인상적이긴 한데, 벤치마크가 바뀌면 유지율도 바뀐다는 점은 늘 그렇듯 각주에만 적힌다.

  3. “학생이 교사보다 좋아졌는데요?”라는 보고가 가끔 나오는데, 대개 (가) 교사가 과적합돼 있었거나 (나) 증류의 정규화 효과가 학생의 일반화를 도왔거나 (다) 시험 집합이 작아서다. 셋 다 아닌 경우도 있긴 하지만, 그 결론을 내리기 전에 시드를 다섯 개쯤 더 돌려 보는 것이 정신 건강에 좋다.