개요
Knowledge Distillation은 큰 모델이나 여러 모델이 가진 지식을 더 작은 모델에 전달해 계산 비용을 낮추면서 성능을 유지하려는 모델 압축 접근법이다. 대표 연구는 큰 teacher 모델의 부드러운 출력 확률을 student 모델의 학습 신호로 사용하는 방법을 정리했다.[1]
왜 사용하는가
대형 신경망이나 Foundation Model은 높은 성능을 낼 수 있지만 배포 비용이 크다. Distillation은 더 작은 모델이 teacher의 출력 패턴을 학습하도록 해 크기·지연·비용을 줄이는 방향으로 사용될 수 있다.
다른 압축과의 차이
Quantization이 주로 숫자 표현의 정밀도를 낮추는 접근이라면, Knowledge Distillation은 별도의 student 모델을 학습시키는 과정에 초점을 둔다. 두 방법은 목적이 겹치지만 서로 배타적이지 않다.
확률 예제: 정답 라벨과 부드러운 표적의 차이
원 지식 증류 연구 ↗는 teacher의 출력 분포를 student의 학습에 전달하는 접근을 설명한다.[1] 두 가상 클래스에서 단일 정답 라벨은 (1, 0)이지만 teacher가 만든 표적은 (0.8, 0.2)일 수 있다. 이 값은 다른 후보 사이의 관계를 전달하지만 검증된 사실 확률이라는 뜻은 아니다.
가상 logits가 ln(4), 0이면 온도 T = 1의 softmax는 (4/5, 1/5)다. 같은 logits를 T = 2로 나누면 지수값 2, 1이 되어 (2/3, 1/3)로 부드러워진다. 온도와 손실·가중치 설정을 같이 남기고, 학습용 분포와 배포 때의 판정을 구분한다. student 학습은 파일의 숫자 정밀도만 줄이는 양자화와 다른 개입이다.
계산 예제: 일치율 92%라도 정확도는 다르다
가상의 이진 분류 50문항에서 teacher·student 모두 정답인 것이 37개, teacher만 정답 3개, student만 정답 1개, 둘 다 같은 오답 9개라고 하자. 두 모델의 예측 일치율은 (37 + 9) / 50 = 92%다. teacher 정확도는 40 / 50 = 80%, student 정확도는 38 / 50 = 76%다.
같은 답 46개에는 같은 오답 9개도 들어 있다. 일치율을 사실 정확도로 읽거나 높은 모방 성과만으로 student의 업무 품질을 확정하지 않는다. 중요한 클래스, 한국어·영어, 긴 입력과 근거 없는 출력을 따로 평가한다. teacher가 틀린 항목과 student가 새로 틀린 항목도 구분한다.
teacher 출력으로 자료를 만들 때 남길 기록
원 질문·정답·teacher 버전·프롬프트·출력과 검토 상태를 연결하고, 사람이 확인한 라벨과 생성한 표적을 구분한다. 같은 질문 계열의 변형이 학습과 평가 양쪽에 들어가면 중복과 평가 누수가 생길 수 있다. teacher가 만든 답변을 모두 정답으로 승인하지 않는다.
허용된 자료 범위와 이용 조건을 확인하고 민감한 실제 기록 대신 목적에 맞는 검토된 자료를 사용한다. 자료 출처가 불명확한 결과는 미확인으로 남긴다. teacher의 이름이나 공개 접근 가능성만으로 student의 품질·사용 조건을 추정하지 않는다. 모델 문서에 출처, 검토 방식과 남은 오류를 연결한다.
압축 이득을 실제 배포 조건에서 확인하기
DistilBERT 연구 ↗는 BERT 계열의 사전학습 단계에서 증류와 여러 학습 손실을 결합한 사례다.[2] 그 논문의 압축·속도·평가 결과를 모든 student 모델이나 현재 장치에 적용하지 않는다. 구조 변경, 학습 자료와 평가 과제가 결과에 영향을 준다.