容器计算服务ACS单张GPU即可快速搭建QwQ-32B推理模型

简介: 阿里云最新发布的QwQ-32B模型拥有320亿参数,通过强化学习大幅度提升了模型推理能力,其性能与DeepSeek-R1 671B媲美,本文介绍如何使用ACS算力部署生产可用的QwQ-32B模型推理服务。

【阅读原文】戳:容器计算服务ACS单张GPU即可快速搭建QwQ-32B推理模型

在使用容器计算服务ACS(Container Compute Service)算力时,您无需深入了解底层硬件,也无需涉及GPU节点管理和配置即可开箱即用。ACS部署简单、支持按量付费,非常适合用于LLM推理任务,可以有效降低推理成本。本文介绍如何使用ACS算力部署生产可用的QwQ-32B模型推理服务。

 

 

 

 

背景介绍

 

 

 

QwQ-32B模型

 

 

阿里云最新发布的QwQ-32B模型,通过强化学习大幅度提升了模型推理能力。QwQ-32B模型拥有320亿参数,其性能可以与DeepSeek-R1 671B媲美。模型数学代码等核心指标(AIME 24/25、livecodebench)以及部分通用指标(IFEval、LiveBench等)达到DeepSeek-R1满血版水平,各指标均显著超过同样基于Qwen2.5-32B的DeepSeek-R1-Distill-Qwen-32B。更多模型信息请参考QwQ-32B[1]

 

 

VLLM

 

vLLM是一个高效易用的大语言模型推理服务框架,vLLM支持包括通义千问在内的多种常见大语言模型。vLLM通过PagedAttention优化、动态批量推理(continuous batching)、模型量化等优化技术,可以取得较好的大语言模型推理效率。更多关于vLLM框架的信息,请参见vLLM GitHub代码库[2]

 

 

 

 

前提条件

 

 

 

已注册阿里云账号并完成实名认证。具体操作,请参见注册阿里云账号[3]个人实名认证[4]

 

首次使用阿里云容器计算服务ACS(Alibaba Container Compute Service)时,需要为服务账号授予系统默认角色。当且仅当该角色被正确授予后,容器计算服务才能正常地调用相关服务(ECS、OSS、NAS、CPFS、SLB等),创建集群以及保存日志等。具体可参见首次使用容器计算服务[5]

 

已创建ACS集群,配置的地域和可用区支持GPU资源。具体操作,请参见创建ACS集群[6]

 

已使用kubectl连接Kubernetes集群。具体操作,请参见获取集群kubeconfig并通过kubectl工具连接集群[7]

 

 

 

 

GPU实例规格和成本预估

 

 

 

在推理阶段主要占用显存的是模型参数,可以通过以下公式计算。

 

模型参数量为:32B(即320亿),精度数据类型字节数为:默认精度16位浮点数 / 8位每字节 = 2字节。

 

基础显存 = 32 × 10⁹ × 2 字节 ≈ 59.6 GiB

 

除了加载模型占用的显存之外,还需要考虑运算时所需的KV Cache大小和GPU利用率,通常会预留一部分buffer,因此推荐使用80 GiB显存以上的资源配置:GPU:1卡,CPU:16 vCPU,内存:128 GiB。您可以参考以下规格推荐表和GPU计算类型卡型规格[8]来选择合适的实例规格。关于如何计算ACS GPU实例产生的费用,请参见计费说明[9]

说明:

 

在使用ACS GPU实例时,实例规格同样遵循ACS Pod规格规整逻辑[10]

 

ACS Pod默认提供30 GiB的免费的临时存储空间(EphemeralStorage),本文中使用的推理镜像registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/vllm:v0.7.2占用约9.5 GiB。如果该存储空间大小无法满足您的需求,您可以自定义增加临时存储空间大小。详细操作,请参见增加临时存储空间大小[11]

 

 

 

 

操作步骤

 

 

 

步骤一:准备QwQ-32B模型数据

 

说明:

 

该模型为120G,通常下载和上传模型文件需要2-3小时,您可以通过提交工单[12]快速将模型文件复制到您的OSS Bucket。

 

1. 执行以下命令从ModelScope下载QwQ-32B模型。

 

说明:

 

请确认是否已安装git-lfs插件,如未安装可执行yum install git-lfs或者apt-get install git-lfs安装。更多的安装方式,请参见安装git-lfs[13]

 

git lfs install
GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/Qwen/QwQ-32B.git
cd QwQ-32B
git lfs pull

 

2. 在OSS中创建目录,将模型上传至OSS。

 

说明:

 

关于ossutil工具的安装和使用方法,请参见安装ossutil[14]

 

ossutil mkdir oss://<your-bucket-name>/models/QwQ-32B
ossutil cp -r ./QwQ-32B oss://<your-bucket-name>/models/QwQ-32B

 

3. 创建PV和PVC。为目标集群配置名为llm-model的存储卷PV和存储声明PVC。具体操作,请参见静态挂载OSS存储卷[15]

 

以下为示例PV的基本配置信息:

 

配置项 说明
存储卷类型 OSS
名称 llm-model
访问证书 配置用于访问OSS的AccessKey ID和AccessKey Secret。
Bucket ID 选择上一步所创建的OSS Bucket。
OSS Path 选择模型所在的路径,如/models/QwQ-32B。

 

以下为示例PVC的基本配置信息:

 

配置项 说明
存储声明类型 OSS
名称 llm-model
分配模式 选择已有存储卷。
已有存储卷 单击选择已有存储卷链接,选择已创建的存储卷PV。

 

以下为示例YAML:

 

apiVersion: v1
kind: Secret
metadata:
  name: oss-secret
stringData:
  akId: <your-oss-ak> # 配置用于访问OSS的AccessKey ID
  akSecret: <your-oss-sk> # 配置用于访问OSS的AccessKey Secret
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: llm-model
  labels:
    alicloud-pvname: llm-model
spec:
  capacity:
    storage: 30Gi 
  accessModes:
    - ReadOnlyMany
  persistentVolumeReclaimPolicy: Retain
  csi:
    driver: ossplugin.csi.alibabacloud.com
    volumeHandle: llm-model
    nodePublishSecretRef:
      name: oss-secret
      namespace: default
    volumeAttributes:
      bucket: <your-bucket-name> # bucket名称
      url: <your-bucket-endpoint> # Endpoint信息,如oss-cn-hangzhou-internal.aliyuncs.com
      otherOpts: "-o umask=022 -o max_stat_cache_size=0 -o allow_other"
      path: <your-model-path> # 本示例中为/models/QwQ-32B/
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: llm-model
spec:
  accessModes:
    - ReadOnlyMany
  resources:
    requests:
      storage: 30Gi
  selector:
    matchLabels:
      alicloud-pvname: llm-model

 

 

 

步骤二:部署模型

 

 

1. 执行下列命令,基于vLLM模型推理框架部署QwQ-32B模型的推理服务。

 

该推理服务暴露与OpenAI兼容的HTTP API。下列命令利用arena命令行工具提供的--data参数,将模型参数文件视作是一种特殊类型的数据集合,挂载到推理服务容器的指定位置(/model/QwQ-32B)。--max_model_len设置了该模型最大可处理的Token长度,增大该配置项可获得更好的模型对话效果,但是可能会占用更多GPU显存资源。

 

说明:

 

请将以下命令中的gpu-model-series=替换为ACS支持的GPU具体型号,目前支持的GPU型号列表请提交工单[12]咨询。

 

kubectl apply -f- <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: qwq-32b
  name: qwq-32b
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: qwq-32b
  template:
    metadata:
      labels:
        app: qwq-32b
        alibabacloud.com/compute-class: gpu
        alibabacloud.com/gpu-model-series: <example-model>
    spec:
      volumes:
        - name: model
          persistentVolumeClaim:
            claimName: llm-model
        - name: dshm
          emptyDir:
            medium: Memory
            sizeLimit: 30Gi
      containers:
      - command:
        - sh
        - -c
        - vllm serve /models/QwQ-32B --port 8000 --trust-remote-code --served-model-name qwq-32b --max-model-len 32768 --gpu-memory-utilization 0.95 --enforce-eager
        image: registry-cn-wulanchabu-vpc.ack.aliyuncs.com/ack-demo/vllm:v0.7.2
        name: vllm
        ports:
        - containerPort: 8000
        readinessProbe:
          tcpSocket:
            port: 8000
          initialDelaySeconds: 30
          periodSeconds: 30
        resources:
          limits:
            nvidia.com/gpu: "1"
            cpu: "16"
            memory: 128G
        volumeMounts:
          - mountPath: /models/QwQ-32B
            name: model
          - mountPath: /dev/shm
            name: dshm
---
apiVersion: v1
kind: Service
metadata:
  name: qwq-32b-v1
spec:
  type: ClusterIP
  ports:
  - port: 8000
    protocol: TCP
    targetPort: 8000
  selector:
    app: qwq-32b
EOF

 

 

 

 

步骤三:部署OpenWebUI

 

 

1. 执行以下命令,创建OpenWebUI应用及服务。

 

kubectl apply -f- << EOF 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: openwebui
spec:
  replicas: 1
  selector:
    matchLabels:
      app: openwebui
  template:
    metadata:
      labels:
        app: openwebui
    spec:
      containers:
      - env:
        - name: ENABLE_OPENAI_API
          value: "True"
        - name: ENABLE_OLLAMA_API
          value: "False"
        - name: OPENAI_API_BASE_URL
          value: http://qwq-32b-v1:8000/v1
        - name: ENABLE_AUTOCOMPLETE_GENERATION
          value: "False"
        - name: ENABLE_TAGS_GENERATION
          value: "False"
        image: kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/open-webui:main
        name: openwebui
        ports:
        - containerPort: 8080
          protocol: TCP
        volumeMounts:
        - mountPath: /app/backend/data
          name: data-volume
      volumes:
      - emptyDir: {}
        name: data-volume
---
apiVersion: v1
kind: Service
metadata:
  name: openwebui
  labels:
    app: openwebui
spec:
  type: ClusterIP
  ports:
  - port: 8080
    protocol: TCP
    targetPort: 8080
  selector:
    app: openwebui
EOF

 

 

 

步骤四:验证推理服务

 

1. 执行以下命令,在推理服务与本地环境之间建立端口转发。

 

请注意kubectl port-forward建立的端口转发不具备生产级别的可靠性、安全性和扩展性,因此仅适用于开发和调试目的,不适合在生产环境使用。更多关于Kubernetes集群内生产可用的网络方案的信息,请参见Ingress概述[16]

 

kubectl port-forward svc/openwebui 8080:8080

 

2. 访问http://localhost:8080,登陆OpenWebUI页面。

 

第一次登录需要配置管理员账号和密码。输入提示词,预期输出如下图所示。

 

 

 

 

[可选]步骤五:压测推理服务

 

1. 执行以下命令创建压测工具

 

kubectl apply -f- <<EOF 
apiVersion: apps/v1 
kind: Deployment
metadata:
  name: vllm-benchmark
  labels:
    app: vllm-benchmark
spec:
  replicas: 1
  selector:
    matchLabels:
      app: vllm-benchmark
  template:
    metadata:
      labels:
        app: vllm-benchmark
    spec:
      volumes:
      - name: llm-model
        persistentVolumeClaim:
          claimName: llm-model
      containers:
      - name: vllm-benchmark
        image: kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/vllm-benchmark:v1
        command:
        - "sh"
        - "-c"
        - "sleep inf"
        volumeMounts:
        - mountPath: /models/QwQ-32B
          name: llm-model
EOF

 

2. 下载压测数据集

 

# 执行以下命令进入Benchmark Pod
PODNAME=$(kubectl get po -o custom-columns=":metadata.name"|grep "vllm-benchmark")
kubectl exec -it $PODNAME -- bash
# 下载压测数据集
pip3 install modelscope
modelscope download --dataset gliang1001/ShareGPT_V3_unfiltered_cleaned_split ShareGPT_V3_unfiltered_cleaned_split.json --local_dir /root/

 

3. 执行压测

 

# 执行压测 input_length=4096,tp=4,output_lenght=512,concurrency=8,num_prompts=80
python3 /root/vllm/benchmarks/benchmark_serving.py \
--backend vllm \
--model /models/QwQ-32B \
--served-model-name qwq-32b \
--trust-remote-code \
--dataset-name random \
--dataset-path /root/ShareGPT_V3_unfiltered_cleaned_split.json \
--random-input-len 4096 \
--random-output-len 512 \
--random-range-ratio 1 \
--num-prompts 80 \
--max-concurrency 8 \
--host qwq-32b-v1 \
--port 8000 \
--endpoint /v1/completions \
--save-result \
2>&1 | tee benchmark_serving.txt

 

预期输出如下所示。

 

Starting initial single prompt test run...
Initial test run completed. Starting main benchmark run...
Traffic request rate: inf
Burstiness factor: 1.0 (Poisson process)
Maximum request concurrency: 8
100%|██████████| 80/80 [07:44<00:00,  5.81s/it]
============ Serving Benchmark Result ============
Successful requests:                     80        
Benchmark duration (s):                  464.74    
Total input tokens:                      327680    
Total generated tokens:                  39554     
Request throughput (req/s):              0.17      
Output token throughput (tok/s):         85.11     
Total Token throughput (tok/s):          790.18    
---------------Time to First Token----------------
Mean TTFT (ms):                          10315.97  
Median TTFT (ms):                        12470.54  
P99 TTFT (ms):                           17580.34  
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          71.03     
Median TPOT (ms):                        66.24     
P99 TPOT (ms):                           95.95     
---------------Inter-token Latency----------------
Mean ITL (ms):                           71.02     
Median ITL (ms):                         58.12     
P99 ITL (ms):                            60.26     
==================================================

 

 

 

 

相关文档

 

 

 

阿里云容器计算服务ACS(Container Compute Service)已经集成到容器服务Kubernetes版,您可以通过ACK托管集群Pro版快速使用ACS提供的容器算力。关于ACK使用ACS GPU算力的详细内容,请参见ACK使用ACS GPU算力示例[17]

 

 

 

 

更多文档

 

 

 

使用ACS GPU算力构建DeepSeek蒸馏模型推理服务

https://help.aliyun.com/zh/cs/user-guide/use-acs-gpu-computing-power-to-build-deepseek-distillation-model-reasoning-service?spm=a2c4g.11186623.help-menu-2584271.d_2_21_0.5

 

使用ACS GPU算力构建DeepSeek满血版模型推理服务

https://help.aliyun.com/zh/cs/user-guide/use-acs-gpu-computing-power-to-build-deepseek-full-model-reasoning-service?spm=a2c4g.11186623.help-menu-2584271.d_2_21_1.691231c3VnY6dl

 

使用ACS GPU算力构建分布式DeepSeek满血版推理服务

https://help.aliyun.com/zh/cs/user-guide/using-acs-gpu-computing-power-to-build-a-distributed-deepseek-full-blood-version-reasoning-service?spm=a2c4g.11186623.help-menu-2584271.d_2_21_2.6c4931c37RQxwv&scm=20140722.H_2870111._.OR_help-T_cn~zh-V_1

 

使用ACS GPU算力构建QwQ-32B模型推理服务

https://help.aliyun.com/zh/cs/user-guide/build-qwq-32b-model-inference-service-using-acs-gpu-computing-power?spm=a2c4g.11186623.help-menu-2584271.d_2_21_0.46262988sMSVOr#0ad991a1c62ak

 

相关链接:

 

[1] QwQ-32B

https://modelscope.cn/models/Qwen/QwQ-32B

 

[2] vLLM GitHub代码库

https://github.com/vllm-project/vllm

 

[3] 注册阿里云账号

https://help.aliyun.com/document_detail/324609.html#task-2012947

 

[4] 个人实名认证

https://help.aliyun.com/document_detail/324614.html#task-2020003

 

[5] 首次使用容器计算服务

https://help.aliyun.com/zh/cs/getting-started/use-container-computing-for-the-first-time

 

[6] 创建ACS集群

https://help.aliyun.com/zh/cs/user-guide/create-an-acs-cluster

 

[7] 获取集群kubeconfig并通过kubectl工具连接集群

https://help.aliyun.com/zh/cs/user-guide/obtain-the-cluster-kubeconfig-and-use-the-kubectl-tool-t

 

[8] GPU计算类型卡型规格

https://help.aliyun.com/zh/cs/user-guide/acs-pod-instance-overview#3f930f49a6cb7

 

[9] 计费说明

https://help.aliyun.com/zh/cs/product-overview/product-billing-rules

 

[10] ACS Pod规格规整逻辑

https://help.aliyun.com/zh/cs/user-guide/acs-pod-instance-overview#53a013bd8fqak

 

[11] 增加临时存储空间大小

https://help.aliyun.com/zh/cs/user-guide/increase-temporary-storage-size

 

[12] 提交工单

https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fselfservice.console.aliyun.com%2Fticket%2FcreateIndex&clearRedirectCookie=1&lang=zh

 

[13] 安装git-lfs

https://docs.github.com/en/repositories/working-with-files/managing-large-files/installing-git-large-file-storage

 

[14] 安装ossutil

https://help.aliyun.com/zh/oss/developer-reference/install-ossutil

 

[15] 静态挂载OSS存储卷

https://help.aliyun.com/zh/cs/user-guide/oss-child-node-1

 

[16] Ingress概述

https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/ingress-management-2/

 

[17] ACK使用ACS GPU算力示例

https://help.aliyun.com/zh/cs/user-guide/access-acs-computing-power-in-an-ack-cluster#50dbbde204r99



我们是阿里巴巴云计算和大数据技术幕后的核心技术输出者。

欢迎关注 “阿里云基础设施”同名微信微博知乎

获取关于我们的更多信息~

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
6月前
|
负载均衡 测试技术 调度
大模型分布式推理:张量并行与流水线并行技术
本文深入探讨大语言模型分布式推理的核心技术——张量并行与流水线并行。通过分析单GPU内存限制下的模型部署挑战,详细解析张量并行的矩阵分片策略、流水线并行的阶段划分机制,以及二者的混合并行架构。文章包含完整的分布式推理框架实现、通信优化策略和性能调优指南,为千亿参数大模型的分布式部署提供全面解决方案。
1622 4
|
6月前
|
机器学习/深度学习 缓存 监控
大模型推理优化技术:KV缓存机制详解
本文深入探讨了大语言模型推理过程中的关键技术——KV缓存(Key-Value Cache)机制。通过对Transformer自注意力机制的分析,阐述了KV缓存的工作原理、实现方式及其对推理性能的显著优化效果。文章包含具体的代码实现和性能对比数据,为开发者理解和应用这一关键技术提供实践指导。
1913 8
|
8月前
|
并行计算 PyTorch 调度
大模型推理显存优化系列(4):eLLM-大模型推理中的弹性显存管理和优化
本文简要介绍eLLM相关技术挑战、总体设计和初步性能评估
|
8月前
|
负载均衡 并行计算 异构计算
大模型训练推理优化(5): FlexLink —— NVLink 带宽无损提升27%
本期我们将介绍蚂蚁集团ASystem团队在大模型通信优化上的新工作FlexLink,旨在通过动态聚合多路通信(NVLink,PCIe,RDMA),在H800等典型硬件上将典型通信算子如(AllReduce, All Gather)吞吐提升最高达27%,尤其适合大模型长序列推理(Prefill阶段),及训练等通信密集的带宽bound场景。方案对精度无影响。
|
9月前
|
消息中间件 人工智能 资源调度
云上AI推理平台全掌握 (5):大模型异步推理服务
针对大模型推理服务中“高计算量、长时延”场景下同步推理的弊端,阿里云人工智能平台 PAI 推出了一套基于独立的队列服务异步推理框架,解决了异步推理的负载均衡、实例异常时任务重分配等问题,确保请求不丢失、实例不过载。
|
6月前
|
机器学习/深度学习 缓存 自然语言处理
【万字长文】大模型训练推理和性能优化算法总结和实践
我们是阿里云公共云 AI 汽车行业大模型技术团队,致力于通过专业的全栈 AI 技术推动 AI 的落地应用。
2627 39
【万字长文】大模型训练推理和性能优化算法总结和实践
|
9月前
|
人工智能 缓存 资源调度
云上AI推理平台全掌握 (4):大模型分发加速
为应对大模型服务突发流量场景,阿里云人工智能平台 PAI 推理服务 PAI-EAS 提供本地目录内存缓存(Memory Cache)的大模型分发加速功能,有效解决大量请求接入情况下的推理延迟。PAI-EAS 大模型分发加速功能,零代码即可轻松完成配置。
|
9月前
|
存储 机器学习/深度学习 缓存
阿里云AirCache技术实现多模态大模型高效推理加速,入选国际顶会ICCV2025
阿里云研发的AirCache技术被计算机视觉顶会ICCV2025收录,该技术通过激活跨模态关联、优化KV缓存压缩策略,显著提升视觉语言模型(VLMs)的推理效率与存储性能。实验表明,在保留仅10%视觉缓存的情况下,模型性能下降小于1%,解码延迟最高降低66%,吞吐量提升达192%。AirCache无需修改模型结构,兼容主流VLMs,已在教育、医疗、政务等多个行业落地应用,助力多模态大模型高效赋能产业智能化升级。
622 1
|
6月前
|
机器学习/深度学习 存储 并行计算
大模型推理加速技术:FlashAttention原理与实现
本文深入解析大语言模型推理加速的核心技术——FlashAttention。通过分析传统注意力机制的计算瓶颈,详细阐述FlashAttention的IO感知算法设计、前向反向传播实现,以及其在GPU内存层次结构中的优化策略。文章包含完整的CUDA实现示例、性能基准测试和实际部署指南,为开发者提供高效注意力计算的全套解决方案。
1144 10

热门文章

最新文章