准备W8A8权重
前提条件
DeepSeek模型较大,且存在需要手动适配的点,为了避免浪费时间,还请在运行脚本前,请根据以下步骤对相关内容进行更改。
- 昇腾不支持flash_attn库,运行时需要注释掉权重文件夹中modeling_deepseek.py中的部分代码:
- 需要安装transformers指定版本4.48.2,执行如下命令:
pip install transformers==4.48.2
- 当前Transformers不支持FP8量化格式加载,需要将权重文件夹中config.json中的以下字段删除:
W8A8权重量化

- 权重量化参考昇腾模型压缩工具:https://gitee.com/ascend/msit/blob/master/msmodelslim/README.md
- 执行install过程会下载依赖包,因此需要确保能够访问到pip源。
- 量化过程依赖NPU资源。
介绍如何将FP8权重量化为W8A8的权重,具体操作步骤如下。
- 基于该基础镜像启动容器,进行权重量化。
crictl pull swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_ascend:pytorch_2.5.1-cann_8.1.rc1-py_3.10-hce_2.0.2503-aarch64-snt9b-20250514161205-a9c5055
- 按顺序执行以下命令,开始量化:
# 推荐该验证过的分支 git clone https://gitee.com/ascend/msit -b 8.0.RC1_ZS2.0_20251230 # 安装msmodelslim,{path}需要替换为msit/msmodelslim所在的绝对路径 cd msit/msmodelslim bash install.sh export PYTHONPATH={path}:$PYTHONPATH cd example/DeepSeek/ python3 quant_deepseek_w8a8.py --model_path {FP8原始权重路径} --save_path {W8A8量化权重路径} --dynamic --disable_anti --quant_mtp --from_fp8
说明:
- 将W8A8量化替换配置文件 - config.json替换掉权重文件夹中原来的文件。(V3与R1模型一致)
- 将量化好的权重上传至存储配置中的挂载目录的子目录,例如:/mnt/deepseek/model。
量化参数说明:
参数 |
约束 |
描述 |
开启方式 |
---|---|---|---|
--model_path |
必选 |
输入DeepSeek原始权重路径 |
需要传参 |
--save_path |
必选 |
输出量化后权重保存路径 |
需要传参 |
--anti_dataset |
可选 |
离群值抑制校准集路径 |
需要传参 |
--calib_dataset |
可选 |
量化校准集路径 |
需要传参 |
--batch_size |
可选 |
生成量化校准数据时使用的batch size。batch size越大,校准速度越快,但也要求更多的显存和内存,如资源受限,请降低batch size。默认值为4。 |
需要传参 |
--from_fp8 |
可选 |
指定原模型为FP8权重 |
指定即开启 |
--dynamic |
可选 |
是否使用动态量化 |
指定即开启 |
--disable_anti |
可选 |
是否禁用离群值抑制 |
指定即开启 |
--quant_mtp |
可选 |
是否开启MTP层的W8A8动态量化 |
指定即开启 |