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 上更新