已关闭
add Qwen3 32B V1 W8A8 quant and docs #4814
panyj1993创建于 2025年12月11日关闭于 4月7日
add Qwen3 32B V1 W8A8 quant and docs #4814
已关闭
panyj1993创建于 2025年12月11日关闭于 4月7日
共 2 个文件变更+94-41
@@ -1,7 +1,6 @@
1# 一键量化快速入门1# 一键量化快速入门
2 2 
3-一键量化功能面向零基础用户,集成热门开源模型量化功能,具备“开箱即用”的特性。本功能支持全局调用量化命令,用户指定必要参数后,即可对目标原始权重执行指定的量化操作。3+一键量化功能面向零基础用户,集成热门开源模型量化功能,具备“开箱即用”的特性。本功能支持全局调用量化命令,用户指定必要参数后,即可对目标原始权重执行指定的量化操作。下面将以 Qwen3-32B W8A8量化 为例进行介绍。
4-下面将以 Qwen2.5-7B-Instruct 为例进行介绍。
5 4 
6## 前置条件5## 前置条件
7 6 
@@ -11,37 +10,76 @@
11 10 
12### 2.下载大模型原始浮点权重11### 2.下载大模型原始浮点权重
13 12 
14-以 Qwen2.5-7B-Instruct 为例,可前往[Qwen2.5-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct)获取原始模型权重。13+以 Qwen3-32B 为例,可前往[Qwen3-32B](https://huggingface.co/Qwen/Qwen3-32B/tree/main)获取原始模型权重。
15 14 
16-### 3.安装其他依赖(与模型相关)15+## 使用msModelSlim工具进行Qwen3-32B W8A8量化
17 16 
18-```shell17+Qwen3-32B W8A8量化一键量化功能通过命令行方式启动,正确安装 msModelSlim 工具后,可以通过如下命令运行:
19-pip install transformers==4.43.1
20-```
21- 
22-## 工具使用说明
23- 
24-一键量化功能通过命令行方式启动,正确安装 msModelSlim 工具后,可以通过如下命令运行:
25 18 
26```bash19```bash
27msmodelslim quant [ARGS]20msmodelslim quant [ARGS]
28```21```
29 22 
30-例如,使用一键量化功能量化 Qwen2.5-7B-Instruct 模型,量化方式采用 w8a8 ,则量化命令如下,其中\${MODEL_PATH}为Qwen2.5-7B-Instruct原始浮点权重路径,\${SAVE_PATH}为用户自定义的量化权重保存路径。详细接口说明请参考[一键量化接口说明](../功能指南/一键量化/使用说明.md#接口说明)。请注意`trust_remote_code`为`True`时可能执行浮点模型权重中代码文件,请确保浮点模型来源安全可靠。23+例如,使用一键量化功能量化 Qwen3-32B 模型,量化方式采用 w8a8 ,则量化命令如下,其中\${MODEL_PATH}为Qwen3-32B原始浮点权重路径,\${SAVE_PATH}为用户自定义的量化权重保存路径。请注意`trust_remote_code`为`True`时可能执行浮点模型权重中代码文件,请确保浮点模型来源安全可靠。
31 24 
32```bash25```bash
33-msmodelslim quant --model_path ${MODEL_PATH} --save_path ${SAVE_PATH} --device npu --model_type Qwen2.5-7B-Instruct --quant_type w8a8 --trust_remote_code True26+msmodelslim quant --model_path {MODEL_PATH} --save_path {SAVE_PATH} --device npu --model_type Qwen3-32B --quant_type w8a8 --trust_remote_code True
34```27```
35 28 
36用户输入命令后,系统将根据指定需求,在最佳实践库中匹配到最佳配置从而实施量化。29用户输入命令后,系统将根据指定需求,在最佳实践库中匹配到最佳配置从而实施量化。
37 30 
31+**一键量化配置介绍:**
32+ 
33+```yaml
34+apiversion: modelslim_v1 # 使用V1量化框架
35+metadata:
36+ config_id: qwen3-32b-dense-w8a8
37+ ...
38+ label: # 使用W8A8量化
39+ w_bit: 8
40+ a_bit: 8
41+ is_sparse: False
42+ kv_cache: False
43+spec: # 量化服务配置
44+ process:
45+ - type: "iter_smooth" # 使用iter_smooth离群值抑制算法
46+ ...
47+ - type: "linear_quant" # 线性层量化配置
48+ qconfig:
49+ act: # 激活值量化使用int8 per_tensor非对称量化,采用minmax算法
50+ scope: "per_tensor"
51+ dtype: "int8"
52+ symmetric: False
53+ method: "minmax"
54+ weight: # 权重值量化使用int8 per_channel对称量化,采用minmax算法
55+ scope: "per_channel"
56+ dtype: "int8"
57+ symmetric: True
58+ method: "minmax"
59+ include: ["*"] #包含所有层量化,但排除"down_proj"的9个层。
60+ exclude:
61+ - 'model.layers.1.mlp.down_proj'
62+ - 'model.layers.2.mlp.down_proj'
63+ - 'model.layers.6.mlp.down_proj'
64+ - 'model.layers.7.mlp.down_proj'
65+ - 'model.layers.11.mlp.down_proj'
66+ - 'model.layers.43.mlp.down_proj'
67+ - 'model.layers.44.mlp.down_proj'
68+ - 'model.layers.45.mlp.down_proj'
69+ - 'model.layers.62.mlp.down_proj'
70+ save:
71+ - type: "ascendv1_saver"
72+ part_file_size: 4 # 分片文件大小(GB)
73+ dataset: "qwen3_cot.json" # 配置校准数据集
74+```
75+ 
38**量化结果输出展示:**76**量化结果输出展示:**
39 77 
40```yaml78```yaml
41├── config.json # 原始模型配置文件79├── config.json # 原始模型配置文件
42├── generation_config.json # 原始生成配置文件 80├── generation_config.json # 原始生成配置文件
43├── quant_model_description.json # 量化权重描述文件81├── quant_model_description.json # 量化权重描述文件
44-├── quant_model_weight_w8a8.safetensors # 量化权重文件82+├── quant_model_weights-0000x-of-0000x.safetensors # 量化权重文件
45├── tokenizer_config.json # 原始分词器配置文件83├── tokenizer_config.json # 原始分词器配置文件
46├── tokenizer.json # 原始分词器词汇表84├── tokenizer.json # 原始分词器词汇表
47└── vocab.json # 原始词汇映射文件85└── vocab.json # 原始词汇映射文件
@@ -52,10 +90,8 @@ msmodelslim quant --model_path ${MODEL_PATH} --save_path ${SAVE_PATH} --device n
52> - `quant_model_weight_w8a8.safetensors` - 实际的量化模型权重(W8A8表示权重8位量化、激活8位量化)。90> - `quant_model_weight_w8a8.safetensors` - 实际的量化模型权重(W8A8表示权重8位量化、激活8位量化)。
53> - 其他文件为模型推理所需的配置和词汇表文件,来自原始浮点目录。91> - 其他文件为模型推理所需的配置和词汇表文件,来自原始浮点目录。
54 92 
55-## 一键量化支持矩阵93+## 量化模型部署与测评
56- 94+使用msModelSlim工具完成量化的模型,可使用vLLM-Ascend和MindIE推理框架进行部署,以vLLM-Ascend Qwen3-32B W8A8量化部署为例,可参考[deployment](https://docs.vllm.ai/projects/ascend/en/latest/tutorials/Qwen3-Dense.html#deployment)进行模型部署,完成部署后参考[accuracy-evaluation](https://docs.vllm.ai/projects/ascend/en/latest/tutorials/Qwen3-Dense.html#accuracy-evaluation)和[performance](https://docs.vllm.ai/projects/ascend/en/latest/tutorials/Qwen3-Dense.html#performance)进行精度和性能的测评。
57-可通过[大模型支持矩阵](../支持矩阵/大模型支持矩阵.md)查看不同模型的一键量化支持情况,其中标记了`一键量化`的模型则已支持一键量化。
58 95 
59## 相关资料96## 相关资料
60-- 对于过大的模型,可以参考[一键量化的逐层量化特性说明](../功能指南/一键量化/features/layer_wise_quantization.md)使用逐层量化,能够明显降低显存使用。97+- 一键量化接口说明详细接口说明请参考[一键量化接口说明](../功能指南/一键量化/使用说明.md#接口说明)。
61-- 对于一键量化支持的多种算法,可以参考[一键量化V1架构支持的算法](../算法说明/)。
@@ -1,4 +1,4 @@
1-apiversion: modelslim_v01+apiversion: modelslim_v1
2metadata:2metadata:
3 config_id: qwen3-32b-dense-w8a83 config_id: qwen3-32b-dense-w8a8
4 score: 904 score: 90
@@ -10,24 +10,41 @@ metadata:
10 is_sparse: False10 is_sparse: False
11 kv_cache: False11 kv_cache: False
12spec:12spec:
13- anti_cfg:13+ process:
14- anti_method: m414+ - type: "iter_smooth"
15- calib_cfg:15+ alpha: 0.5
16- w_bit: 816+ scale_min: 1e-5
17- a_bit: 817+ enable_subgraph_type:
18- mm_tensor: False18+ - 'norm-linear'
19- pdmix: True19+ - 'linear-linear'
20- disable_names:20+ - 'ov'
21- - 'lm_head'21+ - 'up-down'
22- - 'model.layers.1.mlp.down_proj'22+ include:
23- - 'model.layers.2.mlp.down_proj'23+ - "*"
24- - 'model.layers.6.mlp.down_proj'24+ - type: "linear_quant"
25- - 'model.layers.7.mlp.down_proj'25+ qconfig:
26- - 'model.layers.11.mlp.down_proj'26+ act:
27- - 'model.layers.43.mlp.down_proj'27+ scope: "per_tensor"
28- - 'model.layers.44.mlp.down_proj'28+ dtype: "int8"
29- - 'model.layers.45.mlp.down_proj'29+ symmetric: False
30- - 'model.layers.62.mlp.down_proj'30+ method: "minmax"
31- calib_dataset: mix_calib.jsonl31+ weight:
32- calib_save_params:32+ scope: "per_channel"
33- part_file_size: 433+ dtype: "int8"
34+ symmetric: True
35+ method: "minmax"
36+ include: ["*"]
37+ exclude:
38+ - 'model.layers.1.mlp.down_proj'
39+ - 'model.layers.2.mlp.down_proj'
40+ - 'model.layers.6.mlp.down_proj'
41+ - 'model.layers.7.mlp.down_proj'
42+ - 'model.layers.11.mlp.down_proj'
43+ - 'model.layers.43.mlp.down_proj'
44+ - 'model.layers.44.mlp.down_proj'
45+ - 'model.layers.45.mlp.down_proj'
46+ - 'model.layers.62.mlp.down_proj'
47+ save:
48+ - type: "ascendv1_saver"
49+ part_file_size: 4
50+ dataset: "qwen3_cot.json"