최근(2023.06)에 나온 논문을 읽어보고 간단히 정리했습니다.
혹시 부족하거나 잘못된 내용이 있다면 댓글 부탁드립니다 🙇♂️
[Google DeepMind]
Generalized Knowledge Distillation(GKD)을 통해 기존 distillation이 마주한 한계를 극복.
summarization, machine translation, arithmetic reasoning task로 검증
LLM이 가지는 능력을 사이즈가 작은 모델도 지닐 수 있도록 확률 분포 자체를 모방하듯이 학습하는 방식을 Knowledge Distillation(KD)이라고 부릅니다.
그러나 이 방식이 완벽한 것은 아니어서, ‘학습 시 배운 분포와 실제 생성하는 output 간에 괴리’가 존재하기도 하고 ‘student 모델이 teacher의 분포를 모두 학습할 능력이 부족’한 문제 등이 존재합니다.
본 논문에서는 이러한 문제점을 해결하기 위해, ‘학습 동안 student로부터 output sequence를 sampling’하고 ‘divergence를 최적화하는 reverse KL’ 등을 적용하는 Generalized Knowledge Distillation(GKD)를 제시합니다.
원래 KL divergence는 두 확률 분포 P와 Q에 symmetric하지 않다는 특징을 지니므로, 일반적인 수식을 forward KL이라고 한다면 그 반대를 reverse KL이라고 하는 것이죠.
따라서 두 KL을 최소화하는 것을 objective로 삼게 됩니다.
이렇게 하는 이유는 특정한 조건에는 KL divergence의 값이 무한대로 발산할 수도 있기 때문인데, 이런 내용은 논문에 포함된 수식과 함께 보는 것이 도움이 될 것 같습니다.
한가지 더 독특한 특징을 언급하자면 scalability입니다.
GDK에 사용되는 데이터셋의 크기를 점점 키우면서 실험해본 결과, 수 배의 성능 개선이 이뤄지는 결과가 나타났습니다.
그래서 굉장히 아이러니하게도 작은 모델, 적은 데이터로 LLM을 inherit 하고자 했지만, 다시 또 사이즈를 키우는 것이 좋은 결과로 이어진다는 결론이 나옵니다.
(물론 기존의 teacher model만큼 엄청나게 키우는 것은 아니지만요)