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 整合。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案