pytorch/ao

PyTorch native quantization and sparsity for training and inference

What it solves

TorchAO 提供一个原生 PyTorch 库,用于优化 AI 模型,使其更快且更省内存。它解决了模型大小与准确度之间的常见权衡,让用户能够在不显著降低质量的前提下,减少大型模型(如 LLM 和 diffusion 模型)的内存占用,并加速训练和推理。

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 offloading,将 VRAM 需求降低最高可达 60%。