Qwen2.5-7B#

简介#

Qwen2.5-7B-Instruct 是阿里云 Qwen 2.5 大语言模型系列的旗舰指令调优变体。它支持最大 128K 的上下文窗口,能够生成最多 8K 个令牌,并在多语言处理、指令遵循、编程、数学计算和结构化数据处理方面提供增强的能力。

本文档详细介绍了该模型的完整部署和验证工作流程,包括支持的功能、环境准备、单节点部署、功能验证、准确性和性能评估以及常见问题排查。旨在帮助用户快速完成模型部署和验证。

Qwen2.5-7B-Instruct 模型自 vllm-ascend:v0.9.0 版本起获得支持。

支持的功能#

请参考支持的功能以获取模型支持的功能矩阵。

请参考特性指南以获取功能的配置信息。

环境准备#

模型权重#

  • Qwen2.5-7B-Instruct(BF16 版本):需要 1 张 Atlas 910B4(32G × 1)卡。下载模型权重

建议将模型权重下载到本地目录(例如 ./Qwen2.5-7B-Instruct/),以便在部署期间快速访问。

安装#

您可以使用我们的官方 docker 镜像,并安装额外的算子以支持 Qwen2.5-7B-Instruct

  1. 在您的每个节点上启动 docker 镜像。

export IMAGE=quay.io/ascend/vllm-ascend:v0.18.0-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.18.0
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 平台上进行单节点单卡部署。请按照以下步骤启动推理服务:

  1. 准备模型权重:确保下载的模型权重存储在 ./Qwen2.5-7B-Instruct/ 目录中。

  2. 创建并执行部署脚本(保存为 deploy.sh):

#!/bin/sh
export ASCEND_RT_VISIBLE_DEVICES=0
export MODEL_PATH="./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

多节点部署#

推荐使用单节点部署。

预填充-解码分离#

暂不支持。

功能验证#

启动服务后,使用 curl 请求验证功能:

curl http://localhost:8000/v1/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "qwen-2.5-7b-instruct",
        "prompt": "Beijing is a",
        "max_completion_tokens": 5,
        "temperature": 0
    }'

有效的响应(例如 "Beijing is a vibrant and historic capital city")表明部署成功。

准确性评估#

使用 AISBench#

详情请参考使用 AISBench

结果和日志保存在 benchmark/outputs/default/ 中。示例如下:

数据集

版本

指标

模式

vllm-api-general-chat

gsm8k

-

准确率

生成

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-prompts 200 \
  --request-rate 1 \
  --save-result \
  --result-dir ./perf_results/

几分钟后,您将获得性能评估结果。