Model Quantization
모델 양자화가 엣지 AI를 위해 Ultralytics YOLO26을 어떻게 최적화하는지 알아보십시오. 메모리 감소, 지연 시간 단축, 그리고 더 빠른 추론을 위해 INT8 모델을 내보내는 방법을 확인해 보십시오.
모델 양자화는 딥러닝 모델 실행의 연산 및 메모리 비용을 줄이기 위해 사용되는 정교한 model optimization 기법입니다. 표준 학습 워크플로에서 신경망은 일반적으로 32비트 부동 소수점(FP32)을 사용하여 매개변수(가중치와 편향) 및 활성화 맵을 저장합니다. 이러한 고정밀도는 학습 중 정확한 계산을 보장하지만, 추론에는 대개 불필요합니다. 양자화는 이러한 값을 16비트 부동 소수점(FP16)이나 8비트 정수(INT8)와 같은 저정밀도 형식으로 변환하여, accuracy를 크게 저하시키지 않으면서 모델 크기를 효과적으로 줄이고 실행 속도를 가속화합니다.
양자화가 중요한 이유#
양자화의 주된 동기는 리소스가 제한된 하드웨어에 강력한 AI를 배포해야 할 필요성입니다. YOLO26과 같은 computer vision 모델이 더욱 복잡해짐에 따라 연산 요구 사항도 증가합니다. 양자화는 다음과 같은 세 가지 중요한 병목 현상을 해결합니다.
- 메모리 점유율: 가중치의 비트 폭을 줄임으로써(예: 32비트에서 8비트로) 모델의 저장 공간 요구 사항을 최대 4배까지 줄일 수 있습니다. 이는 애플리케이션 크기가 제한적인 모바일 앱에 매우 중요합니다.
- Inference Latency: 저정밀도 연산은 연산 비용이 더 저렴합니다. 현대 프로세서, 특히 특화된 neural processing units (NPUs)를 탑재한 프로세서는 FP32보다 훨씬 빠르게 INT8 연산을 실행할 수 있어 inference latency를 크게 줄여줍니다.
- Power Consumption: 메모리를 통해 이동하는 데이터가 적고 더 간단한 산술 연산을 수행하므로 에너지를 덜 소모하며, 휴대용 기기 및 autonomous vehicles의 배터리 수명을 연장합니다.
관련 개념과의 비교#
양자화는 모델을 다른 방식으로 수정하는 최적화 기술들과 구별해야 합니다.
- Quantization vs. Pruning: 양자화가 매개변수의 비트 너비를 낮추어 파일 크기를 줄이는 반면, model pruning은 불필요한 연결(가중치)을 완전히 제거하여 희소 신경망을 생성합니다. 프루닝은 모델의 구조를 변경하는 반면, 양자화는 데이터 표현을 변경합니다.
- Quantization vs. Knowledge Distillation: Knowledge distillation은 작고 "학생"인 모델이 크고 "선생님"인 모델을 모방하는 방법을 학습하는 학습 기법입니다. 양자화는 edge AI 성능을 더욱 향상시키기 위해 증류 작업 후에 학생 모델에 종종 적용됩니다.
실제 애플리케이션 사례#
양자화는 효율성이 최우선인 다양한 산업 분야에서 컴퓨터 비전과 AI를 구현할 수 있게 합니다.
-
Autonomous Systems: 자동차 산업에서 자율주행차는 카메라와 라이다의 시각 데이터를 실시간으로 처리해야 합니다. NVIDIA TensorRT 엔진에 배포된 양자화 모델은 이러한 차량이 밀리초 단위의 지연 시간으로 보행자와 장애물을 감지할 수 있도록 하여 승객의 안전을 보장합니다.
-
Smart Agriculture: 다중 스펙트럼 카메라가 장착된 드론은 양자화된 object detection 모델을 사용하여 작물 질병을 식별하거나 성장 단계를 모니터링합니다. 드론의 embedded systems에서 이러한 모델을 로컬로 실행하면 원격 농경지에서 불안정한 셀룰러 연결의 필요성이 사라집니다.
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와 같은 고성능 추론 엔진을 사용하여 자주 배포되므로 다양한 하드웨어 생태계에서 광범위한 호환성을 보장합니다.






