Transformers 文件

HIGGS

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

HIGGS

HIGGS 是一種零樣本量化演算法,它將哈達瑪預處理與 MSE-最優量化網格相結合,以實現更低的量化誤差和最先進的效能。

HIGGS 的執行時支援透過 FLUTE 庫實現。目前僅支援 Llama 3 和 Llama 3.0 的 70B 和 405B 變體,以及 Gemma 2 的 8B 和 27B 變體。HIGGS 目前通常也不支援量化訓練和反向傳播。

執行以下命令安裝 FLUTE。

CUDA 12.1
CUDA 11.8
pip install flute-kernel

使用要將模型量化到的位數建立 HiggsConfig

from transformers import AutoModelForCausalLM, AutoTokenizer, HiggsConfig

model = AutoModelForCausalLM.from_pretrained(
    "google/gemma-2-9b-it",
    quantization_config=HiggsConfig(bits=4),
    device_map="auto",
)

在官方 ISTA-DASLab collection 中查詢已使用 HIGGS 預量化的模型。

torch.compile

HIGGS 完全相容 torch.compile

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, HiggsConfig

model = AutoModelForCausalLM.from_pretrained(
    "google/gemma-2-9b-it",
    quantization_config=HiggsConfig(bits=4),
    device_map="auto",
)

model = torch.compile(model)

請參考下表,瞭解在 RTX4090 上 Llama-3.1-8B-Instruct 的每秒前向傳播基準。

批次大小 BF16(帶 torch.compile HIGGS 4位(不帶 torch.compile HIGGS 4位(帶 torch.compile
1 59 41 124
4 57 42 123
16 56 41 120
< > 在 GitHub 上更新

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