Quantization-Aware Training (QAT)
Quantization-Aware Training(QAT)이 edge deployment를 위해 Ultralytics YOLO26 model을 최적화하는 방법을 알아보세요. INT8 precision으로 높은 정확도를 유지하는 방법을 살펴보세요.
양자화 인식 학습(QAT)은 머신 러닝 모델의 학습 단계에서 모델을 낮은 정밀도 환경에 맞게 준비하는 데 사용되는 특수한 기법입니다. 표준 딥 러닝 워크플로에서 모델은 일반적으로 고정밀 32비트 부동 소수점 수(FP32)를 사용하여 작동합니다. 이러한 정밀도는 뛰어난 정확도를 제공하지만, 특히 엣지 디바이스에서는 계산 비용과 메모리 사용량이 클 수 있습니다. QAT는 모델이 학습 중인 상태에서 8비트 정수(INT8)와 같은 형식으로 정밀도를 낮추는 양자화의 효과를 시뮬레이션합니다. 학습 과정에 이러한 양자화 오류를 도입하면 모델이 가중치를 조정하는 방법을 학습하여, 그렇지 않으면 학습 후 변환 과정에서 손실될 수 있는 정확도를 효과적으로 회복합니다.
엣지 배포에서 QAT가 중요한 이유#
리소스가 제한된 디바이스에 컴퓨터 비전 모델을 배포하려면 속도와 성능 사이의 균형을 맞춰야 하는 경우가 많습니다. 학습 후 양자화(PTQ)라고 하는 표준 양자화 방법은 모델이 완전히 학습된 후에만 정밀도를 낮춥니다. PTQ는 빠르지만, 조정할 기회 없이 신경망 가중치가 크게 변경되므로 민감한 모델의 정확도가 저하될 수 있습니다.
QAT는 모델이 양자화된 상태를 "연습"할 수 있도록 하여 이 문제를 해결합니다. 학습의 순전파 과정에서 가중치와 활성화 값은 낮은 정밀도 값으로 시뮬레이션됩니다. 이를 통해 경사 하강법 과정에서 양자화된 상태에 대한 손실을 최소화하는 방식으로 모델 파라미터를 업데이트할 수 있습니다. 그 결과 마이크로컨트롤러나 모바일 프로세서와 같은 하드웨어에 배포하더라도 높은 정확도를 유지하는 견고한 모델을 얻을 수 있습니다.
QAT와 학습 후 양자화(PTQ)의 차이#
QAT와 모델 양자화, 특히 학습 후 양자화(PTQ)를 구분해 이해하면 도움이 됩니다:
- 학습 후 양자화(PTQ): 모델은 FP32에서 정상적으로 학습됩니다. 학습이 완료되면 가중치가 INT8로 변환됩니다. 이 방법은 더 빠르고 재학습이 필요하지 않지만, 복잡한 아키텍처에서는 정확도 손실이 더 클 수 있습니다.
- 양자화 인식 학습(QAT): 미세 조정 단계에서 양자화 과정을 에뮬레이션합니다. 모델은 낮은 정밀도로 인해 도입되는 노이즈에 대응하도록 내부 파라미터를 조정하며, 일반적으로 PTQ보다 더 높은 정확도를 제공합니다.
실제 적용 사례#
엣지 하드웨어에서 실시간 추론이 중요한 산업에서는 QAT가 필수적입니다.
- 자율 드론: AI 드론 운영에서는 배터리 수명과 온보드 처리 성능이 매우 제한적입니다. QAT를 통해 최적화된 모델을 사용하는 드론은 INT8 가속기를 사용하면서도 장애물을 감지하거나 객체를 높은 정밀도로 추적할 수 있어, FP32 모델에 비해 비행 시간을 크게 연장할 수 있습니다.
- 스마트 리테일 카메라: 슈퍼마켓은 진열대 재고를 모니터링하거나 계산대 줄을 관리하기 위해 리테일 분야의 컴퓨터 비전을 사용합니다. 이러한 시스템은 대개 저전력 엣지 게이트웨이에서 실행됩니다. QAT를 사용하면 이러한 디바이스에서 실행되는 객체 감지 모델이 비용이 많이 드는 클라우드 연결 없이도 유사한 제품을 구분하는 데 필요한 정확도를 유지할 수 있습니다.
Ultralytics에서 QAT 구현하기#
Ultralytics Platform과 YOLO 생태계는 모델을 양자화된 형식으로 내보내는 기능을 지원합니다. QAT는 복잡한 학습 절차이지만, 최신 프레임워크를 사용하면 양자화된 추론을 위한 모델 준비를 간소화할 수 있습니다.
다음은 학습된 YOLO26 모델을 INT8 양자화 TFLite 형식으로 내보내는 방법의 예시입니다. 이 형식은 효율적인 엣지 배포를 위해 양자화 원리를 활용합니다.
from ultralytics import YOLO
# Load a trained YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TFLite format with INT8 quantization
# This prepares the model for efficient execution on edge devices
model.export(format="tflite", int8=True)엣지 생태계와의 통합#
양자화 기법을 통해 최적화된 모델은 특수한 추론 엔진에서 실행되도록 설계됩니다. QAT로 학습된 모델은 플랫폼 간 호환성을 위해 ONNX Runtime을 사용하거나 Intel 하드웨어에서 최적화하기 위해 OpenVINO를 사용하여 배포되는 경우가 많습니다. 이를 통해 대상이 Raspberry Pi이든 전용 Edge TPU이든 모델이 가능한 최고의 효율성과 속도로 작동하도록 할 수 있습니다.
QAT와 관련된 핵심 개념#
QAT를 완전히 이해하려면 다음과 같은 여러 관련 머신 러닝 개념을 익혀 두는 것이 좋습니다:
- 정밀도: 숫자를 표현하는 데 사용되는 세부 수준을 의미합니다. 반정밀도(FP16)와 INT8은 양자화의 일반적인 대상입니다.
- 캘리브레이션: 부동 소수점 수를 정수에 효과적으로 매핑하기 위해 동적 활성화 값의 범위(min/max)를 결정하는 과정입니다. 이는 양자화된 YOLO 모델 배포에서 중요한 단계입니다.
- 추론 지연 시간: QAT의 주요 이점 중 하나는 추론 지연 시간을 줄여 실시간 시스템에서 더 빠르게 의사 결정을 내릴 수 있도록 하는 것입니다.
- 미세 조정: QAT는 처음부터 학습하기보다 사전 학습된 모델에서 미세 조정 단계로 수행되는 경우가 많아 계산 리소스를 절약할 수 있습니다.
양자화 인식 학습을 MLOps 파이프라인에 통합하면 개발자는 높은 정확도의 연구 모델과 매우 효율적이며 프로덕션에 바로 사용할 수 있는 엣지 AI 애플리케이션 사이의 격차를 해소할 수 있습니다.









