brief.ing.gg

WIKI

양자화(Quantization)

양자화(Quantization)

Q4·Q8·FP8 같은 저정밀 표현은 메모리와 품질을 어떻게 바꾸는가.

Scope

핵심 질문

LLM 양자화는 모델의 숫자 표현 정밀도를 낮춰 메모리와 연산량을 어떻게 줄이며, 그 대가로 무엇을 잃는가?

포함 범위

  • FP16/BF16, INT8, 4-bit, FP8 개념
  • weight-only와 activation quantization
  • 메모리·대역폭 절감
  • 품질 저하
  • calibration과 quantization-aware 접근

제외 범위

  • 특정 quant format의 최신 벤치마크 순위
  • 특정 GPU별 지원표

Research

핵심 근거

  • 신경망 가중치는 원래 FP32보다 낮은 정밀도로도 상당한 품질을 유지할 수 있다.
  • 추론용 quantization은 weight memory와 memory bandwidth 요구량을 줄여 더 큰 모델을 실행하거나 throughput을 높일 수 있다.
  • 4-bit 이하에서는 outlier와 layer sensitivity 때문에 품질 저하가 커질 수 있어 다양한 보정 기법이 사용된다.
  • FP8은 정수 양자화와 달리 부동소수점 표현을 유지하면서 범위와 정밀도를 줄인다.

참고 자료

  • Dettmers et al., LLM.int8(): https://arxiv.org/abs/2208.07339
  • Frantar et al., GPTQ: https://arxiv.org/abs/2210.17323
  • Lin et al., AWQ: https://arxiv.org/abs/2306.00978

Draft

양자화(Quantization)는 모델의 가중치나 activation을 더 낮은 정밀도의 숫자로 표현해 메모리 사용량과 계산비용을 줄이는 기법이다.

예를 들어 FP16 가중치를 8비트나 4비트로 줄이면 같은 수의 파라미터를 훨씬 적은 메모리에 저장할 수 있다.

왜 LLM에서 중요한가

대규모 모델은 대부분의 추론시간 동안 엄청난 양의 가중치를 메모리에서 읽는다.

따라서 계산성능뿐 아니라 memory bandwidth가 중요한 병목이 된다. 가중치가 절반 크기가 되면 같은 GPU 메모리에 더 큰 모델을 넣을 수 있고, 메모리에서 읽어야 할 데이터양도 줄어들 수 있다.

FP16, INT8, 4-bit

FP16과 BF16은 16비트 부동소수점 형식으로 현대 딥러닝에서 널리 사용된다.

INT8은 값을 8비트 정수 범위로 매핑한다. 4-bit quantization은 가중치당 저장공간을 더 줄일 수 있지만 표현 가능한 값이 훨씬 적어지므로 품질 유지가 더 어렵다.

실제 4-bit 포맷은 단순한 균등 정수뿐 아니라 group별 scale, zero point, 비선형 codebook 등 다양한 기법을 사용한다.

Weight-only Quantization

추론에서 가장 흔한 접근 중 하나는 가중치만 낮은 정밀도로 저장하고 activation 계산은 더 높은 정밀도로 유지하는 것이다.

이 방식은 모델 메모리를 크게 줄이면서 구현 난이도와 품질 저하를 상대적으로 낮출 수 있다.

FP8

FP8은 8비트 부동소수점 표현이다.

INT8처럼 8비트지만 exponent와 mantissa를 사용해 값의 범위를 표현하므로 activation과 학습에도 활용할 수 있다.

다만 하드웨어가 FP8 연산을 직접 지원해야 성능상의 장점을 충분히 얻을 수 있다.

품질은 얼마나 떨어지는가

모델과 양자화 방식에 따라 다르다.

8-bit는 대형 모델에서 품질 저하가 매우 작을 수 있고, 잘 설계된 4-bit 양자화도 많은 작업에서 원본과 비슷한 결과를 낼 수 있다.

그러나 작은 모델, 특정 레이어, 수학·코딩·장문 reasoning처럼 민감한 작업에서는 차이가 커질 수 있다.

Calibration

양자화에서는 어떤 값 범위를 어떻게 낮은 비트에 매핑할지 결정해야 한다.

대표 입력 데이터를 이용해 activation 범위나 중요한 가중치를 분석하는 calibration을 사용하면 단순한 변환보다 품질을 잘 보존할 수 있다.

GPTQ와 AWQ 같은 방법은 LLM 가중치를 낮은 비트로 줄이면서 오차를 줄이는 대표적 접근이다.

핵심

양자화는 모델을 작게 만드는 압축기법이지만 단순한 파일압축과는 다르다. 숫자의 표현력을 줄이는 대신 VRAM, memory bandwidth, 처리량을 얻는 trade-off다. 어떤 비트 수가 적절한지는 모델 크기, 하드웨어, 필요한 품질과 latency에 따라 달라진다.