Transformers 文档
HQQ
加入 Hugging Face 社区
并获取增强的文档体验
开始使用
HQQ
半精度二次量化 (HQQ) 支持对 8、4、3、2 甚至 1 位进行快速即时量化。它不需要校准数据,并且与任何模型模态(LLM、视觉等)兼容。
HQQ 进一步支持使用 PEFT 进行微调,并且完全兼容 torch.compile,以实现更快的推理和训练。
使用以下命令安装 HQQ 以获取最新版本并构建其对应的 CUDA 内核。
pip install hqq
您可以选择使用相同的量化配置替换模型中的所有线性层,也可以为特定的线性层指定特定的量化配置。
替换所有层
仅特定层
通过创建 HqqConfig 并指定 nbits
和 group_size
来量化模型,以替换模型的所有线性层 (torch.nn.Linear)。
from transformers import AutoModelForCausalLM, AutoTokenizer, HqqConfig
quant_config = HqqConfig(nbits=8, group_size=64)
model = transformers.AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-3.1-8B",
torch_dtype=torch.float16,
device_map="cuda",
quantization_config=quant_config
)
后端
HQQ 支持各种后端,包括纯 PyTorch 和自定义反量化 CUDA 内核。这些后端适用于较旧的 GPU 和 PEFT/QLoRA 训练。
from hqq.core.quantize import *
HQQLinear.set_backend(HQQBackend.PYTORCH)
为了更快的推理,HQQ 在模型量化后支持 4 位融合内核(torchao 和 Marlin)。在单个 4090 上,这些内核可以达到每秒 200 个 tokens。下面的示例演示了启用 torchao_int4 后端。
from hqq.utils.patching import prepare_for_inference
prepare_for_inference("model", backend="torchao_int4")
有关更多详细信息,请参阅 后端 指南。
资源
阅读大型机器学习模型的半精度二次量化博客文章,了解有关 HQQ 的更多详细信息。
< > 在 GitHub 上更新