Transformers documentation

EETQ

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
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