[Introduction]
이번 포스팅에서는 model compression에 대해서 알아보겠습니다. Model compression은 기존에 구현된 기계학습 모델을 압축하여 최적화된 모델을 생성하는 기술입니다. 최근 컴퓨터가 스스로 학습하는 기계학습은 딥러닝의 발전에 따라 더 깊고 더 큰 모델로 개발되어 엄청난 컴퓨팅 자원이 필요하게 되었습니다. Google의 BERT, OpenAI의 GPT-3, ChatGPT, kakaobrain의 KoGPT와 같은 자연어처리 모델들과 OpenA의 DALL-E, Google의 Imagen, LG research의 EXAONE과 같은 멀티모달 모델들은 110M에서 175B 파라미터에 달해 초거대 AI 모델들로 발전하였습니다. 이에 따라 자율주행, 보안 CCTV, IoT와 같은 임베디드 시스템 환경이 필요한 곳에서 최적화된 모델의 필요성이 증대되었습니다. 이러한 모델 최적화 기술 중 딥러닝 모델을 작은 크기의 모델로 압축하는 model compression에 대해 소개 드리려 합니다.
[Technique of anomaly detection]
Pruning
Pruning 기법은 가지치기 기법으로 일반적으로 neural network의 필요치 않거나 중요도가 떨어지는 synapse 또는 neuron 들을 삭제하는 방법으로 모델을 최적화하는 기법입니다. 이러한 pruning 기법은 메모리 크기와 대역폭 감소 모두에 중요한 기술로 1990년대 초, 재교육 없이 훈련된 대규모 네트워크를 더 작은 네트워크로 줄이기 위해 가지치기 기술이 개발되었습니다. 이를 통해 임베디드 시스템과 같은 제한된 환경에 neural network를 적용할 수 있었습니다.
Network pruning은 결과의 정확성에 크게 기여하지 않는 중복 parameter 또는 neuron을 제거합니다 [그림 1]. 이 조건은 weight coefficients가 0 이거나 0 에 가깝거나 반복될 때 발생할 수 있습니다. 결과적으로 pruning 기법은 계산 복잡성을 감소시키며 제거된 네트워크가 재 학습되면 이전의 local minimum에서 벗어날 수 있는 가능성을 제공하고 정확도를 더욱 향상시킬 수 있습니다[1].
