Update DeepseekR1_tutorial_zh_for_Ascend_NPU.md

This commit is contained in:
RICHARDNAN
2025-10-28 21:55:59 +08:00
parent 48fdacedd0
commit 727aefe620

View File

@@ -1,10 +1,24 @@
# 基准测试结果
| Prompt length | 1K | 2K | 4K |
| --------------------------------- | ------ | ------ | ------ |
| KTrans Prefill token/s | 174.68 | 185.66 | 158.92 |
| KTrans Decode token/s | 16.07 | 15.7 | 15.96 |
## 先决条件
我们在以下配置下进行了最佳性能测试: <br>
服务器型号Atlas 2UP <br>
NPU300I A2 <br>
CPU: HUAWEI Kunpeng 920 7270Z <br>
内存: DDR5服务器内存1TB
# 部署
## 物理机安装
部署满血版DeepseekV3需要机器物理内存能够存放下全部路由专家的权重约400GB。
目前支持的NPU型号**800I A2**。
目前支持的NPU型号**300I A2**。
在技术人员的支持下完成硬件安装。
@@ -60,6 +74,9 @@ pip3 install transformers==4.57.1 #此处注意运行时transformers版本要求
source /usr/local/Ascend/ascend-toolkit/set_env.sh # 以实际CANN安装路径为准
source /usr/local/Ascend/nnal/atb/set_env.sh # 以实际NNAL安装路径为准
```
由于环境对于torch_npu版本号有特定要求使用编译后的torch_npu包需要手动移除版本信息中的哈希后缀操作如下
使用文本编辑器打开/usr/local/lib/python3.11/site-packages/torch_npu/version.py(不同环境python路径可能不同可以使用pip show torch_npu查看安装的python路径)
将__version__ = '2.5.1.post4+git69550dfc'改为__version__ = '2.5.1.post4'
## 权重准备
@@ -95,7 +112,7 @@ export TASK_QUEUE_ENABLE=0 # 保证算子下发顺序有序
cd ktransformers
git submodule update --init --recursive
```
- 对于arm平台注释掉`./requirements-local_chat.txt`中的`cpufeature`。
- 对于arm平台注释掉`./third_party/llamafile/iqk_mul_mat_arm82.cpp`中的`#define iqk_mul_mat iqk_mul_mat_arm82 #define iqk_mul_mat_moe iqk_mul_mat_moe_arm82`这两行
- 执行`source /usr/local/Ascend/ascend-toolkit/set_env.sh`以实际CANN-TOOLKIT安装路径为准
- 执行`apt install cmake libhwloc-dev pkg-config`安装依赖。
@@ -109,6 +126,8 @@ export TASK_QUEUE_ENABLE=0 # 保证算子下发顺序有序
export USE_MERGE=0
export INF_NAN_MODE_FORCE_DISABLE=1
export TASK_QUEUE_ENABLE=0
export RANK=0
export LOCAL_WORLD_SIZE=1
#export PROF_DECODE=1
#export PROF_PREFILL=1
@@ -117,13 +136,13 @@ source /usr/local/Ascend/nnal/atb/set_env.sh
python ktransformers/server/main.py \
--port 10002 \
--model_path /mnt/data/models/DeepSeek-R1-q4km-w8a8 \
--gguf_path /mnt/data/models/DeepSeek-R1-q4km-w8a8 \
--model_path <your model path> \
--gguf_path <your model path> \
--model_name DeepSeekV3ForCausalLM \
--cpu_infer 60 \
--cpu_infer 100 \
--optimize_config_path ./ktransformers/optimize/optimize_rules/DeepSeek-V3-Chat-300IA2-npu-serve.yaml \
--max_new_tokens 128 \
--max_new_tokens 1024 \
--cache_lens 20480 \
--max_batch_size 4 \
--use_cuda_graph \
--tp 1 \
@@ -136,6 +155,7 @@ python ktransformers/server/main.py \
- `--gguf_path`kTransformers原生参数str此处用来指定合并后的模型文件路径
- `--cpu_infer`kTransformers原生参数int用来控制CPU侧实际worker线程数非必选
- `--optimize_config_path`kTransformers原生参数str用来指定所用的模型优化配置文件需要注意相对路径的使用此处为**必选**
- `--cache_lens 20480` 调度器申请 kvcache 的总长度。所有请求共享 20480 个 tokens 对应 kvcache 空间,请求完成后会释放其所占用的 kvcache 空间,非必选
- `--use_cuda_graph`kTransformers原生参数bool为True表示开启图下沉为False表示关闭图下沉非必选
- `--max_new_tokens`kTransformers原生参数int当统计到输出的tokens数量达到该值时会直接中止输出非必选
- `--tp`新增参数int用于开启tensor model parallel功能目前local_chat只支持tp大小与ws大小相同不支持local_chat使用多dp非必选