Transformers 文档
Optimum Quanto
加入 Hugging Face 社区
并获得增强的文档体验
开始使用
Optimum Quanto
Quanto 是 Optimum 的一个 PyTorch 量化后端。它提供权重的线性量化(float8、int8、int4、int2),精度与全精度模型非常相似。Quanto 兼容任何模型模态和设备,无论硬件如何,都易于使用。
Quanto 还兼容 torch.compile,以实现更快的生成。
使用以下命令安装 Quanto。
pip install optimum-quanto accelerate transformers
通过创建 QuantoConfig 并指定要量化的 weights
参数来量化模型。只要模型包含 torch.nn.Linear 层,此方法适用于任何模态的任何模型。
Transformers 集成仅支持权重量化。如果您需要激活量化、校准或 QAT,请直接使用 Quanto 库。
from transformers import AutoModelForCausalLM, AutoTokenizer, QuantoConfig
quant_config = QuantoConfig(weights="int8")
model = transformers.AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-3.1-8B",
torch_dtype="auto",
device_map="auto",
quantization_config=quant_config
)
torch.compile
使用 torch.compile 包装 Quanto 模型以实现更快的生成。
import torch
from transformers import AutoModelForSpeechSeq2Seq, QuantoConfig
quant_config = QuantoConfig(weights="int8")
model = AutoModelForSpeechSeq2Seq.from_pretrained(
"openai/whisper-large-v2",
torch_dtype="auto",
device_map="auto",
quantization_config=quant_config
)
model = torch.compile(model)
资源
阅读 Quanto: Optimum 的 PyTorch 量化后端 博客文章,了解更多关于库设计和基准测试的信息。
有关更多实践示例,请查看 Quanto notebook。
< > 在 GitHub 上更新