Transformers documentation
HIGGS
HIGGS
HIGGS est un algorithme de quantification zero-shot qui combine un prétraitement de Hadamard avec des grilles de quantification optimales par MSE afin d’obtenir une erreur de quantification plus faible et des performances de pointe.
La prise en charge de HIGGS au moment de l’exécution est assurée par la bibliothèque FLUTE. Seules les variantes 70B et 405B de Llama 3 et Llama 3.0, ainsi que les variantes 8B et 27B de Gemma 2, sont actuellement prises en charge. HIGGS ne prend pas non plus en charge, pour le moment, l’entraînement quantifié ni les passes arrière en général.
Exécutez la commande ci-dessous pour installer FLUTE.
pip install flute-kernel
pip install flute-kernel -i https://flute-ai.github.io/whl/cu11.8
Créez un HiggsConfig avec le nombre de bits pour quantiser un modèle.
from transformers import AutoModelForCausalLM, AutoTokenizer, HiggsConfig
model = AutoModelForCausalLM.from_pretrained(
"google/gemma-2-9b-it",
quantization_config=HiggsConfig(bits=4),
device_map="auto",
)Retrouvez les modèles pré-quantifiés avec HIGGS dans la collection officielle d’ISTA-DASLab.
torch.compile
HIGGS est entièrement compatible avec 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)Reportez-vous au tableau ci-dessous pour un benchmark des passes avant/sec pour Llama-3.1-8B-Instruct sur une RTX4090.
| Taille du lot | BF16 (avec torch.compile) | HIGGS 4 bits (sans torch.compile) | HIGGS 4 bits (avec torch.compile) |
|---|---|---|---|
| 1 | 59 | 41 | 124 |
| 4 | 57 | 42 | 123 |
| 16 | 56 | 41 | 120 |