huggingface/optimum-quanto
A pytorch quantization backend for optimum
它解决了什么问题
Optimum Quanto 是一个专为 PyTorch 设计的量化后端,旨在减少 AI 模型的内存占用,并可能提升推理速度。它允许用户将高精度浮点模型转换为低精度表示(如 int8、int4 或 float8),而无需复杂的模型追踪,从而更轻松地在各种设备(包括 CUDA 和 MPS)上部署模型。
它如何工作
Quanto 通过用量化版本替换标准的 PyTorch 模块(如 Linear 和 Conv2d)来运行。它使用一种专门的 Tensor 子类,将源张量投影到目标类型的最佳范围内,以最小化精度损失。工作流程通常包括对模型进行量化(最初处于动态模式)、可选地进行校准以找到最佳激活缩放因子,最后“冻结”权重,将浮点权重替换为整数权重,以实现永久存储和更快的执行。
适用人群
主要面向使用 PyTorch 和 Hugging Face 模型(如 LLM 和 Diffusers)的开发者和研究人员,他们需要压缩模型以适应更小的硬件或提升推理效率。
主要特性
- 灵活的精度支持:支持权重的 int2、int4、int8 和 float8,以及激活的 int8 和 float8。
- 无缝集成:提供辅助类,可一键量化 Hugging Face CausalLM 和 Diffusers 模型。
- 硬件灵活性:支持急切模式,并可在 CUDA、MPS 和其他设备上部署。
- 优化加速:为 CUDA 设备提供多种混合精度组合下的加速矩阵乘法。
- 校准与调优:支持激活的校准模式以及量化感知训练(QAT),以恢复精度损失。
一个用于减少模型内存占用并加速推理的 PyTorch 量化后端 — @mattip
相关
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch