huggingface/optimum-quanto

A pytorch quantization backend for optimum

무엇을 해결하는가

Optimum Quanto는 AI 모델의 메모리 사용량을 줄이고 추론 속도를 잠재적으로 높이기 위해 설계된 PyTorch 양자화 백엔드입니다. 복잡한 모델 트레이싱 없이 고정밀 부동 소수점 모델을 저정밀도 표현(int8, int4 또는 float8 등)으로 변환할 수 있어, CUDA 및 MPS를 포함한 다양한 장치에 모델을 배포하기가 더 쉬워집니다.

작동 방식

Quanto는 표준 PyTorch 모듈(Linear 및 Conv2d)을 양자화된 버전으로 교체함으로써 작동합니다. 정확도 손실을 최소화하기 위해 소스 텐서를 대상 유형에 최적화된 범위로 투영하는 특수 Tensor 서브클래스를 사용합니다. 워크플로우는 일반적으로 모델을 양자화하고(처음에는 동적 모드에서), 선택적으로 최적의 활성화 스케일을 찾기 위해 캘리브레이션을 수행한 다음, 마지막으로 가중치를 "freeze"하여 부동 소수점 가중치를 정수 가중치로 교체함으로써 영구 저장 및 더 빠른 실행을 가능하게 합니다.

대상 사용자

이 도구는 주로 PyTorch 및 Hugging Face 모델(LLM 및 Diffusers 등)을 사용하여 작업하며, 모델을 더 작은 하드웨어에 맞게 압축하거나 추론 효율성을 개선해야 하는 개발자 및 연구자를 대상으로 합니다.

주요 특징

  • 다양한 정밀도: int2, int4, int8, float8 가중치 및 int8, float8 활성화를 지원합니다.
  • 매끄러운 통합: Hugging Face CausalLM 및 Diffusers 모델의 원클릭 양자화를 위한 헬퍼 클래스를 제공합니다.
  • 하드웨어 유연성: eager mode에서 작동하며 CUDA, MPS 및 기타 장치에 걸친 배포를 것을 지원합니다.
  • 최적화: 다양한 혼합 정밀도 조합에 대해 CUDA 장치용 가속 행렬 곱셈을 포함합니다.
  • 캘리브레이션 및 튜닝: 활성화에 대한 캘리브레이션 모드와 정확도 손실을 복구하기 위한 Quantization-Aware-Training (QAT)을 지원합니다.

관련

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch