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 个 Token。下面的示例演示了如何启用 torchao_int4 后端。
from hqq.utils.patching import prepare_for_inference
prepare_for_inference("model", backend="torchao_int4")
有关详细信息,请参阅 后端 指南。
资源
阅读博客文章大型机器学习模型的半二次量化,了解更多关于 HQQ 的信息。
< > 在 GitHub 上更新