지식 증류

1 개요[ | ]

Knowledge Distillation
知識 蒸溜
지식 증류
  • 한 모델의 지식을 다른 모델로 전달하는 방법
  • 서로 다른 머신러닝 모델의 지식을 전하는 기법
  • 신러닝에서 큰 모델(teacher model)로부터 작은 모델(student model)을 학습시키는 방법론
  • 사전학습된 대규모 모델인 '교사 모델'의 학습사항을 더 작은 '학생 모델'로 이전하는 것을 목표로 하는 머신러닝 기술
  • 주된 목표는 큰 모델이 가진 성능을 유지하면서도 더 경량화된 모델을 만드는 것이다. 이를 통해 작은 모델이 대규모 데이터나 복잡한 연산 자원이 부족한 환경에서도 효율적으로 사용할 수 있게 된다.
딥러닝에서 모델 압축 및 지식 전달의 한 형태로 사용되며, 특히 대규모 심층신경망에 사용된다.
  • 이 방법은 원래 큰 모델에서 작은 모델로 지식을 이전하는 데 사용되었지만, 최근에는 다른 유형의 모델 간에도 사용되고 있다.
예를 들어, 이미지 분류 작업을 수행하는 CNN 모델을 MobileNetV2와 같은 경량화 된 모델로 이전할 수 있다.
  • 여러 모델의 지식을 통합하는 데도 사용될 수 있다. 여러 개의 교사 모델을 사용하고 각각의 출력을 결합하여 학생 모델에게 제공하는 방식으로 작동한다. 이러한 방법을 멀티 교사 지식 증류라고도 한다.
  • LLM의 등장으로 지식 증류는 종종 독점적인 대규모 모델의 고급 기능을 소규모의 오픈 소스 모델로 이전하는 중요한 수단으로 부상했다. 이에 따라 생성형 AI 대중화에 중요한 도구가 되었다.
  • 지식 증류는 특히 딥러닝 분야에서 널리 사용되며, 모바일 장치나 IoT 디바이스 등 자원이 한정된 환경에서 고성능 모델을 활용할 때 유용하다.

2 과정[ | ]

지식 증류는 일반적으로 두 단계로 이루어진다.

  • 첫 번째 단계에서는 "교사" 모델이 훈련되어 원래의 데이터를 예측한다. 교사 모델은 일반적으로 크고 복잡한 모델이다.
  • 두 번째 단계에서는 "학생" 모델이 훈련되어 교사 모델의 출력을 모방하려고 한다. 학생 모델은 일반적으로 작고 간단한 모델이다.

학생 모델은 교사 모델의 출력을 가능한 정확하게 모방하면서 원본 데이터에 대해 잘 수행하도록 훈련된다. 이렇게 하면 학생 모델이 교사 모델의 지식을 흡수하게 된다.

3 장점[ | ]

  • 모델 경량화: 작은 모델이 큰 모델에 가까운 성능을 유지하면서도 연산 자원과 메모리 사용을 줄일 수 있다.
  • 성능 유지: 학습 시간이 단축되고, 작은 모델도 복잡한 패턴을 학습할 수 있어 성능이 유지된다.
  • 추론 속도 개선: 모델 크기가 작아지면서 추론 속도가 빨라지므로 실시간 시스템이나 리소스 제한 환경에서 유리하다.

4 같이 보기[ | ]

5 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}