Qwen2.5-7B#
简介#
Qwen2.5-7B-Instruct 是阿里云 Qwen 2.5 LLM 系列的旗舰指令微调版本。它支持高达 128K 的上下文窗口,可生成最多 8K 个 token,并在多语言处理、指令遵循、编程、数学计算和结构化数据处理方面提供增强的功能。
本文档详细介绍了该模型的完整部署和验证工作流程,包括支持的功能、环境准备、单节点部署、功能验证、精度和性能评估以及常见问题的故障排除。旨在帮助用户快速完成模型部署和验证。
Qwen2.5-7B-Instruct 模型自 vllm-ascend:v0.9.0 版本起受支持。
支持的特性#
请参阅 支持的特性 获取模型的特性支持矩阵。
请参阅 特性指南 获取特性的配置方法。
环境准备#
模型权重#
Qwen2.5-7B-Instruct(BF16 版本):需要 1 块 910B4 卡 (32G × 1)。 Qwen2.5-7B-Instruct
建议将模型权重下载到本地目录 (例如 ./Qwen2.5-7B-Instruct/),以便在部署期间快速访问。
安装#
您可以使用我们的官方 docker 镜像并安装额外的算子来支持 Qwen2.5-7B-Instruct。
在您的每个节点上启动 docker 镜像。
export IMAGE=quay.io/ascend/vllm-ascend:v0.12.0rc1-a3
docker run --rm \
--name vllm-ascend \
--shm-size=1g \
--net=host \
--device /dev/davinci0 \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v /root/.cache:/root/.cache \
-it $IMAGE bash
在您的每个节点上启动 docker 镜像。
export IMAGE=quay.io/ascend/vllm-ascend:v0.12.0rc1
docker run --rm \
--name vllm-ascend \
--shm-size=1g \
--net=host \
--device /dev/davinci0 \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v /root/.cache:/root/.cache \
-it $IMAGE bash
部署#
单节点部署#
Qwen2.5-7B-Instruct 支持在 910B4 平台上进行单节点单卡部署。请按照以下步骤启动推理服务:
准备模型权重:确保已下载的模型权重存储在
./Qwen2.5-7B-Instruct/目录中。创建并执行部署脚本 (保存为
deploy.sh)
#!/bin/sh
export ASCEBD_RT_VISIBLE_DEVICES=0
export MODEL_PATH="Qwen/Qwen2.5-7B-Instruct"
vllm serve ${MODEL_PATH} \
--host 0.0.0.0 \
--port 8000 \
--served-model-name qwen-2.5-7b-instruct \
--trust-remote-code \
--max-model-len 32768
多节点部署#
推荐使用单节点部署。
Prefill-Decode 分离#
暂不支持。
功能验证#
启动服务后,使用 curl 请求验证功能。
curl http://<IP>:<Port>/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-2.5-7b-instruct",
"prompt": "Beijing is a",
"max_tokens": 5,
"temperature": 0
}'
有效的响应 (例如 "Beijing is a vibrant and historic capital city") 表示部署成功。
精度评估#
使用 AISBench#
详情请参阅使用 AISBench。
结果和日志保存在 benchmark/outputs/default/。下方显示了示例准确性报告:
数据集 |
version |
指标 |
模式 |
vllm-api-general-chat |
|---|---|---|---|---|
gsm8k |
- |
accuracy |
gen |
75.00 |
性能#
使用 AISBench#
详情请参阅使用 AISBench 进行性能评估。
使用 vLLM Benchmark#
以 Qwen2.5-7B-Instruct 为例运行性能评估。
更多详情请参阅 vllm benchmark。
有三个 vllm bench 子命令
latency:对单批请求的延迟进行基准测试。serve:对在线服务吞吐量进行基准测试。throughput:对离线推理吞吐量进行基准测试。
以 serve 为例。运行代码如下。
vllm bench serve \
--model ./Qwen2.5-7B-Instruct/ \
--dataset-name random \
--random-input 200 \
--num-prompt 200 \
--request-rate 1 \
--save-result \
--result-dir ./perf_results/
大约几分钟后,您就可以得到性能评估结果。