EETQ
该 EETQ 库支持 NVIDIA GPU 的 int8 每通道仅权重量化。高性能 GEMM 和 GEMV 内核来自 FasterTransformer 和 TensorRT-LLM。它不需要校准数据集,也不需要预先量化您的模型。此外,由于每通道量化,精度下降可以忽略不计。
请确保您已从 发布页面 安装了 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
或通过源代码 https://github.com/NetEase-FuXi/EETQ。EETQ 需要 CUDA 能力 <= 8.9 且 >= 7.0
git clone https://github.com/NetEase-FuXi/EETQ.git
cd EETQ/
git submodule update --init --recursive
pip install .
未量化的模型可以通过“from_pretrained”进行量化。
from transformers import AutoModelForCausalLM, EetqConfig
path = "/path/to/model"
quantization_config = EetqConfig("int8")
model = AutoModelForCausalLM.from_pretrained(path, device_map="auto", quantization_config=quantization_config)
量化的模型可以通过“saved_pretrained”进行保存,并可以通过“from_pretrained”再次使用。
quant_path = "/path/to/save/quantized/model"
model.save_pretrained(quant_path)
model = AutoModelForCausalLM.from_pretrained(quant_path, device_map="auto")