准备W8A8权重
前提条件
DeepSeek模型较大,且存在需要手动适配的点,为了避免浪费时间,还请在运行脚本前,请根据以下步骤对相关内容进行更改。
W8A8权重量化
 
   - 权重量化参考昇腾模型压缩工具:https://gitee.com/ascend/msit/blob/master/msmodelslim/README.md
 - 执行install过程会下载依赖包,因此需要确保能够访问到pip源。
 - 量化过程依赖NPU资源。
 - 量化后的权重保存路径不能包含英文句号"."等特殊字符,例如“/data/model/DeepSeek-V3.1-W8A8”中包含"."会导致服务启动失败,建议路径只包含字母数字中划线下划线。
 
介绍如何将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动态量化  | 
     
       指定即开启  | 
    
  
    
