pytorch/ao

PyTorch native quantization for training and inference

解决的问题

TorchAO 提供一个原生 PyTorch 库,用于从训练到推理的模型优化。它解决了在不显著牺牲精度的前提下,减少模型大小并提升推理速度的挑战,特别是通过提供量化和稀疏性工具来实现。

工作原理

TorchAO 直接集成到 torch.compile()FSDP2 中,可开箱即用地与大多数 HuggingFace 模型配合使用。它实现了多种低精度数据类型(dtypes)和内存布局,利用 PyTorch、CUDA、C++ 或 Triton 的内核,在 GPU 和 CPU 上加速性能。

适用人群

专为需要在服务器 GPU、通过 ExecuTorch 在边缘设备,或在 ARM CPU 上更高效地部署大型模型(如 LLM 或扩散模型)的机器学习工程师和研究人员设计。

主要亮点

  • 量化感知训练(QAT):恢复训练后量化导致的精度下降,尤其适用于 int4 模型。
  • Float8 训练:通过使用缩放的 float8 数据类型,将预训练(例如 Llama-3.1-70B)速度提升高达 1.5 倍。
  • 推理优化:支持 int4 权重仅量化和 float8 动态量化,实现显著的速度提升和内存减少。
  • 内存高效优化器:包含量化优化器(AdamW 4-bit/8-bit/Fp8)和 CPU 卸载功能,以降低显存需求。
  • C 级集成:已与 vLLM、HuggingFace Transformers/Diffusers/PEFT、Unsloth 和 SGLang 集成。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目