DeepSeek-R1-Distill-Qwen-1.5B基于MindIE推理实践

1 实验目标

1.1 实验目标

  • 掌握纯模型的精度和性能测试
  • 掌握服务化的部署
  • 掌握服务化的精度和性能测试

2 前置准备

2.1 准备推理环境

2.1.1 下载镜像

1)进入登录昇腾镜像仓库:https://www.hiascend.com/developer/ascendhub
查询mindie
在这里插入图片描述

2)申请权限后,下载对应的镜像版本
在这里插入图片描述
在这里插入图片描述

2.1.2 拉起容器

docker run -itd --privileged --name=$container_name --net=host --shm-size=500g \
--device=/dev/davinci0 \
--device=/dev/davinci1 \
--device=/dev/davinci2 \
--device=/dev/davinci3 \
--device=/dev/davinci4 \
--device=/dev/davinci5 \
--device=/dev/davinci6 \
--device=/dev/davinci7 \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/ \
-v /usr/local/sbin/:/usr/local/sbin/ \
-v /var/log/npu/slog/:/var/log/npu/slog \
-v /var/log/npu/profiling/:/var/log/npu/profiling \
-v /var/log/npu/dump/:/var/log/npu/dump \
-v /var/log/npu/:/usr/slog \
-v /etc/hccn.conf:/etc/hccn.conf \
-v $model_path:/model \
$image_id /bin/bash

进入容器:

docker exec -it $container_name bash

2.2 模型权重下载

设置个人开发目录,如:

mkdir /home/zhangsan
cd /home/zhangsan

下载DeepSeek-R1-Distill-Qwen-1.5B权重:
https://modelers.cn/models/State_Cloud/DeepSeek-R1-Distill-Qwen-1.5B/tree/main

# 首先保证已安装git-lfs(https://git-lfs.com),如没安装可自行安装:apt update && apt install git-lfs

git lfs install
git clone https://modelers.cn/State_Cloud/DeepSeek-R1-Distill-Qwen-1.5B.git

2.3 数据集(GSM8K)准备

mkdir -p /home/zhangsan/data/gsm8k
cd /home/zhangsan/data/gsm8k

wget -O GSM8K.jsonl https://sail-moe.oss-cn-hangzhou.aliyuncs.com/open_data/gsm8k/test.jsonl --no-check-certificate 

3 纯模型测试

3.1 性能测试

3.1.1 初始化环境变量

source /usr/local/Ascend/mindie/set_env.sh
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
source /usr/local/Ascend/llm_model/set_env.sh

export MINDIE_LLM_LOG_TO_STDOUT=1
export PATH=/usr/local/python3.11.10/bin:$PATH

3.1.2 执行性能测试

cd /usr/local/Ascend/llm_model/tests/modeltests

# bash run.sh pa_[数据类型] performance $ALL_IN_OUT_SETS $BS [模型名] [模型权重路径] [使用卡数] 

# 示例
bash run.sh pa_bf16 performance [[256,256]] 1 qwen $权重路径 1

3.1.3 查看性能结果

在这里插入图片描述

3.2 精度测试

3.2.1 初始化环境变量(同3.1.1,如果设置过,则可跳过这步)

3.2.2 准备测试数据集

cd /usr/local/Ascend/llm_model/tests/modeltests

cp -r /home/zhangsan/data/ ./

3.3 执行精度测试

cd /usr/local/Ascend/llm_model/tests/modeltests

# bash run.sh pa_[数据类型] [数据集名称] $BS [模型名] [模型权重路径] [使用卡数]
# 示例
bash run.sh pa_bf16 full_GSM8K 100 qwen $权重路径 1

3.4 查看精度结果

在这里插入图片描述

4 服务化测试

4.1 服务化部署

4.1.1 服务化配置文件修改

cd /usr/local/Ascend/mindie/latest/mindie-service

vim conf/config.json

修改内容如下:
在这里插入图片描述
在这里插入图片描述

4.1.2 初始化环境变量

source /usr/local/Ascend/mindie/set_env.sh
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
source /usr/local/Ascend/llm_model/set_env.sh

export MINDIE_LLM_LOG_TO_STDOUT=1
export MINDIE_LOG_TO_STDOUT=1
export PATH=/usr/local/python3.11.10/bin:$PATH

4.1.3 拉起服务化

cd /usr/local/Ascend/mindie/latest/mindie-service

./bin/mindieservice_daemon
回显下面内容表示服务化启动成功:
Daemon start success!

4.1.4 测试服务化是否正常

另开一个session, 发送请求测试:

curl -X POST -d '{
    "model":"qwen",
    "messages": [{
        "role": "system",
        "content": "what is deep learning?"
    }],
    "max_tokens": 100,
"stream": false
}' http://10.3.14.15:1025/v1/chat/completions

4.2 服务化性能测试

保证上面的4.1.3操作已完成!!

4.2.1 初始化环境变量

另开一个session:

export PATH=/usr/local/python3.11.10/bin:$PATH

export MINDIE_LOG_TO_STDOUT="benchmark:1; client:1"

4.2.2 性能测试

根据实际情况修改下面datasetpath, modelname, modelpath参数

benchmark --DatasetPath "$datasetPath" --DatasetType "gsm8k" --ModelName qwen --ModelPath "$weightPath" --TestType client --Http http://127.0.0.1:1025 --ManagementHttp http://127.0.0.2:1026 --Concurrency 100 --TaskKind stream --Tokenizer True --MaxOutputLen 512

4.2.3 查看性能结果

在这里插入图片描述

4.3 服务化精度测试

4.3.1 初始化环境变量

export PATH=/usr/local/python3.11.10/bin:$PATH
export MINDIE_LOG_TO_STDOUT="benchmark:1; client:1"

export LCCL_DETERMINISTIC=1
export HCCL_DETERMINISTIC=true
export ATB_MATMUL_SHUFFLE_K_ENABLE=0

4.3.2 精度测试

根据实际情况修改下面datasetpath, modelname, modelpath参数

benchmark --DatasetPath "$datasetPath" --DatasetType "gsm8k" --ModelName qwen --ModelPath "$weightPath" --TestType client --Http http://127.0.0.1:1025 --ManagementHttp http://127.0.0.2:1026 --Concurrency 1 --TaskKind stream --Tokenizer True --MaxOutputLen 512 –TestAccuracy True

4.3.3 查看精度结果

在这里插入图片描述

### 关于 DeepSeek-R1-Distill-Qwen-1.5B 模型 #### 模型简介 DeepSeek-R1-Distill-Qwen-1.5B 是一款经过蒸馏优化的大规模预训练语言模型,参数量约为 1.5B。该模型基于 Qwen 架构进行了改进和优化,在保持较高性能的同时降低了计算资源需求[^2]。 #### 获取文档与下载链接 对于希望获取更多技术细节和技术文档的研究人员或开发者来说,可以访问官方提供的两个平台来了解详细的 API 接口说明以及使用指南: - **ModelScope**: 提供国内用户更便捷的访问方式,网址为 [https://modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B](https://modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B)[^1] - **Hugging Face**: 面向全球用户提供服务,地址位于 [https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B?local-app=vllm](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B?local-app=vllm) 这两个网站不仅提供了模型本身的下载功能,还包含了丰富的教程和支持材料帮助使用者快速上手。 #### 安装配置指导 针对 Windows 11 用户环境下的具体安装步骤如下所示: ```bash pip install transformers torch accelerate ``` 完成上述依赖项安装之后,可以从 HuggingFace Hub 加载此模型实例并执行简单的测试任务: ```python from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B") model = AutoModelForCausalLM.from_pretrained("deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B") input_text = "你好" inputs = tokenizer(input_text, return_tensors="pt") outputs = model.generate(**inputs) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` 此外,考虑到实际应用场景中的不同需求,开发团队特别实现了两种推理模式——即流式生成(streaming generation)和非流式生成(non-streaming generation),以便更好地满足实时性和响应速度的要求[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值