About Quantization(Ⅱ) for PAIS.pdf

Quantization

quantization은 model compression 방법 중 하나로 모델의 파라미터를 lower bit로 표현함으로서 계산과 메모리 access 속도를 높이는 경량화 기법이다. 좀 더 쉽게 말해 보통 32bit float 형태로 표현되는 parameter들을 8bit,4bit,… 등 적은 비트를 사용해 int형으로 표현할 수 있도록 변환하는 것이다.

앞서 model parameter 를 quantization한다고 하였는데 model parameter는 크게 3가지로 나눌 수 있다. weight, activations, gradients가 그 3가지 종류이다.

Untitled

여기서 activations는 activate function을 통과한 값으로 기본적인 neural network 구조의 한 layer에서 weight과 곱해질 값을 의미한다. 위 표를 보면 알 수 있듯이, 각 종류마다 quantization 시 명확한 장점, 단점을 지니고 있으며 현재 대부분 연구에서 quantization하는 대상은 weight과 activation뿐이다. gradients는 수의 분포가 굉장히 넓고 훈련 시 수렴하지 않는 경우가 많아 quantization 적용 대상이 아니다.

model compression을 다루는 논문들의 경우 제안하는 알고리즘이 뛰어남을 보이기 위해 여러 가지 실험 결과 지표를 보인다. 자신들의 알고리즘이 뛰어난 부분을 보여주는 결과 지표를 사용하거나 만들어 논문에 서술하는 반면, 결점을 보여주는 결과 지표는 생략하는 경우도 많다.

model compression 기술 방식에 따라 결과 지표는 다르긴 하나 대체적으로 반드시 보여야 하는 결과 지표는 다음과 같다.

-Memory foot-print size:

프로그램을 실행하는 동안 메인 메모리에 접근하거나 사용한 총량으로 작을 수록 좋다.

-Inference time:

추론 시간이 짧아질 수록 좋다.

-Accuracy -vs. Flops

-Accuracy -vs.inference time