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 集成。
相关
- 项目
- 项目
- 项目
- 项目
- 项目