pytorch/ao

PyTorch native quantization for training and inference

해결하는 문제

대규모 AI 모델은 느리고 메모리를 많이 사용합니다. TorchAO는 모델 가중치와 활성화를 int4, int8, float8과 같은 저정밀 형식으로 양자화하여 훈련 및 추론 중에 모델이 더 빠르게 실행되고 메모리를 덜 사용하도록 합니다. 또한 양자화로 인한 정확도 저하를 양자화 인식 훈련(QAT)으로 해결하며, PyTorch의 compile 및 FSDP2 시스템과 직접 연동됩니다.

작동 방식

TorchAO는 모델의 가중치를 양자화된 버전으로 교체하는 간단한 Python API를 제공합니다. 추론의 경우 Int4WeightOnlyConfig 또는 Float8DynamicActivationFloat8WeightConfig를 한 줄로 모델에 적용할 수 있습니다. 훈련의 경우 대규모 사전 훈련을 가속화하는 float8 훈련 레시피와 미세 조정 중에 양자화를 시뮬레이션한 다음 모델을 양자화된 형태로 다시 변환하는 QAT 워크플로우를 제공합니다. 또한 메모리 효율적인 옵티마이저(예: 8비트 Adam)와 CPU 오프로딩을 포함하여 GPU 메모리 사용량을 줄입니다.

대상 사용자

PyTorch를 사용하는 개발자와 연구자로, 대규모 언어 모델이나 확산 모델을 더 빠르게 배포하고, 대규모 모델을 더 저렴하게 훈련하거나, 휴대폰과 같은 엣지 디바이스에서 실행하려는 사람들을 대상으로 합니다. HuggingFace transformers, diffusers, vLLM 또는 torchtitan을 사용하는 사람들에게 이상적입니다. 이러한 도구와 직접 통합되기 때문입니다.

주요 특징

  • float8로 훈련 속도가 최대 1.5~2배, int4 추론이 1.89배 빨라지고 메모리가 58% 감소합니다.
  • 양자화 인식 훈련은 사후 훈련 양자화로 손실된 정확도의 최대 96%를 복구합니다.
  • torch.compile(), FSDP2 및 주요 HuggingFace 라이브러리와 즉시 작동합니다.
  • 서버 GPU, CPU 및 ExecuTorch를 통한 엣지 배포를 지원하며, HuggingFace Hub에서 사전 양자화된 모델을 사용할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트