작은 정확도 손실을 큰 크기·속도 이득과 맞바꿔
현대적인 하드웨어는 int8 행렬곱을 fp32보다 훨씬 빠르게 처리하며 경우에 따라 4배까지 차이 나. 메모리 사용량도 비슷한 비율로 줄어. 대신 정확도가 조금 떨어질 수 있어. 제대로 양자화한 모델은 일반적인 벤치마크에서 보통 1% 미만의 손실을 보이지만 작업별 검증은 꼭 필요해. LLM의 int4 가중치 전용 양자화는 2025~2026년의 활발한 연구 영역으로, 70억 개 가중치 자체를 약 3.5~4GB에 담을 수 있어.
양자화의 세 가지 방식
- 동적 양자화: 가중치는 int8로 저장하고 활성화는 추론 중에 양자화해. 코드 한 줄로 적용할 수 있고 선형 계층이 대부분인 Transformer 계열 모델에 잘 맞아.
- 정적 학습 후 양자화(PTQ): 가중치와 활성화를 모두 양자화하고 작은 데이터셋으로 범위를 보정해. 동적 방식보다 빠를 수 있지만 구성이 더 복잡해.
- 양자화 인식 학습(QAT): 순전파에 모의 양자화를 넣어 학습해. 정확도를 가장 잘 보존하지만 준비 비용도 가장 커.
torchao: 현대적인 API
기존 torch.quantization과 torch.ao.quantization의 기능은 독립형 torchao 패키지로 이동하고 있어. 현대적인 int8, int4, 가중치 전용 양자화와 GPTQ, AWQ 기법이 이곳에 모여 있어. 새 프로젝트라면 torchao에서 시작해.
양자화가 도움이 되는 곳과 그렇지 않은 곳
- 도움이 되는 곳: 큰 Transformer FFN, 큰 임베딩 테이블, LLM 서빙.
- 도움이 적은 곳: 연산 호출 비용이 지배하는 작은 모델이나 비선형 연산이 많은 모델. 양자화되지 않은 부분이 병목으로 남을 수 있어.