Transformers documentation

EETQ

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

EETQ

A biblioteca Easy & Efficient Quantization for Transformers (EETQ) suporta quantização int8 apenas de pesos por canal para GPUs NVIDIA. Ela utiliza kernels de GEMM e GEMV de alto desempenho do FasterTransformer e do TensorRT-LLM. A camada de atenção é otimizada com FlashAttention2. Não é necessário um conjunto de dados de calibração, e o modelo não precisa ser pré-quantizado. A degradação de precisão é negligenciável devido à quantização por canal.

O EETQ também oferece suporte ao fine-tuning com PEFT.

Instale o EETQ a partir da página de releases ou do código-fonte. O CUDA 11.4+ é obrigatório para o EETQ.

página de lançamento
código-fonte
pip install --no-cache-dir https://github.com/NetEase-FuXi/EETQ/releases/download/v1.0.0/EETQ-1.0.0+cu121+torch2.1.2-cp310-cp310-linux_x86_64.whl

Quantize um modelo em tempo de execução definindo o tipo de dados de quantização em EetqConfig.

from transformers import AutoModelForCausalLM, EetqConfig

quantization_config = EetqConfig("int8")
model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-3.1-8B",
    dtype="auto",
    device_map="auto",
    quantization_config=quantization_config
)

Salve o modelo quantizado com save_pretrained() para que ele possa ser reutilizado novamente com from_pretrained().

quant_path = "/path/to/save/quantized/model"
model.save_pretrained(quant_path)
model = AutoModelForCausalLM.from_pretrained(quant_path, device_map="auto")
Update on GitHub