使用AWQ量化工具转换权重
AWQ(W4A16)量化方案能显著降低模型显存以及需要部署的卡数。降低小batch下的增量推理时延。支持AWQ量化的模型列表请参见支持的模型列表和权重文件。
本章节介绍如何在Notebook使用AWQ量化工具实现推理量化,量化方法为per-group。
Step1 模型量化
可以在Huggingface开源社区获取AWQ量化后的模型权重;或者获取FP16/BF16的模型权重之后,通过autoAWQ工具进行量化。
方式一:从开源社区下载发布的AWQ量化模型。
https://huggingface.co/models?sort=trending&search=QWEN+AWQ
方式二:使用AutoAWQ量化工具进行量化。
export ASCEND_RT_VISIBLE_DEVICES=0 #设置使用NPU单卡执行模型量化 python examples/quantize.py --model-path /home/ma-user/llama-2-7b/ --quant-path /home/ma-user/llama-2-7b-awq/ --calib-data /home/ma-user/mit-han-lab/pile-val-backup
参数说明:
- --model-path:原始模型权重路径。
- --quan-path:转换后权重保存路径。
- --calib-data:数据集路径,推荐使用:https://huggingface.co/datasets/mit-han-lab/pile-val-backup/resolve/main/val.jsonl.zst,注意需指定到val.jsonl的上一级目录。
详细说明可以参考vLLM官网:https://docs.vllm.ai/en/latest/quantization/auto_awq.html。
Step2 权重格式转换
AutoAWQ量化完成后,使用int32对int4的权重进行打包。昇腾上使用int8对权重进行打包,需要进行权重转换。
进入llm_tools/AutoAWQ代码目录下执行以下脚本:
执行时间预计10分钟。执行完成后会将权重路径下的原始权重替换成转换后的权重。如需保留之前权重格式,请在转换前备份。
python convert_awq_to_npu.py --model /home/ma-user/Qwen1.5-72B-Chat-AWQ
参数说明:
model:模型路径。