양자화 (Quantization)

컴퓨터과학·AI
한 줄 정의: 모델의 가중치나 연산 값을 32비트 실수 대신 8비트, 4비트 등 더 적은 비트 수로 표현해서, 모델의 크기와 연산량을 줄이는 기법입니다.

쉽게 풀면

고화질 사진을 그대로 저장하면 용량이 크지만, 화질을 약간 낮춰 압축하면 파일 크기가 확 줄어들면서도 눈으로 보기에는 큰 차이가 없는 경우가 많습니다. 양자화도 비슷한 원리입니다. AI 모델 안의 수많은 숫자(가중치)는 보통 매우 정밀한 소수(32비트)로 저장되는데, 이를 훨씬 단순한 형태(예: 8비트나 4비트 정수)로 바꾸면 모델 파일 용량이 줄고 계산 속도도 빨라집니다. 정밀도를 약간 희생하는 대신, 더 적은 메모리와 더 빠른 속도로 모델을 돌릴 수 있게 되는 것입니다.

왜 중요한가

대규모 언어모델과 같은 최신 딥러닝 모델은 파라미터 수가 수십억~수천억 개에 달해 메모리와 연산 비용이 실사용의 큰 걸림돌이 됩니다. 양자화는 모델을 재훈련하지 않고도 배포 비용을 크게 줄일 수 있는 실용적인 방법이라, 온디바이스 AI나 엣지 컴퓨팅처럼 자원이 제한된 환경에 모델을 올리려는 연구에서 필수적으로 다뤄집니다. 이 때문에 모델 경량화 분야에서 가지치기(pruning), 지식 증류와 함께 가장 널리 연구되는 축의 하나로 자리잡았습니다.

논문에서는 이렇게 쓰입니다

"제안 방법은 모델을 8비트로 quantization하여 추론 속도를 2.4배 향상시키면서도 정확도 손실은 0.5%p 이내로 유지하였다."

이 문장은 "모델 내부의 값을 8비트로 단순화했더니 계산이 2.4배 빨라졌고, 그 대신 정확도는 아주 조금(0.5%p 이내)만 낮아졌다"는 뜻입니다. 즉 성능 손실을 최소화하면서 모델을 더 가볍고 빠르게 만들었다는 의미입니다.

"훈련 이후 별도의 미세조정 없이 가중치를 4비트로 변환하는 사후 양자화(post-training quantization)를 적용해도 대부분의 벤치마크에서 성능 저하가 미미했다."

훈련이 끝난 모델에 추가 학습 없이 양자화를 적용하는 방식이 실용적으로 충분히 효과적임을 보여주는 예문입니다.

"양자화를 고려한 학습(quantization-aware training)을 적용한 결과, 사후 양자화만 적용했을 때보다 저비트 환경에서 정확도가 더 안정적으로 유지되었다."

훈련 단계에서부터 양자화로 인한 오차를 반영해 학습하면 정밀도 손실을 더 잘 보완할 수 있음을 보여주는 예문입니다.

조금 더 깊게 보면

양자화는 크게 훈련이 끝난 모델에 사후적으로 적용하는 사후 양자화(post-training quantization)와, 학습 과정 자체에 양자화로 인한 오차를 반영하는 양자화 인지 학습(quantization-aware training)으로 나뉘며, 후자가 일반적으로 저비트 환경에서 더 안정적인 성능을 보입니다. 또한 모든 값에 동일한 스케일을 적용하는 균일 양자화(uniform quantization)와, 값의 분포에 맞춰 구간을 다르게 나누는 비균일 양자화가 있으며, 레이어 전체에 하나의 스케일을 쓰는지 채널별로 다른 스케일을 쓰는지에 따라서도 정확도와 연산 효율이 달라집니다.

주의할 점

양자화는 모델 구조 자체를 바꾸지 않고 숫자의 표현 방식만 바꾸는 기법이라는 점에서, 큰 모델의 지식을 작은 모델에 옮겨 담는 지식증류와는 다릅니다. 두 기법은 종종 함께 쓰이지만 원리는 별개이며, 비트 수를 너무 줄이면 정확도가 급격히 떨어질 수 있어 적절한 비트 수 선택이 중요합니다.

관련 용어