赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 边缘节点服务 ENS
  4. 实践教程
  5. 边缘云玩转通义千问QwQ-32B-推理业务最佳实践

边缘云玩转通义千问QwQ-32B-推理业务最佳实践

  • 实践教程
  • 发布于 2025-04-16
  • 0 次阅读
文档编辑
文档编辑

本文将为您详细介绍QwQ-32B模型的特性、关键指标、边缘云部署的最佳实践以及测试环境搭建的步骤。为您提供了关于QwQ-32B模型的全面指南,帮助您快速了解模型特性、部署要求和性能优化方法,从而高效地在边缘云环境中部署和使用该模型,提升推理效率并降低成本。

QwQ-32B模型

模型简介

QwQ-32B模型是基于 Qwen2.5-32B训练的开源推理模型,通过强化学习大幅度提升了模型推理能力。模型数学代码等核心指标(AIME 24/25、LiveCodeBench)以及部分通用指标(IFEval、LiveBench等)达到DeepSeek-R1 满血版水平,在推理任务中实现了“小参数、大性能”的范式突破,为高成本的大模型部署提供了更具性价比的选择。

适用场景

QwQ-32B模型适用于数学逻辑推理、长文档处理、代码生成等场景,在中文领域的知识回答和多轮对话场景也有优异表现。典型的推理场景分类如下:

推理场景类型

平均输入长度(Tokens)

平均输出长度(Tokens)

典型应用案例

数学逻辑推理

0.5K-1.5K

0.8-3.6K

MATH解题,LSAT逻辑题解析

知识问答

1K-4K

0.2K-1K

MMLU知识测评、医疗咨询

多轮对话系统

2K-8K

0.5K-2K

客服对话、心理咨询

长文档处理

8K-16K

1K-4K

论文摘要、法律文书分析

代码生成/调试

0.3K-2K

1K-5K

函数实现、错误修复

模型推理关键指标

指标

定义

模型精度

模型权重和计算使用的数值精度。低精度版本的模型占用的显存更小,所需的资源成本更低,但会降低复杂任务上的准确性。

并发数

同时处理的用户请求数量,更高的并发代表着更大的业务容量,但并发增加也会导致显存、显存带宽占用的增长。

输入长度

用户提供的提示词(Prompt)的Token数量,直接影响显存占用,高输入长度会影响TTFT。

输出长度

模型生成的响应文本的Token数量,直接影响显存占用,高输出长度会触发截断或导致OOM。

TTFT(Time To First Token)

用户请求提交到收到首个输出Token的时间,首Token时延过高会导致用户体验迟滞,推荐TTFT控制在1s以下,不要超过2s。

TPOT(Time Per Output Token)

生成每个输出Token所需的平均时间(不含首个Token),反映生成速度与阅读体验的匹配度,推荐TPOT控制在50ms以下,不要超过100ms。

单路吞吐量

每路输出Token的速率(Tokens/s),较低的单路吞吐量会导致客户体验糟糕,推荐控制在10Tokens/s~30Tokens/s范围内。

显存占用率

运行时的显存占用百分比,显存占用的构成为模型参数、KV Cache、中间激活值。显存占用率过高(如>95%)易触发OOM,直接影响服务可用性。

边缘云部署QwQ-32B模型最佳实践

边缘云面向不同场景的异构算力需求,在广泛分布的节点上提供了多规格、差异化的异构算力资源,单卡显存从12GB到48GB不等。在边缘云上部署QwQ-32B不同精度模型的推理业务,推荐的最佳配置及推理性能如下:

  • QwQ-32B FP16精度推荐使用48G显存双卡实例

    • 48G显存双卡实例为虚拟机形态,资源配置如下

      环境参数

      CPU

      96核

      内存

      384GB

      GPU

      NVIDIA 48GB * 2

      操作系统

      Ubuntu 22.04

      Docker version

      26.1.3

      GPU Driver

      Driver Version: 570.124.06

      CUDA Version: 12.4

      推理框架

      vllm 0.7.2

    • 细分场景性能表现

      场景类型

      输入长度

      输出长度

      并发数

      单路吞吐量(Tokens)

      TTFT(s)

      TPOT(ms)

      显存占用率

      数学逻辑推理&代码生成

      1K

      4K

      4

      14.5

      0.6

      67.4

      95%

      1K

      4K

      8

      13.3

      1.6

      71.3

      95%

      知识问答

      4K

      1K

      2

      14.2

      1.8

      68.6

      95%

      4K

      1K

      4

      13

      2.7

      72.7

      95%

      多轮对话系统&长文档处理

      4K

      4K

      2

      14.64

      1.7

      71.5

      95%

      4K

      4K

      4

      13.6

      2.9

      82.3

      95%

      • 数学逻辑推理&代码生成场景:

        该场景属于短输入长输出业务,输入长度范围:0.3K~2K,输出长度范围:0.8K~5K。

        并发数为4时,单路吞吐接近15Tokens/s,TTFT小于1s,在用户体验和成本上实现最佳性价比。当并发数为8时,TTFT变大对用户体验略有影响,但仍在可接受范围内,如果您希望获得更优的成本,可提高并发数。

      • 知识问答场景:

        该场景属于长输入短输出业务,输入长度范围:1K~4K,输出长度范围:0.2K~1K。

        单实例最佳工作区间可以承载2并发,当并发增加至4时,TTFT大于2s,考虑到网络延时的问题,对用户体验的影响仍在可接受范围。

      • 多轮对话系统&长文档处理场景:

        该场景属于长输入长输出业务,输入长度范围:2K~16K,输出长度范围:1K~4K。

        输入长度的增加不仅会加大显存消耗,还会显著影响TTFT,单实例最佳工作区间为2并发,可根据业务实际情况控制输入长度和并发数。

  • QwQ-32B INT4精度推荐使用12G显存五卡实例

    • 12GB显存五卡实例为裸金属形态,资源配置如下

      环境参数

      CPU

      24Core×2,3.0-4.0GHz

      内存

      256GB

      GPU

      NVIDIA 12GB * 5

      操作系统

      Ubuntu 20.04

      Docker version

      28.0.1

      GPU Driver

      Driver Version: 570.124.06

      CUDA Version: 12.4

      推理框架

      vllm 0.7.2

    • 细分场景性能表现

      12GB显存五卡实例不论是单路并发还是多路并发,单路吞吐量均能满足性能要求,但受制于单卡显存大小问题,TTFT表现差强人意。建议在该配置下部署数学逻辑推理和代码生成业务,对于输入长度较大的知识问答、多轮对话、长文档处理等场景,建议您采用48G显存双卡实例。

      场景类型

      输入长度

      输出长度

      并发数

      单路吞吐量(Tokens)

      TTFT(s)

      TPOT(ms)

      显存占用率

      数学逻辑推理&代码生成

      1K

      4K

      2

      37

      1.3

      26.4

      96.5%

      1K

      4K

      4

      32.5

      1.7

      28.7

      96.5%

      1K

      4K

      8

      24.6

      3.5

      61.5

      96.5%

      知识问答

      4K

      1K

      1

      33.5

      4.7

      25.1

      96.5%

      多轮对话系统&长文档处理

      4K

      4K

      1

      35.8

      4.7

      26.6

      96.5%

      8K

      4K

      1

      21.9

      9.3

      43.3

      96.5%

      • 数学逻辑推理&代码生成场景

        并发数为2时,单路吞吐可达37Tokens/s,TTFT在1.3s,在用户体验和成本上实现最佳性价比。当并发数提升至8时,对用户体验影响较大,如果想追求更优的性价比方案,可将并发数提高至4。

      • 知识问答场景&多轮对话系统&长文档处理场景

        因输入长度过大,显存空间占用较多,单并发下TTFT接近5s,不适合生产应用,但可用于PoC环境的搭建

测试环境搭建

48GB显存双卡实例创建与初始化

通过控制台创建实例

  1. 登录ENS控制台。

  2. 在左侧导航栏,单击算力与镜像 > 实例。

  3. 在实例页面,单击创建实例。您可以通过创建实例了解创建ENS实例时的参数。

    1. 请您按照您的需求进行配置,推荐配置如下:

      页面

      参数选项

      参考值

      基础配置

      付费方式

      包年包月

      实例类型

      X86计算

      实例规格

      NVIDIA 48GB * 2

      (详细规格请咨询客户经理)

      镜像

      Ubuntu

      ubuntu_22_04_x64_20G_alibase_20240926

      网络和存储

      网络

      自建网络

      系统盘

      高效云盘 80G+

      数据盘

      高效云盘 1T+

      系统设置

      密码设置

      密码/密钥对

    2. 确认订单。

      当您完成系统设置之后,您可以单击右下角确认订单。系统会根据您的配置来配置实例,并展示价格。进行支付后会提示支付成功,并可跳转到ENS控制台。

      ENS控制台实例列表可查询到您创建的实例,若您创建的实例状态为运行中,代表您已经可以使用该实例。

通过OpenAPI创建实例

您也可以使用OpenAPI方式进行创建,您可以在阿里云开发者门户快速使用OpenAPI创建实例。

调用参数的参考代码如下,请您灵活调整:

{
  "InstanceType": "ens.gnxxxx",         <您的实例规格>
  "InstanceChargeType": "PrePaid",
  "ImageId": "ubuntu_22_04_x64_20G_alibase_20240926",
  "ScheduleAreaLevel": "Region",
  "EnsRegionId": "cn-your—ens-region",     <实际的节点>
  "Password": <YOURPASSWORD>,           <自定义密码>
  "InternetChargeType": "95BandwidthByMonth", 
  "SystemDisk": {
    "Size": 80,
    "Category": "cloud_efficiency"
  },
  "DataDisk": [
    {
      "Category": "cloud_efficiency",
      "Size": 1024
    }
  ],
  "InternetMaxBandwidthOut": 5000,
  "Amount": 1,
  "NetWorkId": "n-xxxxxxxxxxxxxxx",
  "VSwitchId": "vsw-xxxxxxxxxxxxxxx",
  "InstanceName": "test",        
  "HostName": "test",
  "PublicIpIdentification": true,
  "InstanceChargeStrategy": "instance",      <实例粒度计费>
}

实例登录与初始化磁盘

实例登录

您可以参考连接实例来登录实例。

磁盘初始化

  1. 根目录扩容。

    实例新创建或扩容后,需要在不重启的情况下在线扩容根分区

    # 安装云环境工具包
    sudo apt-get update
    sudo apt-get install -y cloud-guest-utils
    
    # 确保GPT分区工具sgdisk存在
    type sgdisk || sudo apt-get install -y gdisk
    
    # 扩展物理分区
    sudo LC_ALL=en_US.UTF-8 growpart /dev/vda 3
    
    # 调整文件系统大小
    sudo resize2fs /dev/vda3
    
    # 验证扩容结果
    df -h

    image

  2. 数据盘挂载

    您需要对数据盘进行格式化,并进行挂载。以下是参考,按需进行操作。

    # 识别新磁盘
    lsblk
    
    # 这里不进行分区,直接格式化
    sudo mkfs -t ext4 /dev/vdb
    
    # 配置挂载
    sudo mkdir /data
    echo "UUID=$(sudo blkid -s UUID -o value /dev/vdb) /data ext4 defaults,nofail 0 0" | sudo tee -a /etc/fstab
    
    # 验证
    sudo mount -a
    df -hT /data
    
    # 修改权限
    sudo chown $USER:$USER $MOUNT_DIR

    image

    说明

    如果您要基于该实例制作镜像,需要删除/etc/fstab文件中添加的ext4 defaults 0 0所在行。如果不删除,您制作的镜像创建实例将无法启动。

安装vllm推理环境

安装CUDA

您可以参考CUDA Toolkit 12.4 Downloads | NVIDIA Developer来完成CUDA的安装。

# 安装CUDA Toolkit
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_570.124.06_linux.run
chmod +x cuda_12.4.0_570.124.06_linux.run

# 这一步需等待一段时间,并和图形界面交互
sudo sh cuda_12.4.0_570.124.06_linux.run

# 添加环境变量
vim ~/.bashrc
export PATH="$PATH:/usr/local/cuda-12.8/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-12.8/lib64"
source ~/.bashrc

# 验证是否成功
nvcc  -V
nvidia-smi

辅助软件安装(可选)

UV是较好的Python虚拟环境和依赖管理工具,适合需要运行多个模型的集群。你可以参考Installation | uv (astral.sh)来完成对UV的安装。

# 安装uv,默认安装在~/.local/bin/
curl -LsSf https://astral.sh/uv/install.sh | sh

# 编辑~/.bashrc
export PATH="$PATH:~/.local/bin"

source ~/.bashrc

# 创建一个干净的venv环境
uv venv myenv --python 3.12 --seed
source myenv/bin/activate

如果您遇到安装UV后,原来所设置的CUDA环境变量失效,nvcc\nvidia-smi无法找到,请您执行如下操作:

vim myenv/bin/activate 
将
export PATH="$PATH:/usr/local/cuda-12.8/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-12.8/lib64"
加到export PATH的后面
# 安装vllm和modelscope
uv pip install vllm==0.7.2
uv pip install modelscope

# GPU监控工具,也可以使用nvidia-smi默认的
uv pip install nvitop

下载QwQ-32B模型、vllm benchmark脚本

# 下载模型,请下载到数据盘/data下,避免空间不够报错
mkdir -p /data/Qwen/QwQ-32B
cd /data/Qwen/QwQ-32B
modelscope download --model Qwen/QwQ-32B --local_dir .

# 下载数据集(可选)
wget https://www.modelscope.cn/datasets/gliang1001/ShareGPT_V3_unfiltered_cleaned_split/resolve/master/ShareGPT_V3_unfiltered_cleaned_split.json

# 安装git(若无git)
apt update
apt install git -y

# 下载vllm-git,包含了测试脚本
git clone https://github.com/vllm-project/vllm.git

在线测试

启动vllm server

vllm serve /data/Qwen/QwQ-32B/ \
  --host 127.0.0.1 \
  --port 8080 \
  --tensor-parallel-size 2 \
  --trust-remote-code \
  --served-model-name qw \
  --gpu-memory-utilization 0.95 \
  --enforce-eage \
  --max-num-batched-Tokens 8192 \
  --max-model-len 8192 \
  --enable-prefix-caching 

开启测试

python3 ./vllm/benchmarks/benchmark_serving.py --backend vllm --served-model-name qw --model /data/Qwen/QwQ-32B --dataset-name random --random-input 1024 --random-output 4096 --random-range-ratio 1 --max-concurrency 4 --num-prompts 10 --host 127.0.0.1 --port 8080 --save-result --result-dir /data/logs/ --result-filename QwQ-32B-4-1-4.log

测试完成

测试结果如下:

image

相关文章

边缘云安全解决方案 2025-04-16 15:13

边缘云(ENS)聚焦于为客户业务拓展提供一站式覆盖全球、算力弹性、网络优质的分布式全球化边缘基础设施,在面对安全需求时,更多是借助阿里云中心云的安全防护能力。本方案将介绍如何通过

在Cloud Shell中使用Terraform创建ENS实例 2025-04-16 15:13

阿里云边缘节点服务ENS产品已经接入Terraform,可以通过Terraform来实现快速配置。本文介绍如何在Cloud Shell中使用Terraform创建ENS实例。 说明 当前示例代码支持一键运行,您可以

边缘云AI推理最佳实践 2025-04-16 15:13

随着大模型的发展,将推动AI从大规模集中训练向分布式推理应用转换。边缘节点服务 ENS可以一站式提供靠近终端用户的、全域覆盖的、弹性分布式算力资源,通过终端数据就近计算和处理,优化响应时延、中心负荷和整体成本。本方案将为您介绍如何使用

边缘云高可用解决方案 2025-04-16 15:13

借助边缘节点服务 ENS部署业务系统,可以让终端用户访问业务服务时延迟大幅降低,提升体验,同时也可以满足业务本地化部署需求。但在提升体验和满足合规性的同时,关注业务的连续性也是非常重要的。本方案将介绍一些关键能力,帮助您在边缘云上构建高可用的业务应用。边缘云

边缘云上构建基础设施环境 2025-04-16 15:13

本实践指导您如何搭建一套ENS边缘节点的基础设施环境。您将逐一了解如何在

使用SMC迁移上ENS 2025-04-16 15:13

本文为您介绍使用SMC迁移上ENS全流程。 适用场景 本场景适用于您将物理服务器、虚拟机以及其他云平台云主机,迁移到阿里云

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号