pytorch/ao
PyTorch native quantization and sparsity for training and inference
What it solves
TorchAO는 AI 모델을 더 빠르고 메모리 효율적으로 만들기 위한 네이티브 PyTorch 라이브러리를 제공합니다. 모델 크기와 정확도 사이의 일반적인 트레이드오프를 해결하여, 대형 모델(LLM 및 diffusion 모델 등)의 메모리 footprint를 줄이고 품질 손실 없이 학습 및 추론 속도를 높입니다.
How it works
TorchAO는 여러 아키텍처 최적화 기법을 구현합니다:
- Quantization: 모델 가중치와 활성화를 int4, int8, float8 등 낮은 정밀도 포맷으로 변환해 메모리 사용량을 감소시키고 처리량을 증가시킵니다.
- Quantization-Aware Training (QAT): 양자화 시 정확도 손실을 방지하기 위해 모델이 낮은 정밀도에 적응하도록 학습할 수 있게 합니다.
- Sparsity: 2:4 반구조적 희소성을 사용해 중복 가중치를 제거하고 속도를 더욱 높입니다.
- uma-native integration:
torch.compile()및FSDP2와 원활히 연동되어 CUDA, XPU, CPU, ARM 등 다양한 하드웨어에서 고성능 실행을 제공합니다.
Who it’s for
이 라이브러리는 제한된 하드웨어에서 대규모 모델을 배포하거나, 거대한 모델의 사전 학습을 가속화하거나, ExecuTorch를 통해 엣지 디바이스용 모델을 최적화해야 하는 AI 연구자 및 엔지니어를 위해 설계되었습니다.
Highlights
- Training Speedups: float8 학습을 사용하면 Llama-3.1-70B 사전 학습 속도가 최대 1.5배 빨라집니다.
- Inference Gains: Llama-3-8B를 int4로 양자화하면 추론 속도가 1.89배 빨라지고 메모리 사용량이 58% 감소합니다.
- Broad Integration: Hugging Face Transformers, Diffusers, vLLM, SGLang을 기본 지원합니다.
- Memory Efficiency: 양자화 옵티마이저(AdamW 4/8-bit)와 CPU 오프로드를 포함해 VRAM 요구량을 최대 60% 줄입니다.