← AI 용어집

AI 용어집 · 심화 · 효율·인프라

Distillation 지식 증류, Knowledge distillation

Distillation(지식 증류)은 크고 성능 좋은 Teacher 모델의 답을 본보기로 삼아, 더 작고 빠른 Student 모델이 비슷한 성능을 내도록 학습시키는 방법이다.

쉽게 말하면 경험 많은 선배가 풀이 과정과 ‘이 답일 확률이 높고, 저 답도 조금은 그럴듯하다’는 감각까지 알려 주면, 후배는 교과서만 볼 때보다 훨씬 빨리 실력을 키운다. 다만 후배가 선배를 그대로 따라 하므로 선배의 실수까지 배울 수 있다.

어떻게 작동하나

먼저 크고 정확한 Teacher 모델을 준비하고, 같은 입력을 Teacher와 Student 모델에 함께 넣는다. Teacher가 내놓은 답, 또는 각 답이 정답일 확률 분포를 Student가 따라 하도록 둘의 차이를 줄이는 방향으로 Student를 학습시킨다. 정답 하나만 보는 것보다 ‘다른 답은 얼마나 그럴듯한지’까지 담긴 Teacher의 확률을 보면 Student가 더 많은 것을 배울 수 있다. 언어 모델에서는 Teacher가 생성한 답변이나 풀이를 학습 데이터로 쓰는 방식도 흔하다. Student가 직접 만든 답에 Teacher가 피드백을 주는 On-policy Distillation 같은 변형도 연구되고 있다.

Teacher에서 Student로입력 데이터 → Teacher 모델; 입력 데이터 → Student 모델; Teacher 모델 → Teacher의 답; Student 모델 → Student의 답; Teacher의 답 → 차이 줄이기(본보기); Student의 답 → 차이 줄이기; 차이 줄이기 → Student 모델(업데이트)입력 데이터Teacher 모델크고 정확함Teacher의 답답·확률 분포Student 모델작고 빠름Student의 답차이 줄이기본보기업데이트
Teacher에서 Student로 같은 입력을 두 모델에 넣고, Student의 답이 Teacher의 답에 가까워지도록 차이를 줄이는 쪽으로 Student만 업데이트한다.

왜 중요한가

큰 모델은 성능이 좋지만 실행 비용이 크고 느려서, 스마트폰이나 실시간 서비스에 그대로 쓰기 어렵다. Distillation을 쓰면 작은 모델이 큰 모델의 능력을 상당 부분 물려받아 더 싸고 빠르게 쓸 수 있다. 그래서 SLM(소형 언어 모델)과 온디바이스 AI를 만드는 핵심 기법으로 쓰인다. 디퓨전 모델에서는 여러 단계에 걸친 생성 과정을 적은 단계로 줄이는 데도 활용된다.

알아 둘 점

Student는 대체로 Teacher를 넘어서기 어렵고, Teacher의 오류나 편향도 함께 물려받을 수 있다. 두 모델의 토크나이저(글을 토큰으로 나누는 방식)가 다르면 답을 토큰 단위로 맞대어 비교하기 어려워 별도의 처리가 필요하다. 다른 회사 모델의 출력을 Distill하는 일은 이용 약관 위반 논란이 될 수 있어 주의해야 한다. 양자화·가지치기처럼 모델을 작게 만드는 다른 기법과 함께 쓰이는 경우가 많다.

예시

이 사이트에서 다룬 Paradee 소식이 좋은 예다. 이미 공개된 음성 합성 모델 Kokoro-82M을 Teacher로 삼아, 한 사람의 목소리만 내는 8M 파라미터 크기의 작은 TTS 모델로 Distill했다는 내용이다. 이처럼 큰 모델의 능력을 작은 모델에 옮기면 기기 안에서 직접 돌리거나 서비스 비용을 낮출 수 있어, 여러 회사가 자사 대형 모델의 작은 버전을 만들 때 이 방법을 활용한다.

이 사이트에서 나온 사례

함께 보면 좋은 용어