Transformers documentation
HIGGS
HIGGS
HIGGS — это алгоритм квантования в режиме zero-shot, который сочетает предобработку с использованием преобразования Хадамар с сетками квантования, оптимизированными по критерию MSE, для достижения меньшей ошибки квантования и передовых показателей производительности.
Поддержка HIGGS во время выполнения реализована с помощью библиотеки FLUTE. В настоящее время поддерживаются только варианты Llama 3 и Llama 3.0 на 70B и 405B, а также варианты Gemma 2 на 8B и 27B. Кроме того, HIGGS пока не поддерживает квантованное обучение и обратные проходы в целом.
Выполните команду ниже, чтобы установить FLUTE.
pip install flute-kernel
pip install flute-kernel -i https://flute-ai.github.io/whl/cu11.8
Создайте HiggsConfig с указанием количества бит для квантования модели.
from transformers import AutoModelForCausalLM, AutoTokenizer, HiggsConfig
model = AutoModelForCausalLM.from_pretrained(
"google/gemma-2-9b-it",
quantization_config=HiggsConfig(bits=4),
device_map="auto",
)Найдите модели, предварительно квантованные с помощью HIGGS, в официальной коллекции ISTA-DASLab.
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)См. таблицу ниже с бенчмарком количества прямых проходов/сек для Llama-3.1-8B-Instruct на RTX4090.
| Размер батча | BF16 (с torch.compile) | HIGGS 4bit (без torch.compile) | HIGGS 4bit (с torch.compile) |
|---|---|---|---|
| 1 | 59 | 41 | 124 |
| 4 | 57 | 42 | 123 |
| 16 | 56 | 41 | 120 |