지식 증류 (Knowledge Distillation): 큰 모델의 지능을 작은 모델에 담는 법
요약
지식 증류(Knowledge Distillation)의 원리와 방법론을 설명합니다. 거대 모델의 '암흑 지식(dark knowledge)'을 소프트 라벨을 통해 작은 모델에 전달하여, 성능 저하를 최소화하면서 비용과 지연 시간을 줄이는 기술을 다룹니다.
핵심 포인트
- 하드 라벨 대신 소프트 라벨을 사용하여 클래스 간 관계 정보를 학습함
- 온도(Temperature) 파라미터를 통해 확률 분포를 평탄하게 만들어 정보를 추출함
- 교사 모델의 확률 분포를 학생 모델이 모방하도록 학습하여 효율성 극대화
- 모델 경량화를 통해 GPU 비용 절감 및 온디바이스 실행 가능성 확보
🎓 직접 모델을 증류해 보세요 (실제 softmax + 실제 경사 하강법 (gradient descent)): https://dev48v.infy.uk/ai/days/day23-distillation.html
문제점: 큰 모델은 서비스 비용이 많이 듭니다
최첨단 (state-of-the-art) 모델은 수십억 개의 파라미터 (parameters)를 가질 수 있으며, 매 예측마다 이 모든 파라미터를 실행합니다. 이는 높은 지연 시간 (latency), 막대한 GPU 비용, 그리고 브라우저나 휴대폰에서 실행할 가능성이 없음을 의미합니다. 하지만 여러분에게 항상 최고의 모델이 필요한 것은 아닙니다. 여러분에게 필요한 것은 시간과 비용을 훨씬 절감하면서도 성능이 90% 정도 유지되는 무언가입니다. 지식 증류 (Distillation)가 바로 그 목표를 달성하는 방법입니다.
핵심 비결: 하드 라벨 (hard labels)이 아닌 소프트 라벨 (soft labels)로부터 배우기
이것이 작동하게 만드는 통찰력입니다. 일반적인 학습 라벨은 "하드 (hard)"합니다. 예를 들어 개 이미지의 경우, 타겟은 개 = 1, 늑대 = 0, 고양이 = 0입니다. 이 원-핫 벡터 (one-hot vector)는 모델에게 정답을 알려주지만 중요한 정보를 버립니다. 즉, 개가 고양이보다는 늑대와 훨씬 더 닮았다는 사실 말입니다.
이제 큰 교사 모델 (teacher model)이 실제로 출력하는 것을 살펴보겠습니다. 모델의 점수를 softmax에 통과시키면 전체 확률 분포 (probability distribution)를 얻을 수 있습니다:
개 0.70
늑대 0.25
고양이 0.05
최상위 정답이 "개"일지라도, 차점자 확률들은 정보를 담고 있습니다. 개와 늑대는 친척 관계이고, 고양이는 생판 남이라는 정보입니다. Geoffrey Hinton의 팀은 이를 "암흑 지식 (dark knowledge)"이라고 불렀습니다. 이는 오답 클래스의 확률 속에 숨겨진 구조를 의미합니다. 이는 종종 신호에서 가장 가치 있는 부분이지만, 하드 라벨은 이를 완전히 지워버립니다.
온도 (Temperature): 교사의 불확실성을 확대하는 돋보기
한 가지 문제가 있습니다. 확신에 찬 교사의 softmax는 (0.97, 0.02, 0.01)과 같이 뾰족한(spiky) 형태를 띱니다. 그래서 암흑 지식이 학생 모델 (student model)이 거의 배울 수 없을 정도로 아주 작은 숫자로 압축되어 버립니다. 해결책은 온도 (temperature) 조절 노브입니다. softmax를 적용하기 전에 로짓 (logits)을 T로 나눕니다:
softmax(logits / T)
T = 1일 때는 일반적인 뾰족한 (spiky) 출력을 얻게 됩니다. T를 높이면 분포가 평탄해지며, 잘못된 클래스에 대한 작은 확률값들을 사용 가능한 범위로 끌어올립니다. 데모에서 교사 모델 (teacher)의 분포는 T=1일 때 dog 85.8% / wolf 11.6% / cat 2.6%에서 T=10일 때 dog 39.6% / wolf 32.4% / cat 27.9%로 변하며, 엔트로피 (entropy)는 두 배 이상 증가합니다. 지식은 동일하지만, 이제 눈에 보이게 된 것입니다. 학습 과정에서 학생 모델 (student)에도 동일한 T가 적용되어 공정하게 비교될 수 있도록 합니다.
증류 손실 (The distillation loss)
학생 모델은 자신의 부드러워진 분포 (softened distribution)가 교사 모델의 분포와 일치하도록 학습됩니다. 자연스러운 측정 지표는 KL 발산 (KL divergence)이며, 그래디언트 (gradients)를 적절하게 유지하기 위해 T²로 스케일링합니다. 보통 학생 모델이 실제 정답 (ground truth)에 고정될 수 있도록 실제 라벨에 대한 일반적인 교차 엔트로피 (cross-entropy)를 약간 혼합하여 사용합니다:
loss = α · KL(teacher ‖ student) · T² + (1 − α) · cross_entropy(hard_label, student)
소프트 항 (soft term)은 학생 모델이 교사 모델을 모방하게 만들고, 하드 항 (hard term)은 교사 모델이 틀렸을 경우를 대비해 학생 모델이 정직함을 유지하게 합니다.
소프트 타겟 (soft targets)이 더 많이 가르치는 이유
하드 라벨 (hard label)은 예제당 단 하나의 피드백 비트, 즉 맞았는지 틀렸는지만을 제공합니다. 반면 소프트 타겟 (soft target)은 모든 클래스에 걸쳐 등급이 매겨진 피드백 벡터 전체를 제공하며, 이는 훨씬 더 밀도 높은 학습 신호 (learning signal)가 됩니다. 이를 통해 학생 모델은 더 빠르게 수렴하고, 더 적은 데이터가 필요하며, 더 부드러운 결정 경계 (decision boundaries)를 학습합니다.
데모에서는 2차원 점들에 대해 실제 경사 하강법 (gradient descent)으로 학습된 아주 작은 softmax 분류기를 통해 이를 구체적으로 보여줍니다. 교사의 **소프트 타겟 (soft targets)**으로 학습시키면 100% 정확도를 달성할 뿐만 아니라, 전체 분포가 교사와 일치하게 됩니다 (100% 일치 — 즉, 암묵적 지식 (dark knowledge)을 상속받은 것입니다). 반면 하드 라벨 (hard labels)로만 학습시키면 여전히 100% 정확도를 얻을 수는 있지만, 교사와의 일치도는 71%에 머뭅니다. 즉, 정답은 배웠지만 뉘앙스는 배우지 못한 것입니다. 동일한 작은 모델임에도 불구하고, 추가 비용 없이 더 많은 지식이 전달되었습니다.
보상, 그리고 한계 (The payoff, and the limits)
잘 증류된 학생 모델 (student model)은 훨씬 더 작고 빠르면서도 교사 모델 (teacher model)의 정확도를 대부분 유지합니다. 유명한 사례인 DistilBERT는 BERT 성능의 약 97%를 유지하면서도 크기는 약 40% 더 작고 속도는 약 60% 더 빨랐습니다. TinyBERT, DistilGPT2, 모바일 비전 모델 (mobile vision models), 그리고 프런티어 LLM (frontier LLMs)의 "mini" 또는 "flash" 티어들은 모두 이 아이디어에 의존합니다.
하지만 한계에 대해서는 솔직해져야 합니다. 학생 모델은 교사 모델을 능가할 수 없으며, 교사 모델의 편향 (biases)과 실수를 물려받고, 너무 과하게 축소하면 품질이 붕괴됩니다. 증류 (Distillation)는 지식을 압축하는 것이지, 지식을 창조하는 것이 아닙니다.
🔨 교사 모델의 소프트 라벨 (soft labels), 온도 조절 슬라이더 (temperature slider), 그리고 실제 경사 하강법 (gradient descent)으로 훈련된 학생 모델로 이어지는 전체 루프는 다음 페이지에서 실행됩니다: https://dev48v.infy.uk/ai/days/day23-distillation.html
AIFromZero의 일부입니다. 🌐 https://dev48v.infy.uk
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기