Transformers documentation
EETQ
EETQ
La bibliothèque Easy & Efficient Quantization for Transformers (EETQ) prend en charge la quantification int8 poids uniquement par canal pour les GPU NVIDIA. Elle utilise des noyaux GEMM et GEMV haute performance issus de FasterTransformer et TensorRT-LLM. La couche d’attention est optimisée avec FlashAttention2. Aucun jeu de données de calibration n’est requis, et le modèle n’a pas besoin d’être pré-quantifié. La dégradation de la précision est négligeable grâce à la quantification par canal.
EETQ prend en outre en charge le fine-tuning avec PEFT.
Installez EETQ depuis la page des versions ou le code source. CUDA 11.4 ou supérieur est requis pour EETQ.
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
git clone https://github.com/NetEase-FuXi/EETQ.git
cd EETQ/
git submodule update --init --recursive
pip install .Quantifiez un modèle à la volée en définissant le type de données de quantification dans 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
)Enregistrez le modèle quantifié avec save_pretrained() afin de pouvoir le réutiliser avec from_pretrained().
quant_path = "/path/to/save/quantized/model"
model.save_pretrained(quant_path)
model = AutoModelForCausalLM.from_pretrained(quant_path, device_map="auto")