Transformers documentation

EETQ

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

EETQ

Библиотека Easy & Efficient Quantization for Transformers (EETQ) поддерживает int8 weight-only per-channel квантование для GPU NVIDIA. Она использует высокопроизводительные ядра GEMM и GEMV из FasterTransformer и TensorRT-LLM. Слой внимания оптимизирован с помощью FlashAttention2. Набор данных для калибровки не требуется, а модель не нужно предварительно квантовать. Потеря точности незначительна благодаря per-channel квантованию.

EETQ также поддерживает дообучение с использованием PEFT.

Установите EETQ со страницы релизов или из исходного кода. Для EETQ требуется CUDA 11.4+.

страница выпуска
исходный код
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

Квантуйте модель на лету, определив тип данных квантования в 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
)

Сохраните квантованную модель с помощью save_pretrained(), чтобы её можно было повторно загрузить с помощью 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