모델 정량화
모델 정량화를 통해 AI 성능을 최적화하세요. 실제 배포를 위해 크기를 줄이고, 속도를 높이고, 에너지 효율성을 개선하세요.
모델 양자화는 신경망(NN) 의 가중치와 활성화를 고정밀 부동 소수점 숫자(예: 32비트 부동 소수점 또는 FP32)에서 8비트 정수(INT8)와 같은 저정밀 데이터 유형으로 변환하여 메모리 사용 공간과 계산 비용을 줄이는 강력한 모델 최적화 기법입니다. 이 프로세스는 모델을 훨씬 더 작고 빠르게 만들어 휴대폰이나 임베디드 시스템과 같이 리소스가 제한된 하드웨어에 배포할 수 있게 해줍니다. 주요 목표는 모델의 예측 정확도에 미치는 영향을 최소화하면서 성능, 특히 추론 지연 시간을 개선하는 것입니다.
모델 정량화 작동 방식
양자화 프로세스에는 학습된 모델에서 부동 소수점 값의 연속 범위를 더 작은 불연속 정수 값 집합으로 매핑하는 작업이 포함됩니다. 이 변환은 각 파라미터를 저장하는 데 필요한 비트 수를 줄여 전체 모델 크기를 축소합니다. 또한 저정도 정수를 사용하는 계산은 정수 연산을 위한 전용 명령어가 있는 많은 최신 CPU와 GPU 및 TPU와 같은 특수 AI 가속기에서 훨씬 더 빠릅니다.
정량화를 적용하는 방법에는 크게 두 가지가 있습니다:
- 학습 후 정량화(PTQ): 이미 학습된 모델을 더 낮은 정밀도의 형식으로 변환하는 가장 간단한 접근 방식입니다. 이는 작은 보정 데이터 세트에서 가중치와 활성화의 분포를 분석하여 실수에서 정수로의 최적의 매핑을 결정하는 빠른 프로세스입니다.
- 양자화 인식 훈련(QAT): 이 방법에서는 양자화의 효과를 시뮬레이션하면서 모델을 훈련하거나 미세 조정합니다. 훈련 과정의 포워드 패스는 양자화된 추론을 모방하여 모델이 감소된 정밀도에 적응할 수 있도록 합니다. 모델이 훈련 단계에서 잠재적인 정보 손실을 보정하는 방법을 학습하기 때문에 QAT는 종종 PTQ보다 더 높은 정확도를 제공합니다. PyTorch 및 TensorFlow와 같은 프레임워크는 QAT를 구현하기 위한 강력한 도구를 제공합니다.
실제 애플리케이션
정량화는 실제 시나리오, 특히 엣지 AI 디바이스에서 정교한 컴퓨터 비전 모델을 실행하는 데 매우 중요합니다.
- 온디바이스 이미지 분석: 많은 스마트폰 애플리케이션이 실시간 기능을 위해 정량화된 모델을 사용합니다. 예를 들어, 카메라를 통해 제품이나 랜드마크 식별과 같은 실시간 물체 감지 기능을 제공하는 앱은 배터리 소모나 클라우드 연결 없이 휴대폰의 하드웨어에서 효율적으로 실행하기 위해 Ultralytics YOLO11과 같은 정량화된 모델을 사용합니다.
- 자동차 및 로보틱스: 자율주행 차량에서 보행자 감지 및 차선 유지를 위한 모델은 매우 짧은 지연 시간으로 작동해야 합니다. 이러한 모델을 정량화하면 엔비디아 젯슨이나 구글 코랄 엣지 TPU와 같은 특수 하드웨어에서 실행할 수 있어 안전에 매우 중요한 몇 분의 1초 안에 의사결정을 내릴 수 있습니다.
정량화 대 다른 최적화 기술
모델 정량화는 다른 최적화 방법과 함께 사용되는 경우가 많지만 접근 방식이 다릅니다.
- 모델 가지치기: 이 기술은 신경망 내에서 중복되거나 중요하지 않은 연결(가중치)을 제거하여 크기와 복잡성을 줄이는 기술입니다. 가지 치기는 네트워크의 일부를 제거하여 네트워크를 더 작게 만드는 반면, 양자화는 나머지 부분의 수치 정밀도를 낮추어 효율성을 높입니다. 최적화를 극대화하기 위해 이 두 가지를 결합하는 경우가 많습니다.
- 지식 증류: 여기에는 미리 훈련된 더 큰 '교사' 모델을 모방하도록 작은 '학생' 모델을 훈련하는 것이 포함됩니다. 목표는 교사의 지식을 보다 간결한 아키텍처로 옮기는 것입니다. 이는 새로운 모델을 학습시키는 것이 아니라 기존 모델의 수치 표현을 수정하는 양자화와는 다릅니다.
- 혼합 정밀도: 이 기법은 모델 학습 중에 다양한 수치 정밀도(예: FP16 및 FP32)를 조합하여 프로세스 속도를 높이고 메모리 사용량을 줄이는 데 사용합니다. 관련성이 있지만, 주로 훈련 최적화인 반면, 정량화는 일반적으로 추론을 위한 모델 최적화에 중점을 둡니다.
고려 사항 및 지원
정량화는 매우 유익하지만 잠재적으로 모델 정확도에 영향을 미칠 수 있습니다. 정량화 후 관련 성능 메트릭을 사용하여 철저한 평가를 수행하여 성능 트레이드오프가 허용 가능한 수준인지 확인하는 것이 중요합니다.
Ultralytics는 정량화 친화적인 형식으로 내보내기를 지원하여 정량화된 모델을 쉽게 배포할 수 있게 해줍니다. 여기에는 광범위한 호환성을 위한 ONNX, 인텔 하드웨어에서의 최적화를 위한 OpenVINO, NVIDIA GPU에서의 고성능을 위한 TensorRT가 포함됩니다. Ultralytics HUB와 같은 플랫폼은 훈련부터 최적화된 모델 배포까지 전체 라이프사이클을 관리하는 데 도움이 될 수 있습니다. 또한 Neural Magic과 같은 도구와의 통합은 양자화 및 가지치기를 활용하여 CPU에서 GPU급 성능을 달성합니다.