[Lightweight-Sereis] 0. Intro
1. Lightweight Deep Learning
- Computer Vision, LLM 등의 분야는 높은 성능을 보여주나, 한계점을 지니고 있음.
- 막대한 연산 자원
- Paramerts가 수입억 ~ 수천억 -> Train & Inference를 위한 Computational Cost가 매우 多.
- 모바일 및 Edge Device에서의 제약
- IoT 환경 혹은 모바일 Device에서 실행이 어려움.
- 실시간 처리의 한계
- 자율주행, 실시간 번역 등 응답속도가 중요한 실시간 처리의 경우 Latency가 느리다면 실용성이 떨어짐.
- 막대한 연산 자원
- 해당 분야가 아니더라도, 가지고 있는 H/W의 사양에 따라 탑재할 수 있는 모델은 제한적.
어떻게 해결할 수 있을까?
2. Lightweight Method
- 이를 해결하기 위한 Neural Network의 Cost & Size를 줄이는 방법
- 종류
- Pruning
- Connect 된 Network를 잘라 Computational Cost를 줄이는 방식
- Quantization
- floating-point의 Weight를 integer로 변환하여 Cost와 Memory를 줄이는 방식
- Knowledge Distillation
- Teacher Network(Pre-Traiend)의 지식을 Student Network의 전달하며 Train 시키는 Method.
- 즉, 더 큰 Network와 Smaller Network의 Loss의 차이를 학습시켜 Smaller Network의 성능을 향상시키는 학습 방법.
- Low-Rank Adaptation
- M X N 크기의 Weight Matrix를 M X K, K X N의 저차원 행렬로 분해하여 학습시킨 후, 복원하는 방식.
- Framework
- onnx, TensorRT 등 가속 Framework를 활용
- Pruning
이번 Sereis는 이러한 Lightweight Deep Learning 기법들을 분석하고 적용해보는 과정.
댓글남기기