Model Quantization
모델 양자화가 Ultralytics YOLO26을 엣지 AI에 최적화하는 방법을 알아봅니다. 메모리 사용량과 지연 시간을 줄이고 더 빠른 추론을 위해 INT8 모델을 내보내는 방법을 살펴봅니다.
모델 양자화는 딥러닝 모델 실행에 필요한 연산 및 메모리 비용을 줄이는 데 사용되는 정교한 모델 최적화 기법입니다. 일반적인 학습 워크플로에서 신경망은 일반적으로 매개변수(가중치 및 편향)와 활성화 맵을 32비트 부동 소수점 숫자(FP32)로 저장합니다. 이러한 높은 정밀도는 학습 중 정확한 계산을 보장하지만, 추론에는 불필요한 경우가 많습니다. 양자화는 이러한 값을 16비트 부동 소수점(FP16) 또는 8비트 정수(INT8)와 같은 낮은 정밀도 형식으로 변환하여, 정확도를 크게 저하시키지 않으면서 모델 크기를 효과적으로 줄이고 실행 속도를 높입니다.
양자화가 중요한 이유#
양자화를 도입하는 주된 이유는 리소스가 제한된 하드웨어에 강력한 AI를 배포해야 하기 때문입니다. YOLO26과 같은 컴퓨터 비전 모델이 더욱 복잡해질수록 필요한 연산량도 증가합니다. 양자화는 다음 세 가지 주요 병목을 해결합니다.
- 메모리 사용량: 가중치의 비트 폭을 줄이면(예: 32비트에서 8비트로) 모델에 필요한 저장 공간이 최대 4배까지 줄어듭니다. 이는 애플리케이션 크기가 제한되는 모바일 앱에 매우 중요합니다.
- 추론 지연 시간: 낮은 정밀도의 연산은 연산 비용이 더 낮습니다. 특히 특수한 신경 처리 장치(NPU)가 탑재된 최신 프로세서는 FP32보다 INT8 연산을 훨씬 빠르게 실행할 수 있어 추론 지연 시간을 크게 줄입니다.
- 전력 소비: 메모리를 통해 이동하는 데이터가 줄어들고 더 단순한 산술 연산을 수행하므로 에너지 소비가 감소하며, 휴대용 장치와 자율주행 차량의 배터리 수명이 연장됩니다.
관련 개념과의 비교#
양자화는 다른 최적화 기법과 서로 다른 방식으로 모델을 변경하므로 구분하는 것이 중요합니다.
- 양자화와 가지치기: 양자화가 매개변수의 비트 폭을 줄여 파일 크기를 감소시키는 반면, 모델 가지치기는 불필요한 연결(가중치)을 완전히 제거하여 희소 네트워크를 만듭니다. 가지치기는 모델의 구조를 변경하는 반면, 양자화는 데이터 표현을 변경합니다.
- 양자화와 지식 증류: 지식 증류는 작은 "학생" 모델이 큰 "교사" 모델을 모방하도록 학습하는 기법입니다. 양자화는 엣지 AI 성능을 더욱 향상시키기 위해 증류 후 학생 모델에 적용되는 경우가 많습니다.
실제 적용 사례#
양자화는 효율성이 가장 중요한 다양한 산업 분야에서 컴퓨터 비전과 AI를 활용할 수 있도록 합니다.
-
자율 시스템: 자동차 산업에서 자율주행 차량은 카메라와 LiDAR의 시각 데이터를 실시간으로 처리해야 합니다. NVIDIA TensorRT 엔진에 배포된 양자화 모델을 사용하면 이러한 차량이 밀리초 단위의 지연 시간으로 보행자와 장애물을 감지하여 탑승자의 안전을 보장할 수 있습니다.
-
스마트 농업: 다중 스펙트럼 카메라를 탑재한 드론은 양자화된 객체 감지 모델을 사용하여 작물 질병을 식별하거나 생육 단계를 모니터링합니다. 이러한 모델을 드론의 임베디드 시스템에서 로컬로 실행하면 원격 농지에서 불안정한 셀룰러 연결이 필요하지 않습니다.
Ultralytics를 사용한 양자화 구현#
Ultralytics 라이브러리는 내보내기 프로세스를 간소화하여 개발자가 최첨단 YOLO26과 같은 모델을 양자화된 형식으로 변환할 수 있도록 합니다. Ultralytics Platform은 이러한 배포를 원활하게 관리할 수 있는 도구도 제공합니다.
다음 예제에서는 INT8 양자화를 활성화한 상태로 모델을 TFLite로 내보내는 방법을 보여줍니다. 이 프로세스에는 모델이 샘플 데이터를 관찰하여 양자화된 값에 대한 최적의 동적 범위를 결정하는 캘리브레이션 단계가 포함됩니다.
from ultralytics import YOLO
# Load a standard YOLO26 model
model = YOLO("yolo26n.pt")
# Export to TFLite format with INT8 quantization
# The 'int8' argument triggers Post-Training Quantization
# 'data' provides the calibration dataset needed for mapping values
model.export(format="tflite", int8=True, data="coco8.yaml")최적화된 모델은 ONNX와 같은 상호 운용 가능한 표준이나 OpenVINO와 같은 고성능 추론 엔진을 사용하여 배포되는 경우가 많으며, 이를 통해 다양한 하드웨어 생태계에서 폭넓은 호환성을 확보할 수 있습니다.









