AI VIDEO BRIEFING
양자화(Quantization) 완전 정리: PTQ·QAT부터 아웃라이어 처리까지
딥러닝 모델을 경량화하는 양자화의 원리, 스케일·제로포인트 계산, PTQ와 QAT, 그리고 아웃라이어를 다루는 SmoothQuant·SpinQuant까지 DMQA 세미나로 정리했다.

핵심 메시지
쉽게 이해하기
세미나는 모델 경량화 기법의 하나인 양자화를 다룬다. 양자화란 기술적으로 실수 자료형을 정수형으로 매핑하는 것으로, 부동소수점 하나를 32비트로 표현하는 FP32를 8비트의 INT8로 바꾸면 메모리 사용량에서 약 4배의 이득이 생긴다. 모델에 양자화를 적용한다는 것은 모델이 가진 숫자 값들을 실수에서 정수로 변환한다는 의미다.
딥러닝의 연산은 입력이 웨이트와 곱해져 활성화 함수를 거치고, 그 액티베이션이 다시 다음 레이어의 입력이 되는 과정의 반복이다. 결국 웨이트와 액티베이션의 곱을 반복하는 것이며, 바로 이 두 값이 모델이 실수로 저장하는 값이자 양자화의 대상이다. 다만 정수 변환은 표현의 정밀도를 떨어뜨려 성능이 다소 하락할 수 있어, 양자화는 모델 크기·추론 속도와 성능 간의 트레이드오프를 일으킨다.
실수를 정수로 바꾸는 핵심은 양자화 함수이며, 여기에는 두 개의 파라미터가 필요하다. 스케일링 팩터 S는 우리가 정한 실수 범위(최솟값 알파, 최댓값 베타)와 정수 범위의 길이 비율이고, 제로포인트 Z는 매핑된 범위를 원하는 위치로 시프팅해 정렬하는 값이다. 정한 범위를 벗어나는 값은 클리핑으로 양 끝(예: -127, 127)에 매핑한다. 발표자는 세계지도 비유를 들어, 스케일이 달라져도 의미 관계는 유지되며 역연산(디퀀타이즈)으로 원본과 유사한 결과를 얻을 수 있다고 설명한다.
양자화 에러는 S값에 비례하므로, 에러를 줄이려면 딱 필요한 실수 범위만큼만 알파·베타를 타이트하게 잡아야 한다. 그런데 웨이트는 학습 후 고정되어 범위를 쉽게 정할 수 있지만, 액티베이션은 입력에 따라 달라져 추론 시 범위를 추정하는 레인지 캘리브레이션이 필요하다. 이는 학습 완료 후 수행하는 PTQ(추론 중 범위를 정하는 동적 양자화, 캘리브레이션 데이터셋으로 미리 정하는 정적 양자화)와, 학습 도중 가짜 양자화 모듈로 에러를 미리 주입해 알파·베타를 함께 학습하는 QAT로 나뉜다.
발표자는 QAT가 양자화 에러에 더 취약한 소형 모델에 특히 유리하다고 덧붙인다. 한편 알파·베타를 타이트하게 잡아도, 소수의 큰 아웃라이어가 범위를 넓혀 대부분의 값이 하나의 정수로 뭉개지는 문제가 남는다. 특히 액티베이션의 특정 채널에서 자주 나타나는 이 현상을 다루기 위해, 2023년 SmoothQuant는 액티베이션의 변동성을 일부 웨이트로 이전하고, SpinQuant는 회전 행렬로 채널 분포를 고르게 만든다. 두 기법 모두 역행렬 성질 덕분에 최종 출력은 동일하게 유지된다.
주요 인사이트
- 양자화의 성패는 결국 "필요한 실수 범위를 정확히 파악하는 것"으로 귀결된다. 범위를 넓게 잡을수록 S가 커지고 에러도 커진다.
- 웨이트와 액티베이션은 난이도가 다르다. 고정된 웨이트는 쉽고, 입력에 따라 변하는 액티베이션이 양자화의 진짜 난제다.
- PTQ는 간편하지만 성능 하락 위험이 있고, QAT는 학습 중 에러를 미리 겪게 해 더 강건한 가중치로 수렴한다. 모델 크기에 따라 선택이 달라진다.
- 아웃라이어는 무시 대상이 아니라 모델이 중요하다고 판단한 신호일 수 있다. SmoothQuant·SpinQuant는 아웃라이어를 희생하지 않고 분포 자체를 다루는 접근이다.
자주 묻는 질문
양자화를 하면 왜 메모리가 줄어드나요?
FP32는 부동소수점 하나를 32비트로 표현하지만 INT8은 정수 하나를 8비트로 표현합니다. 실수로 저장된 값들을 정수로 잘 매핑하면 메모리에서 약 4배의 이득이 생기고, 곱셈 연산에 필요한 비트 연산 수도 줄어 추론 속도가 개선됩니다.
PTQ와 QAT는 어떻게 다른가요?
PTQ(Post-Training Quantization)는 학습이 끝난 뒤 양자화를 수행하며, 추론 중 범위를 정하는 동적 방식과 캘리브레이션 데이터셋으로 미리 정하는 정적 방식이 있습니다. QAT(Quantization-Aware Training)는 학습 도중 가짜 양자화 모듈로 에러를 미리 주입해 알파·베타와 웨이트를 함께 학습하며, 양자화에 취약한 소형 모델에 특히 효과적입니다.
아웃라이어가 양자화에서 왜 문제가 되나요?
대부분의 값이 가운데 몰려 있어도 큰 아웃라이어 하나 때문에 베타가 크게 잡히면, 몰려 있던 값들이 하나의 정수로 뭉개져 에러가 커집니다. 특히 액티베이션의 특정 채널에서 자주 나타나며, SmoothQuant는 변동성을 웨이트로 이전하고 SpinQuant는 회전 행렬로 분포를 고르게 만들어 이를 완화합니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗