AI에서 양자화(Quantization)란 무엇인가요?

AI의 양자화는 가중치와 활성화의 수치 정밀도를 낮춰 신경망이 더 빠르게 실행되고 메모리를 덜 사용하도록 하는 모델 압축 기법으로, 정확도 손실은 미미한 경우가 많습니다.

AI의 양자화는 신경망의 가중치와 활성화 값이 갖는 수치 정밀도를 낮추는 모델 압축 기법입니다. 모든 파라미터를 32비트 부동소수점 숫자로 저장하는 대신, 양자화된 모델은 8비트, 4비트 또는 그 이하의 형식을 사용합니다. 메모리와 연산량은 비트 수에 비례하기 때문에, 이 한 가지 변경만으로도 모델 크기를 2~8배 줄이고 추론 속도를 높일 수 있어, 대규모 모델을 스마트폰, 노트북, 브라우저, 임베디드 기기에서 실행하는 것이 현실적으로 가능해집니다.

양자화의 동작 원리

각 가중치는 본래 정밀한 실수이지만, 그 정밀도 대부분이 실제로 필요한 경우는 드뭅니다. 양자화는 원래의 값 범위를 더 작은 표현 가능 레벨 집합으로 매핑합니다. 학습 후 양자화(PTQ)에서는 완전히 학습된 모델을 한 번 변환하며, 일반적으로 부동소수점 가중치를 더 좁은 정수 범위에 맞도록 스케일링합니다. quantized = round(weight / scale) + zero_point 형태의 단순한 선형 매핑이 대부분의 작업을 수행하며, 동일한 scalezero_point이 추론 중 출력을 다시 부동소수점으로 역양자화하는 데 사용됩니다.

예를 들어, 8비트 정수는 256개의 고유한 값만 표현할 수 있으므로, 가중치가 원래 float32에서 [-1.0, 1.0] 범위에 걸친 레이어는 이를 256개의 균일한 간격 구간으로 분류해야 합니다. 이 간격이 실제 가중치 분포에 맞게 잘 조율될수록 정확도 손실이 줄어듭니다. 더 나은 결과를 얻기 위해, 양자화 인식 학습(QAT)은 미세 조정(fine-tuning) 과정에서 반올림 오류를 시뮬레이션하여 모델이 노이즈에 적응하도록 하고, 이를 통해 원래 정확도의 거의 전부를 회복하는 경우가 많습니다.

왜 중요한가

양자화 덕분에 수십억 개의 파라미터를 가진 모델도 몇 기가바이트의 RAM에 들어가며, 노트북 CPU에서 1초도 안 되는 시간 안에 응답할 수 있습니다. 이는 에너지 사용량을 줄이고 서버 비용을 절감하며, 개인정보에 민감하거나 오프라인에서 사용해야 하는 환경에서 온디바이스 AI를 가능하게 합니다. 또한 하드웨어와의 상호작용도 중요한데, 최신 GPU, NPU, CPU에는 전용 INT8 및 INT4 행렬 연산 유닛이 탑재되어 있어, 양자화된 모델은 동일한 모델의 float32 버전보다 몇 배 더 빠르게 실행될 수 있습니다.

주요 유형

  • 학습 후 양자화(PTQ): 이미 학습된 모델을 변환합니다. 가장 저렴한 옵션이며, 정확도 손실은 작습니다.
  • 양자화 인식 학습(QAT): 학습 과정에서 양자화를 시뮬레이션하여 가중치가 적응하도록 합니다. 정확도가 더 높지만, 추가 연산이 필요합니다.
  • 동적 양자화(Dynamic quantization): 가중치는 낮은 정밀도로 유지하되 활성화는 그때그때 계산합니다. 시퀀스 길이가 가변적인 NLP 모델에 유용합니다.
  • 가중치 전용 양자화(Weight-only quantization): 가중치를 4비트 이하로 저장하고, 필요할 때 그때그때 역양자화합니다. 대규모 언어 모델 서빙에 흔히 사용됩니다.
  • GPTQ, AWQ, GGUF: 정확도 유지를 위해 서로 다른 방식을 적용하는 4비트 LLM 양자화를 위한 대표적인 알고리즘 및 파일 형식입니다.

양자화는 AI 배포 파이프라인의 기본 단계가 되었습니다. PyTorch의 torch.quantization, NVIDIA TensorRT, ONNX Runtime 같은 도구들은 이러한 기법들을 프로덕션 스택에 내장하여, 팀이 약간의 정확도를 양보하는 대신 속도, 메모리, 비용에서 상당한 이점을 얻을 수 있도록 합니다.

이런 글도 좋아하실 거예요

관련 포스트