대형언어모델 시장에서 Quantization은 중요한 기술로 자리잡았다.
LLM은 크기가 클수록 더 많은 계산자원이 필요해진다. 즉 큰 LLM을 다루려면 비싼 장비(GPU 등)가 필요하다는 이야기다.
예를 들면 1B 파라미터 모델의 가중치를 저장만 하려해도 4GB가 필요하고 훈련을 진행하려면 Adam 옵티마이저 두개(8바이트), 그라디언트(4바이트), 활성화 함수(4바이트), 임시 변수(8바이트) 등 추가적으로 연산이 필요하게되고, 총 80GB가 필요해진다. 80GB는 A100 GPU의 메모리 용량이고 A100은 3000만원이다.. 따라서 우리는 메모리를 최소화 시키며 성능은 유지시켜야 한다.
👇광고 아님 
이런 메모리가 제한된 상황에서 양자화는 모델의 성능을 유지하며 계산 자원을 절약할수 있는 방법이다. 모델의 가중치를 낮은 비트로 저장해서 필요한 메모리를 감소시키는 것이 핵심 아이디어이다. 이는 모델 크기를 줄이고 메모리 사용량을 감소시켜 효율적으로 배포 및 실행을 가능하게 한다.
즉 모델의 성능을 최대한 보존하면서 모델의 크기를 줄이고 계산 비용을 낮추기 위한 기술이다.
물론 단점도 있다.
Dynamic Quantization(동적 양자화) - LSTM/RNN/BERT/Transformer
가중치는 미리 양자화 되지만, 활성화는 inference 동안 동적으로 양자화가 됨
Static Quantization(정적 양자화) - CNN
Post Training Quantization 또는 PTQ라고 불림
학습된 모델을 quantization 하는 Post Training Quantization
Traning한 후에 양자화를 적용하는 기법
파라미터 size 큰 모델에서 정확도 하락 폭이 작음
→ 파라미터 size 작은 소형 모델에서는 적합하지 않음
Quantization aware training(양자화 인식 교육) - CNN
training 시점에서 양자화가 됐을 때 loss가 어떻게 될 지 시뮬레이션을 같이 돌린다