使用ACS快速部署运行在PPU上的Qwen3推理服务
本文介绍如何使用ACS快速搭建运行在PPU上的Qwen3推理服务。
背景信息
Qwen3是Qwen系列大型语言模型的最新成员,包括旗舰模型Qwen3-235B-A22B,在代码、数学和通用能力等基准测试中表现优异。
Qwen3通过引入混合推理设计和混合专家架构(MoE)大幅度提升了模型推理能力。
此外,小型MoE模型Qwen3-30B-A3B仅用较少的激活参数和计算资源,即可实现更高效的推理性能。
准备工作
已完成首次使用容器计算服务,需要开通容器计算服务ACS,并为其授权相应云资源的访问权限。
创建ACS集群
本步骤介绍如何通过配置主要参数快速创建一个ACS集群。
关于创建ACS集群的详细配置参数说明,请参见创建ACS集群。
登录容器计算服务控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击页面左上角的创建集群。
在创建集群页面,进行如下配置。其余配置项使用默认设置即可。
配置项
说明
示例值
集群名称
填写集群的名称。
ACS-PPU-Inference地域
选择集群所在的地域。
华北6(乌兰察布)单击确认配置,在满足所有依赖检查后,单击创建集群。
集群的创建时间需要约5-10分钟。
部署推理算力
准备模型文件
大语言模型因其庞大的参数量,需要占用大量的磁盘空间来存储模型文件,建议您创建NAS存储卷或OSS存储卷来持久化存储模型文件。具体信息,请参见使用ACS快速构建大语言模型数据存储卷。
Qwen3-235B-A22B 模型文件,地址:https://www.modelscope.cn/models/Qwen/Qwen3-235B-A22B/files
Qwen3-30B-A3B 模型文件,地址: https://www.modelscope.cn/models/Qwen/Qwen3-30B-A3B/files
Qwen3-32B 模型文件,地址:https://www.modelscope.cn/models/Qwen/Qwen3-32B/files
Qwen3-235B-A22B FP8模型文件,地址:https://www.modelscope.cn/models/Qwen/Qwen3-235B-A22B-FP8/files
Qwen3-30B-A3B FP8模型文件,地址:https://www.modelscope.cn/models/Qwen/Qwen3-30B-A3B-FP8/files
Qwen3-32B FP8模型文件,地址:https://www.modelscope.cn/models/Qwen/Qwen3-32B-FP8
PPU从inference-xpu-pytorch 25.05版本vLLM推理镜像(vLLM0.8.5)开始,支持原生Qwen3 BF16/FP8精度模型和AWQ/GPTQ量化模型。
部署GPU算力
使用kubectl命令行工具或直接在容器计算服务管理控制台操作,创建一个Deployment来部署大模型推理任务。
在ACS控制台中,选中工作负载中的无状态,点击使用YAML创建资源。
以NAS存储卷为例,分别部署Qwen3 BF16、FP8、 INT8模型服务,YAML示例如下。
建议您使用VPC方式加速拉取AI容器镜像,减少镜像拉取的时间。
Qwen3 BF16模型
部署Qwen3 BF16模型推理服务,填入如下YAML,点击创建。
apiVersion: apps/v1 kind: Deployment metadata: labels: app: llm-test name: llm-test namespace: default spec: progressDeadlineSeconds: 6000 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: llm-test template: metadata: labels: alibabacloud.com/compute-class: gpu alibabacloud.com/gpu-model-series: PPU810E alibabacloud.com/compute-qos: default app: llm-test spec: imagePullSecrets: - name: acs-image-secret #需要和上述步骤一创建Secret的name一致 containers: - command: - sh - -c - vllm serve /mnt/llms_data/Qwen3-235B-A22B/ --tensor-parallel-size 16 --gpu-memory-utilization 0.98 --trust-remote-code # /mnt/llms_data/Qwen3-235B-A22B/ #为qwen3模型在pod中的路径 image: egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/inference-xpu-pytorch:25.05-v1.5.1-vllm0.8.5-torch2.6-cu126-20250604 imagePullPolicy: IfNotPresent name: llm-test resources: limits: cpu: 176 memory: 1800G alibabacloud.com/ppu: 16 ephemeral-storage: 200Gi requests: cpu: 176 memory: 1800G alibabacloud.com/ppu: 16 ephemeral-storage: 200Gi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /mnt #NAS挂载路径 name: data - mountPath: /dev/shm name: cache-volume - mountPath: /ppu-data name: ephemeral dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 volumes: - name: data persistentVolumeClaim: claimName: qwen-nas #qwen-nas为通过NAS创建的存储声明 - name: cache-volume emptyDir: medium: Memory sizeLimit: 500G - name: ephemeral emptyDir: sizeLimit: 200G --- apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "internet" service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: ipv4 labels: app: llm-test name: svc-llm namespace: default spec: externalTrafficPolicy: Local ports: - name: serving port: 8000 protocol: TCP targetPort: 8000 selector: app: llm-test type: LoadBalancerQwen3 FP8模型
部署Qwen3 FP8模型推理服务,填入如下YAML,点击创建。
apiVersion: apps/v1 kind: Deployment metadata: labels: app: llm-test name: llm-test namespace: default spec: progressDeadlineSeconds: 6000 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: llm-test template: metadata: labels: alibabacloud.com/compute-class: gpu alibabacloud.com/gpu-model-series: PPU810E alibabacloud.com/compute-qos: default app: llm-test spec: imagePullSecrets: - name: acs-image-secret #需要和上述步骤一创建Secret的name一致 containers: - command: - sh - -c - vllm serve /mnt/llms_data/Qwen3-235B-A22B-FP8/ --tensor-parallel-size 4 --gpu-memory-utilization 0.98 --trust-remote-code --quantization moe_wna16 # /mnt/llms_data/Qwen3-235B-A22B-FP8/ #为qwen3模型在pod中的路径 image: egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/inference-xpu-pytorch:25.05-v1.5.1-vllm0.8.5-torch2.6-cu126-20250604 imagePullPolicy: IfNotPresent name: llm-test resources: limits: cpu: 32 memory: 256Gi alibabacloud.com/ppu: 4 ephemeral-storage: 200Gi requests: cpu: 32 memory: 256Gi alibabacloud.com/ppu: 4 ephemeral-storage: 200Gi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /mnt #NAS挂载路径 name: data - mountPath: /dev/shm name: cache-volume - mountPath: /ppu-data name: ephemeral dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 volumes: - name: data persistentVolumeClaim: claimName: qwen-nas #qwen-nas为通过NAS创建的存储声明 - name: cache-volume emptyDir: medium: Memory sizeLimit: 500G - name: ephemeral emptyDir: sizeLimit: 200G --- apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "internet" service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: ipv4 labels: app: llm-test name: svc-llm namespace: default spec: externalTrafficPolicy: Local ports: - name: serving port: 8000 protocol: TCP targetPort: 8000 selector: app: llm-test type: LoadBalancerQwen3 INT8模型
部署Qwen3 INT8量化模型推理服务,填入如下YAML,点击创建。
说明AWQ/GPTQ量化模型的运行步骤与非量化模型相同,区别仅在于需要额外传入
--quantization moe_wna16,W8A8-INT8量化模型的运行步骤与非量化模型相同。apiVersion: apps/v1 kind: Deployment metadata: labels: app: llm-test name: llm-test namespace: default spec: progressDeadlineSeconds: 6000 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: llm-test template: metadata: labels: alibabacloud.com/compute-class: gpu alibabacloud.com/gpu-model-series: PPU810E alibabacloud.com/compute-qos: default app: llm-test spec: imagePullSecrets: - name: acs-image-secret #需要和上述步骤一创建Secret的name一致 containers: - command: - sh - -c - vllm serve /mnt/llms_data/Qwen3-235B-A22B-GPTQ-Int8 --tensor-parallel-size 4 --gpu-memory-utilization 0.98 --trust-remote-code --quantization moe_wna16 # /mnt/llms_data/Qwen3-235B-A22B-GPTQ-Int8/ #为qwen3模型在pod中的路径 image: egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/inference-xpu-pytorch:25.05-v1.5.1-vllm0.8.5-torch2.6-cu126-20250604 imagePullPolicy: IfNotPresent name: llm-test resources: limits: cpu: 32 memory: 256Gi alibabacloud.com/ppu: 4 ephemeral-storage: 200Gi requests: cpu: 32 memory: 256Gi alibabacloud.com/ppu: 4 ephemeral-storage: 200Gi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /mnt #NAS挂载路径 name: data - mountPath: /dev/shm name: cache-volume - mountPath: /ppu-data name: ephemeral dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 volumes: - name: data persistentVolumeClaim: claimName: qwen-nas #qwen-nas为通过NAS创建的存储声明 - name: cache-volume emptyDir: medium: Memory sizeLimit: 500G - name: ephemeral emptyDir: sizeLimit: 200G --- apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "internet" service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: ipv4 labels: app: llm-test name: svc-llm namespace: default spec: externalTrafficPolicy: Local ports: - name: serving port: 8000 protocol: TCP targetPort: 8000 selector: app: llm-test type: LoadBalancer第一次创建需要拉取镜像,大约需要20分钟左右,您可以在目标集群工作负载 > 容器组 > 事件下查看Pod的运行状态。

Pod为Running状态即为创建成功,Pod拉起后会自动拉起vLLM serving服务,您可以在目标集群工作负载 > 容器组 > 日志下查看log,有如下输出则说明服务启动成功。

测试推理服务
在容器计算服务控制台中网络 > 服务,可以看到之前创建的svc-llm服务,该服务的外部IP地址(External IP)即为推理服务的公网IP。
在客户端测试vLLM推理对话功能的操作如下:
# 将IP改为上一步中创建的服务的外部IP地址 # model为模型在pod中的路径 curl http://IP:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "/mnt/llms_data/Qwen3-235B-A22B/", "messages": [ {"role": "system", "content": "你是个友善的AI助手。"}, {"role": "user", "content": "介绍一下深度学习。"} ]}'输出如下图所示:

附录
PPU Pod规格表
PPU | vCPU | Memory(GiB) | Memory支持步长(GiB) | 临时存储(GiB) |
1 | 2 | 2-16 | 1 | 30G ~ 384G |
4 | 4-32 | 1 | ||
6 | 6-48 | 1 | ||
8 | 8-64 | 1 | ||
10 | 10-80 | 1 | ||
2 | 4 | 4-32 | 1 | 30G ~ 768G |
6 | 6-48 | 1 | ||
8 | 8-64 | 1 | ||
16 | 16-128 | 1 | ||
22 | 32,64,128,225 | N/A | ||
4 | 8 | 8-64 | 1 | 30G ~ 1.5T |
16 | 16-128 | 1 | ||
32 | 32,64,128,256 | N/A | ||
44 | 64,128,256,450 | N/A | ||
8 | 16 | 16-128 | 1 | 30G ~ 3T |
32 | 32,64,128,256 | N/A | ||
64 | 64,128,256,512 | N/A | ||
88 | 128,256,512,900 | N/A | ||
16 | 32 | 32,64,128,256 | N/A | 30G~6T |
64 | 64,128,256,512 | N/A | ||
128 | 128,256,512,1024 | N/A | ||
176 | 256,512,1024,1800 | N/A |