1.量化评价评价
本文主要对qwen2.5-72B-Instruct模型的量化效果进行评价,分别从模型精度损失和模型推理服务性能提升两个方面进行评测。
评测工具使用evalscope,该工具可以对模型的精度和性能进行评测,简单易用,且带有ui界面方面效果对比。
2.量化过程
2.1 量化工具
msit/msmodelslim
msit/msmodelslim/example/Qwen · Ascend/msit - AtomGit | GitCode
2.2 量化命令过程
w8a8
bash
python3 quant_qwen.py \
--model_path {/path/to/origin_weights} \
--save_directory {/path/to/quantize_weight} \
--device_type npu \
--calib_file {/path/to/common/qwen_mix_dataset.json} \
--w_bit 8 --a_bit 8 \
--anti_method m4 --act_method 1 --trust_remote_code True
w4a16
bash
python quant_qwen.py \
--model_path {/path/to/origin_weights} \
--save_directory {/path/to/quantize_weight} \
--device_type npu \
--calib_file {/path/to/common/qwen_mix_dataset.json} \
--w_bit 4 \
--a_bit 16 \
--is_lowbit True \
--open_outlier False \
--group_size 128 \
--anti_method m3 \
--trust_remote_code True
3.量化效果评价
3.1 模型精度损失评价
评测工具evalscope
测试数据集工包括9个子集,包括mmlu-pro、ceval、math-500、aime2024等,共计3030条数据(各子集最大500条,如果超过500进行随机采样,不足500按实际样本数量)
| 精度 | code | math&science | chinese | english | 最大精度损失 |
|---|---|---|---|---|---|
| bf16 | 0.2912 | 0.7349 | 0.8532 | 0.8300 | 0 |
| w8a8 | 0.2802 | 0.7225 | 0.8484 | 0.8258 | 0.012 |
| w4a16 | 0.2747 | 0.7088 | 0.8436 | 0.8320 | 0.0261 |
3.2 模型性能评价
性能评价使用2个case------输入1k输出128,输入2k输出2k,分别进行1-60并发,步长10的梯度压测。
同等部署资源8卡,时延优先, 对比可提供的并发路数。
SLO要求10token/s(TPOP 100ms)。
1k输出ttft,5s;2k输出ttft,10s
| 精度 | 单实例部署卡数 | 单实例并发路数 1k-128 | 8卡并发 | 提升倍率 |
|---|---|---|---|---|
| bf16 | 8 | 70 | 70 | 1 |
| w8a8 | 4 | 35 | 70 | 1.125 |
| w4a16 | 2 | 10 | 40 | 0.53 |
同等部署资源-8卡,吞吐优先, 对比可提供的并发路数。
端到端时延1k-128 < 25s。2k-2k <180s:
| 精度 | 单实例部署卡数 | 单实例吞吐 1k-128 | 8卡吞吐 | 提升倍率 |
|---|---|---|---|---|
| bf16 | 8 | 5 | 5 | 1 |
| w8a8 | 4 | 3.7 | 7.4 | 1.46 |
| w4a16 | 2 | 0.9 | 3.6 | 0.58 |
3.2.1 baseline
|-------|--------|----------|----------|----------|---------|-------|
| input | output | pool_num | TTFT_p90 | TPOT_avg | e2e_P90 | QPS |
| 1024 | 128 | 1 | 0.215 | 0.031 | 4.559 | 0.243 |
| | | 10 | 0.43 | 0.042 | 6.348 | 1.726 |
| | | 20 | 0.733 | 0.054 | 8.243 | 2.687 |
| | | 30 | 2.948 | 0.062 | 10.686 | 3.332 |
| | | 40 | 2.615 | 0.072 | 12.759 | 3.785 |
| | | 50 | 2.966 | 0.084 | 14.484 | 4.11 |
| | | 60 | 5.04 | 0.094 | 16.687 | 4.36 |
| | | 70 | 5.058 | 0.106 | 18.551 | 4.571 |
| | | 80 | 4.774 | 0.116 | 20.939 | 4.735 |
| | | 90 | 6.892 | 0.128 | 23.041 | 4.86 |
| | | 100 | 6.994 | 0.137 | 25.227 | 5.001 |
3.2.2 w8a8
1k-128:
bash
### 输入1k 输出128
╭──────────────────────────────────────────────────────────╮
│ Performance Test Summary Report │
╰──────────────────────────────────────────────────────────╯
Basic Information:
┌───────────────────────┬──────────────────────────────────┐
│ Model │ Qwen2p5_72B_Instruct_w8a8 │
│ Total Generated │ 148,400.0 tokens │
│ Total Test Time │ 401.95 seconds │
│ Avg Output Rate │ 369.20 tokens/sec │
└───────────────────────┴──────────────────────────────────┘
Detailed Performance Metrics
┏━━━━━━┳━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┓
┃ ┃ ┃ Avg ┃ P99 ┃ Gen. ┃ Avg ┃ P99 ┃ Avg ┃ P99 ┃ Success┃
┃Conc. ┃ RPS ┃ Lat.(s) ┃ Lat.(s) ┃ toks/s ┃ TTFT(s) ┃ TTFT(s) ┃ TPOT(s) ┃ TPOT(s) ┃ Rate┃
┡━━━━━━╇━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━┩
│ 1 │ 0.24 │ 4.652 │ 4.706 │ 33.32 │ 0.221 │ 0.281 │ 0.032 │ 0.032 │ 100.0%│
│ 10 │ 1.50 │ 6.659 │ 6.709 │ 210.02 │ 1.288 │ 1.672 │ 0.039 │ 0.042 │ 100.0%│
│ 20 │ 2.28 │ 8.747 │ 8.813 │ 318.60 │ 2.662 │ 3.201 │ 0.044 │ 0.062 │ 100.0%│
│ 30 │ 2.75 │ 10.913 │ 11.009 │ 384.46 │ 3.661 │ 4.848 │ 0.052 │ 0.077 │ 100.0%│
│ 40 │ 3.10 │ 12.897 │ 12.989 │ 433.73 │ 4.592 │ 6.345 │ 0.060 │ 0.091 │ 100.0%│
│ 50 │ 3.36 │ 14.878 │ 15.037 │ 470.00 │ 5.325 │ 7.962 │ 0.069 │ 0.105 │ 100.0%│
│ 60 │ 3.56 │ 16.857 │ 16.944 │ 497.80 │ 6.204 │ 9.494 │ 0.077 │ 0.119 │ 100.0%│
└──────┴──────┴──────────┴──────────┴─────────┴──────────┴─────────┴──────────┴─────────┴──────────┘
Best Performance Configuration
Highest RPS Concurrency 60 (3.56 req/sec)
Lowest Latency Concurrency 1 (4.652 seconds)
3.2.3 w4a16
1k-128
bash
###########################################################
## 输入1k 输出128
Basic Information:
┌───────────────────────┬──────────────────────────────────┐
│ Model │ Qwen2p5_72B_Instruct_w4a16 │
│ Total Generated │ 148,400.0 tokens │
│ Total Test Time │ 1081.93 seconds │
│ Avg Output Rate │ 137.16 tokens/sec │
└───────────────────────┴──────────────────────────────────┘
Detailed Performance Metrics
┏━━━━━━┳━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┓
┃ ┃ ┃ Avg ┃ P99 ┃ Gen. ┃ Avg ┃ P99 ┃ Avg ┃ P99 ┃ Success┃
┃Conc. ┃ RPS ┃ Lat.(s) ┃ Lat.(s) ┃ toks/s ┃ TTFT(s) ┃ TTFT(s) ┃ TPOT(s) ┃ TPOT(s) ┃ Rate┃
┡━━━━━━╇━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━┩
│ 1 │ 0.14 │ 8.049 │ 8.141 │ 19.28 │ 0.548 │ 0.580 │ 0.054 │ 0.055 │ 100.0%│
│ 10 │ 0.66 │ 15.048 │ 15.247 │ 92.93 │ 3.703 │ 4.791 │ 0.082 │ 0.103 │ 100.0%│
│ 20 │ 0.77 │ 25.883 │ 26.033 │ 108.09 │ 7.744 │ 9.387 │ 0.131 │ 0.179 │ 100.0%│
│ 30 │ 0.96 │ 31.306 │ 31.401 │ 134.08 │ 10.431 │ 13.898 │ 0.150 │ 0.216 │ 100.0%│
│ 40 │ 1.08 │ 37.150 │ 37.236 │ 150.67 │ 13.209 │ 18.607 │ 0.172 │ 0.261 │ 100.0%│
│ 50 │ 1.18 │ 42.518 │ 42.672 │ 164.55 │ 15.641 │ 23.223 │ 0.193 │ 0.296 │ 100.0%│
│ 60 │ 1.24 │ 48.241 │ 48.378 │ 174.06 │ 18.295 │ 28.012 │ 0.215 │ 0.341 │ 100.0%│
└──────┴──────┴──────────┴──────────┴─────────┴──────────┴─────────┴──────────┴─────────┴──────────┘
Best Performance Configuration
Highest RPS Concurrency 60 (1.24 req/sec)
Lowest Latency Concurrency 1 (8.049 seconds)