NLP에서 경량화를 시도하려는 연구들 알아보기

1. trend

 

GPT,BERT,ELECTRA 등의 괴물 모델은 size를 키우면서 압도적인 성능을 냈지만 pre-training 시키는데만 많은 계산량, GPU resource 등이 너무 많이 필요하다.

 

그래서 일반인들이 다양한 연구나 현업에서 사용하기에는 쉽지 않다.

 

기존의 큰 모델의 성능을 거의 유지하면서도 계산속도나 메모리 사용량에서 개선시키는데 초점을 두어 경량화 연구가 진행되고 있다.

 

심지어 소형 device 휴대폰에도 모델을 돌릴 수있게 만든다고????

 

 

2. knowledge distillation

 

https://arxiv.org/pdf/1503.02531.pdf

 

https://light-tree.tistory.com/196

 

딥러닝 용어 정리, Knowledge distillation 설명과 이해

이 글은 제가 공부한 내용을 정리하는 글입니다. 따라서 잘못된 내용이 있을 수도 있습니다. 잘못된 내용을 발견하신다면 리플로 알려주시길 부탁드립니다. 감사합니다. Knowledge distillation 이란?

light-tree.tistory.com

 

 

“Distilling the Knowledge in a Neural Network”에서 처음으로 제시된 개념

 

the knowledge acquired by a large ensemble of models can be transferred to a single small model.

 

큰 모형에서 얻은 지식을 다른 작은 모형에 전이시키겠다는 개념이다.

 

 

3. DistillBERT

 

transformer의 구현체를 다양한 library로 제공하는 huggingface에서 2019 NeurIPS에 발표했다.

 

(full) teacher model과 (small) student model을 생각하였다. 당연하지만 student model이 teacher model에 비해 parameter 측면에서 수가 더 작은 경량화된 모델이다.

 

teacher model에서 student model을 가르쳐서 student model이 teacher model의 task 수행능력을 제대로 따라하도록 만드는 방법을 제안했다.

 

teacher model이 masked language modeling을 수행할 시 mask 단어 예측을 위한 input word embedding vector의 최종 encoding vector의 softmax probability distribution이 나올 것이다.

 

비슷하게 student model에서도 동일한 masked language modeling을 수행할 것인데 거기서 나오는 softmax probability distribution이 있을 것이다.

 

당연하지만 예측을 위한 ground truth probability가 있을텐데 teacher model이 구한 softmax probability distribution을 ground truth로 사용하여

 

student model의 probability distribution과의 distillation loss를 최소화하는 방향으로 학습하겠다는 것이다.

 

그러면서 자연스럽게 teacher의 행동을 따라하리라 기대하는 것이다.

 

직관적으로 DistillBERT의 원리를 설명하는 그림

 

4. TinyBERT

 

이전에 DistillBERT가 Teacher model의 softmax probability distribution만을 student model의 softmax probability distribution의 ground truth로 사용하였다면

 

teacher model의 embedding layer matrix, self attention matrix, hidden vector등의 중간 결과물도 모두 student model이 따라하게 만드는 것이다.

 

그런데 여기서 드는 의문은 student model은 기본적으로 parameter가 teacher model에 비해 적어서 hidden vector의 차원이 당연히 적을 확률이 높다. 그런데도 teacher model을 따라할수있다고?

 

그래서 teacher의 hidden vector를 student model의 hidden vector와 동일하게 차원을 가지도록 만들기 위해 

 

fully connected layer에 넣어서 차원을 줄인 뒤에 얻은 hidden vector와 student model의 hidden vector를 MSEloss를 이용해 최소화하는 방향으로 학습을 진행한다고 한다.

 

TinyBERT에서 hidden vector를 student가 어떻게 따라할수 있는지 원리를 설명

 

 

5. knowledge graph

 

연구자들이 BERT가 실제로 언어적 특성을 잘 파악하는지 연구했다.

 

문맥을 파악하여 단어들간 유사관계는 잘 보는데 주어진 문장에 포함되어있지 않은 추가적인 정보가 필요한 경우 그것을 활용하는 능력은 떨어진다고 지적했다.

 

‘땅을 팠다’ 라는 상황이 주어지고 Question으로 땅을 무슨 도구로 팠냐?라고 물어본다고 해보자.

 

당연히 이 상황에서 도구에 관한 정보는 주어지지 않았다. 그래서 추가적인 정보로 외부에서 꽃을 심기위해 팠다라는 상황과 집을 짓기위해 팠다라는 상황을 제시했다.

 

이럴때 BERT는 2가지 상황이 주어지더라도 질문에 대답을 잘 못하는 반면 사람은 그냥 답을 할수있다.

 

왜냐하면 사람은 추가적인 외부정보에 대해서도 꽃에는 일종의 모종삽, 집에는 포크레인같은 굴착기로 판다는, 이미 알고 있는 기본적인 지식이 있기 때문이다. 이것을 Knowledge graph라고 부른다.

 

글씨가 좀;; 너무 심한데?

 

그래서 이 세상에 존재하는 다양한 객체의 개념과 관계를 잘 정의한 knowledge graph를 잘 정의하고 language model에게 주입하여 이러한 약점을 해결하고자하는 방식으로 연구가 진행되고 있다.

TAGS.

Comments