Transformers 文件

HQQ

Hugging Face's logo
加入 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 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.