끄적/모델 최적화 및 경량화

KD 1 : 지식 증류의 개념

uvumbu 2024. 12. 26. 14:00

다른 모델로부터 지식을 추출해서 전달하는 지식 증류 기법에 대해 알아보자.

 

 

정의

고성능을 보이는 교사 모델에게 지식을 전달받아서 학생 모델을 학습시키는 기법이다.

 

  • 학생 모델 : 교사 모델보다 상대적으로 작고, 성능이 떨어진다.
  • 교사 모델 : 학생 모델보다 상대적으로 크고, 성능이 잘 나온다.

우리는 두 모델의 장점을 전부 갖고 싶다.

따라서 학생 모델에게 지식을 전달해서 작은 모델이지만 성능은 우수한 결과를 얻을 것이다.

 

 

분류

우리가 학생 모델에게 전달해주고 싶은 지식에 따라 종류가 나뉜다.

 

  • Response - based
    • 입력을 줬을 때, 교사 모델이 갖고 있는 Response들(Logit, Output)을 지식으로 활용하는 것
    • Logit - based :  Teacher의 Logit 을 사용 
    • Output - based : Teacher의 output을 사용 
  • Feature - based
    • 교사 모델이 갖고 있는 내부적인 representation/embedding을 지식으로 활용하는 것

 

교사 모델이 얼마나 투명한 상태냐에 따라서 연관성이 있다.

즉, 모델 내부로의 접근 정도가 어느정도냐에 따라서 나뉘는 것이다.

 

Transparency: 모델 내부 구조 및 파라미터 열람 가능 여부에 따른 분류

  • White box : 교사 모델의 내부의 모든 정보에 대한 접근이 가능한 경우(메타에서 공개한 LLama)
  • Gray box : 교사 모델의 Output 및 최종 Logit값, 혹은 제한된 정보를  알 수 있는 경우
  • Black box : 교사 모델의 내부로 접근할 수 없는, Output만 알 수 있는 경우 (Chat GPT같은 경우)

 

 

 

 

 

 

'끄적 > 모델 최적화 및 경량화' 카테고리의 다른 글

KD 3 : Feature - based KD  (0) 2024.12.26
KD 2 : Logit based KD  (0) 2024.12.26
Pruning 3 : 적용사례 (CNN, BERT)  (1) 2024.12.26
Pruning 사전 지식  (0) 2024.12.26
Pruning 예시 ( IMP 동작 방식 )  (0) 2024.12.23