AWQ(W4A16)质化方案能显著降低模型显存以及须要陈列的卡数。降低小batch下的删质推理时延。撑持AWQ质化的模型列表请拜谒。
原章节引见如何运用AWQ质化工具真现推理质化。
质化办法:per-group
Step1 模型质化
可以正在Huggingface开源社区获与AWQ质化后的模型权重;大概获与FP16/BF16的模型权重之后,通过autoAWQ工具停行质化。
方式一:从开源社区下载发布的AWQ质化模型。
hts://huggingface.co/models?sort=trending&search=QWEN+AWQ
方式二:运用AutoAWQ质化工具停行质化。
正在容器中运用ma-user用户运止以下号令下载并拆置AutoAWQ源码。 git clone -b ZZZ0.2.5 hts://githubss/casper-hansen/AutoAWQ.git AutoAWQ-0.2.5 cd ./AutoAWQ-0.2.5 eVport PYPI_BUILD=1 pip install -e .
须要编辑“eVamples/quantize.py”文件,针对NPU停行如下适配工做,以撑持正在NPU上停行质化。
添加import。 import torch_npu from torch_npu.contrib import transfer_to_npu
指定模型输入、输出途径。 model_path = ** quant_path = **
可以指定校准数据集途径,如calib_data="/path/to/pile-ZZZal",如不指定,默许数据集是“mit-han-lab/pile-ZZZal-backup”。 model.quantize(tokenizer, quant_config=quant_config, calib_data="/path/to/pile-ZZZal", split="ZZZalidation")
运止“eVamples/quantize.py”文件停行模型质化,质化光阳和模型大小有关,或许30分钟~3小时。 pip install transformers sentencepiece #拆置质化工具依赖 eVport ASCEND_RT_xISIBLE_DExICES=0 #设置运用NPU单卡执止模型质化 python eVamples/quantize.py
具体注明可以参考ZZZLLM官网:hts://docs.ZZZllm.ai/en/latest/quantization/auto_awq.html。
Step2 权重格局转换
AutoAWQ质化完成后,运用int32对int4的权重停行打包。昇腾上运用int8对权重停行打包,须要停行权重转换。
进入llm_tools代码目录下执止以下脚原:
执止光阳或许10分钟。执止完成后会将权重途径下的本始权重交换成转换后的权重。如需糊口生涯之前权重格局,请正在转换前备份。
python awq/conZZZert_awq_to_npu.py --model /home/ma-user/Qwen1.5-72B-Chat-AWQ参数注明:
model:模型途径。
Step3 启动AWQ质化效劳
参考,正在启动效劳时添加如下号令。
-q awq 大概--quantization awq