Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Quantization-Aware Training (QAT)

양자화 인식 학습(QAT)은 학습 중 INT8 반올림을 시뮬레이션하여 내보내기 전에 가중치를 조정하므로, 일반적인 INT8 변환으로 손실되는 정확도를 유지합니다.

양자화 인식 학습(QAT)은 학습 중 양자화를 시뮬레이션하여 저정밀도 추론에 대비하도록 모델을 준비하는 학습 기법입니다. 모델은 일반적으로 32비트 부동소수점(FP32)으로 학습하고 가중치를 저장하며, 모델 양자화는 배포를 위해 가중치를 8비트 정수(INT8) 등의 형식으로 변환합니다. 이렇게 하면 가중치 크기가 4분의 1로 줄고 CPU, GPU 및 신경망 처리 장치(NPU)가 빠른 정수 연산을 사용할 수 있습니다. 변환 과정에서 각 값이 반올림되고 이상치가 잘리므로 정확도가 낮아집니다. QAT는 모델이 계속 학습되는 동안 순전파에 반올림을 삽입하므로, 경사 하강법은 양자화 후에도 성능을 유지하는 가중치를 찾습니다. 일반적으로 이미 학습된 모델에 짧은 미세 조정 단계를 적용합니다. Google의 모바일 CPU용 정수 연산 전용 추론 방식은 INT8 추론과 이러한 학습 절차를 결합했으며, 이후 QAT는 엣지 AI 배포의 표준 도구가 되었습니다.

양자화 인식 학습의 작동 방식#

QAT는 양자화-역양자화(Q/DQ) 쌍이라고도 하는 가짜 양자화 연산을 모델의 가중치와 활성화에 추가합니다. 각 연산은 스케일과 영점을 사용해 부동소수점 값을 가장 가까운 INT8 레벨로 매핑한 다음 즉시 다시 부동소수점 값으로 변환하므로, 네트워크는 부동소수점 연산을 계속 수행하면서 INT8 엔진과 동일하게 반올림된 값을 입력으로 받습니다. 스케일은 데이터 몇 배치에서 각 텐서의 일반적인 범위를 기록하는 보정 과정에서 얻으며, 일부 방법은 학습 중에 스케일도 함께 학습합니다.

반올림의 기울기는 거의 모든 지점에서 0이므로 학습이 중단됩니다. QAT는 직통 추정기(STE)를 사용해 역전파 중 반올림 단계를 항등 함수로 취급하므로, 기울기가 기본 FP32 가중치까지 전달됩니다:

import torch

# FP32 weights that training keeps and updates
w = torch.tensor([0.3137, -0.7214, 0.0521, 1.1800], requires_grad=True)

# Symmetric INT8 fake quantization: snap each weight to one of 255 levels, then map back to float
scale = w.detach().abs().max().item() / 127
w_q = torch.fake_quantize_per_tensor_affine(w, scale, 0, -127, 127)
print(f"Fake-quantized: {[round(v, 4) for v in w_q.tolist()]}")

# The forward pass sees the rounded weights; the straight-through estimator still delivers gradients to w
x = torch.tensor([1.0, 2.0, 3.0, 4.0])
loss = (w_q * x).sum()
loss.backward()
print(f"Gradient on FP32 weights: {w.grad.tolist()}")

순전파에서는 반올림된 가중치 0.3159, −0.7247, 0.0557, 1.18을 사용합니다. 각 값은 FP32 값에서 양자화 단계(0.0046)의 절반 이내에 있지만, FP32 가중치에 전달되는 기울기는 반올림이 없었던 것처럼 입력값인 1.0, 2.0, 3.0, 4.0과 정확히 같습니다. 여러 단계에 걸쳐 옵티마이저는 반올림 오차가 가장 적은 영향을 미치는 위치로 가중치를 이동시키며, 학습된 모델은 학습된 스케일과 함께 INT8 형식으로 내보내집니다.

QAT와 학습 후 양자화 비교#

학습 후 양자화(PTQ)는 완성된 FP32 모델을 직접 변환하며, 수백 장의 보정 이미지를 사용해 범위를 설정합니다. 몇 분이면 완료되고 학습 파이프라인도 필요하지 않지만, 가중치가 반올림에 적응할 기회가 없으므로 민감한 모델은 정확도가 눈에 띄게 낮아질 수 있습니다. QAT는 전체 학습 데이터를 사용하는 미세 조정이 필요하지만, 그 대가로 정확도 손실 대부분을 회복합니다. 팀에서는 일반적으로 먼저 PTQ를 시도하고 INT8 정확도 저하가 너무 클 때만 QAT로 전환합니다:

학습에 quantize=8을 전달하면 Ultralytics YOLO는 QAT를 실행합니다. NVIDIA Model Optimizer를 통해 INT8 가짜 양자화를 보정하고, 이를 적용한 상태로 미세 조정하며, ONNX 및 TensorRT 내보내기에서 별도의 보정 데이터 없이 Q/DQ 노드로 기록할 범위를 저장합니다. COCO val2017의 TensorRT 엔진에서는 PTQ를 적용했을 때 중간 크기 YOLO26 모델의 mAP50-95가 0.527에서 0.470으로 떨어진 반면 QAT를 적용하면 0.514를 유지했습니다. 나노 모델은 PTQ로도 0.010만큼만 하락했으므로 QAT로 얻는 이점은 없었습니다.

from ultralytics import YOLO

# 학습된 FP32 YOLO26 체크포인트에서 시작합니다
model = YOLO("yolo26n.pt")

# 작은 학습률을 사용하고 INT8 가짜 양자화를 적용한 상태로 미세 조정합니다
model.train(data="coco8.yaml", epochs=5, quantize=8, optimizer="AdamW", lr0=0.00001, cos_lr=True)

# ONNX로 내보냅니다. 학습된 INT8 범위가 Q/DQ 노드가 되므로 보정 데이터가 필요하지 않습니다
model.export(format="onnx", quantize=8)

QAT 사용 분야#

  • 엣지 비전: 휴대폰, 스마트 카메라, 드론, NPU에서 사용하는 INT8 탐지기입니다. 정수 연산 전용 가속기는 부동소수점 모델을 전혀 실행할 수 없습니다.
  • 추론 서버: TensorRT와 같은 GPU 엔진은 처리량을 높이기 위해 INT8 Tensor Core 커널을 실행하며, QAT는 정확도를 FP32에 가깝게 유지합니다.
  • 언어 모델: 이제 QAT는 8비트 미만에도 적용됩니다. Google은 메모리를 훨씬 적게 사용하면서도 bfloat16에 가까운 품질을 유지하는 4비트 Q4_0 형식의 Gemma 3 QAT 체크포인트를 출시했습니다.

주요 프레임워크에는 QAT 도구가 포함되어 있습니다. PyTorch의 torchao, TensorFlow의 Model Optimization Toolkit, OpenVINO용 Intel NNCF가 그 예입니다.

  • 모델 양자화: 수치 정밀도를 낮추는 포괄적인 용어입니다. PTQ와 QAT는 대표적인 두 가지 워크플로입니다.
  • 혼합 정밀도 학습: 메모리와 시간을 절약하기 위해 FP16 또는 BF16으로 학습하며, 모델을 INT8 추론용으로 준비하지는 않습니다.
  • 반정밀도: FP16 추론은 대부분의 모델이 재학습 없이도 잘 처리하므로 QAT가 필요한 경우가 드뭅니다.
  • 모델 가지치기: 정밀도를 낮추는 대신 가중치나 채널을 제거하며, 두 가지 압축 기법은 함께 적용할 수 있습니다.
  • 지식 증류: 더 작은 아키텍처를 학습시켜 더 큰 아키텍처를 모방하게 합니다. QAT와 함께 사용하는 경우가 많으며, 이때 전체 정밀도 모델은 자체 양자화 사본의 교사 모델 역할을 합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요