Model Quantization
모델 양자화가 엣지 AI를 위해 Ultralytics YOLO26을 어떻게 최적화하는지 알아보십시오. 메모리 감소, 지연 시간 단축, 그리고 더 빠른 추론을 위해 INT8 모델을 내보내는 방법을 확인해 보십시오.
모델 양자화는 딥러닝 모델 실행 시 발생하는 계산 및 메모리 비용을 줄이기 위해 사용되는 정교한 모델 최적화 기술입니다. 표준 학습 워크플로에서 신경망은 일반적으로 32비트 부동 소수점(FP32)을 사용하여 파라미터(가중치 및 편향)와 활성화 맵을 저장합니다. 이러한 고정밀도는 학습 중 정확한 계산을 보장하지만, 추론 단계에서는 종종 불필요합니다. 양자화는 이러한 값을 16비트 부동 소수점(FP16)이나 8비트 정수(INT8)와 같은 저정밀도 형식으로 변환하여 정확도를 크게 저하시키지 않으면서 모델 크기를 효과적으로 줄이고 실행 속도를 가속화합니다.
Link to this section양자화가 중요한 이유#
The primary driver for quantization is the need to deploy powerful AI on resource-constrained hardware. As computer vision models like YOLO26 become more complex, their computational demands increase. Quantization addresses three critical bottlenecks:
- 메모리 점유율: 가중치의 비트 폭을 줄임으로써(예: 32비트에서 8비트로) 모델의 저장 공간 요구 사항을 최대 4배까지 줄일 수 있습니다. 이는 애플리케이션 크기가 제한적인 모바일 앱에 매우 중요합니다.
- 추론 지연 시간: 저정밀도 연산은 계산 비용이 저렴합니다. 최신 프로세서, 특히 신경 처리 장치(NPU)가 탑재된 프로세서는 INT8 연산을 FP32보다 훨씬 빠르게 실행할 수 있어 추론 지연 시간을 크게 줄여줍니다.
- 전력 소비: 메모리를 통해 이동하는 데이터가 줄고 더 간단한 산술 연산을 수행하므로 에너지를 덜 소비하게 되며, 이는 휴대용 장치와 자율 주행 자동차의 배터리 수명을 연장합니다.
Link to this section관련 개념과의 비교#
양자화는 모델을 다른 방식으로 수정하는 최적화 기술들과 구별해야 합니다.
- 양자화 vs. 가지치기(Pruning): 양자화가 파라미터의 비트 폭을 낮추어 파일 크기를 줄이는 반면, 모델 가지치기는 불필요한 연결(가중치)을 완전히 제거하여 희소 네트워크를 만드는 것을 포함합니다. 가지치기는 모델 구조를 변경하지만, 양자화는 데이터 표현 방식을 변경합니다.
- 양자화 vs. 지식 증류(Knowledge Distillation): 지식 증류는 작은 "학생" 모델이 큰 "교사" 모델을 모방하도록 학습시키는 기술입니다. 양자화는 증류 후 학생 모델에 적용되어 엣지 AI 성능을 더욱 향상시키는 데 종종 사용됩니다.
Link to this section실제 애플리케이션 사례#
양자화는 효율성이 최우선인 다양한 산업 분야에서 컴퓨터 비전과 AI를 구현할 수 있게 합니다.
-
자율 시스템: 자동차 산업에서 자율 주행 자동차는 카메라와 LiDAR로부터 수집된 시각 데이터를 실시간으로 처리해야 합니다. NVIDIA TensorRT 엔진에 배포된 양자화된 모델을 사용하면 이러한 차량이 밀리초 단위의 지연 시간으로 보행자와 장애물을 감지하여 탑승자의 안전을 보장할 수 있습니다.
-
스마트 농업: 다중 분광 카메라가 장착된 드론은 양자화된 객체 탐지 모델을 사용하여 작물 질병을 식별하거나 성장 단계를 모니터링합니다. 드론의 임베디드 시스템에서 직접 모델을 실행하면 원격 현장에서 불안정한 셀룰러 연결에 의존할 필요가 없습니다.
Link to this sectionUltralytics를 사용한 양자화 구현#
Ultralytics 라이브러리는 내보내기 프로세스를 간소화하여 개발자가 최첨단 YOLO26과 같은 모델을 양자화된 형식으로 변환할 수 있도록 합니다. Ultralytics 플랫폼 또한 이러한 배포를 원활하게 관리할 수 있는 도구를 제공합니다.
다음 예시는 INT8 양자화가 활성화된 상태로 모델을 TFLite로 내보내는 방법을 보여줍니다. 이 프로세스에는 모델이 샘플 데이터를 관찰하여 양자화된 값에 대한 최적의 동적 범위를 결정하는 보정(calibration) 단계가 포함됩니다.
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와 같은 고성능 추론 엔진을 사용하여 배포되며, 이를 통해 다양한 하드웨어 에코시스템 전반에서 광범위한 호환성을 보장합니다.






