Transformers documentation
HIGGS
HIGGS
HIGGS é um algoritmo de quantização zero-shot que combina o pré-processamento Hadamard com grades de quantização MSE-Optimal para alcançar menor erro de quantização e desempenho de estado da arte.
O suporte em tempo de execução para HIGGS é implementado por meio da biblioteca FLUTE. Atualmente, apenas as variantes de 70B e 405B do Llama 3 e Llama 3.0, bem como as variantes de 8B e 27B do Gemma 2, são suportadas. O HIGGS também não suporta, no momento, treinamento quantizado e passes de retropropagação em geral.
Execute o comando abaixo para instalar o FLUTE.
pip install flute-kernel
pip install flute-kernel -i https://flute-ai.github.io/whl/cu11.8
Crie um HiggsConfig com o número de bits para quantizar um modelo.
from transformers import AutoModelForCausalLM, AutoTokenizer, HiggsConfig
model = AutoModelForCausalLM.from_pretrained(
"google/gemma-2-9b-it",
quantization_config=HiggsConfig(bits=4),
device_map="auto",
)Encontre modelos pré-quantizados com HIGGS na coleção oficial do ISTA-DASLab.
torch.compile
HIGGS é totalmente compatível com 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)Consulte a tabela abaixo para um benchmark de passes de forward/seg para o Llama-3.1-8B-Instruct em uma RTX4090.
| Tamanho do Lote | BF16 (com torch.compile) | HIGGS 4bit (sem torch.compile) | HIGGS 4bit (com torch.compile) |
|---|---|---|---|
| 1 | 59 | 41 | 124 |
| 4 | 57 | 42 | 123 |
| 16 | 56 | 41 | 120 |