QAT 개요 — fake quantization과 prepare·convert

QAT 개요 — fake quantization과 prepare·convert

QAT(Quantization-Aware Training) 은 훈련 또는 파인튜닝 중에 가짜 양자화를 적용해, 최종 양자화 모델이 더 높은 정확도와 더 낮은 perplexity를 내도록 하는 기법이에요.

PTQ와 QAT의 차이

  • PTQ: 훈련 후 정적 양자화. x_q = round(x/scale + zp).clamp(qmin,qmax) 로 int8로 캐스팅.
  • QAT: x_fq 는 여전히 float. fake quantize가 '양자화+역양자화'의 수치를 시뮬레이션. 훈련 중에는 float로 유지돼 역전파로 파라미터가 업데이트돼요.

prepare와 convert

torchao에서 QAT는 두 단계로 이뤄져요.

  1. prepare: linear 레이어에 fake quantize 연산을 삽입.
  2. convert: 훈련 후 fake quantize를 실제 quantize/dequantize 연산으로 변환해 양자화 모델 생성(보통 linear와 융합).

두 단계 사이에는 기존처럼 훈련을 진행하면 돼요.

API

qat_quantizer.prepare(model) → train → convert(model) 흐름이에요. QATConfig는 PTQ config를 받아 대응하는 fake quantize config를 자동으로 추론해요.

더 알아보기