在ACS中使用PPU部署Qwen3.5推理服务

更新时间:
复制为 MD 格式

本文介绍如何在ACS集群中快速部署运行在PPU上的Qwen3.5推理服务。

准备工作

创建ACS集群

本步骤介绍如何通过配置主要参数快速创建一个ACS集群。

关于创建ACS集群的详细配置参数说明,请参见创建ACS集群
  1. 登录容器计算服务控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击页面左上角的创建集群

  3. 创建集群页面,进行如下配置。其余配置项使用默认设置即可。

    配置项

    说明

    示例值

    集群名称

    填写集群的名称。

    ACS-PPU-Inference

    地域

    选择集群所在的地域。

    华北6(乌兰察布)

  4. 单击确认配置,在满足所有依赖检查后,单击创建集群

    集群创建时间需要约5分钟。创建完成后,在集群列表页面,可以看到新创建的集群。

创建CPFS存储卷并下载模型

本步骤介绍如何新建CPFS文件系统作为Qwen3.5模型的持久化存储卷。

大语言模型因其庞大的参数量,需要占用大量的磁盘空间来存储模型文件,建议您创建CPFS存储卷、NAS存储卷或OSS存储卷来持久化存储模型文件。具体信息,请参见使用ACS快速构建大语言模型数据存储卷使用CPFS静态存储卷
  1. 集群列表页面,单击目标集群名称,进入基本信息页面,获取集群的VPC ID和交换机ID。

    1. 在网络区域的VPC部分,获取集群VPC ID。

      image

    2. 在右侧控制面交换机部分,点击编辑。以乌兰察布可用区C为例,获取交换机ID。

      image

  2. 创建CPFS文件系统,并记录文件系统信息。

    1. 文件系统ID:创建完成后,请记录文件系统ID,格式为cpfs-*****ea13db*****

    2. 挂载地址:请使用上一步获取的ACS集群对应的VPC和交换机创建挂载点,生成挂载地址。创建完成后,请记录挂载点域名,格式为cpfs-***-***.<RegionID>.cpfs.aliyuncs.comcpfs-***-vpc-***.<RegionID>.cpfs.aliyuncs.com

  3. 容器计算服务控制台左侧导航栏,选择存储 > 存储卷,然后单击使用YAML创建资源。参考如下YAML,分别修改servervolumeHandle为上一步获取的CPFS挂载地址和文件系统ID,单击创建

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: qwen-cpfs-pv
      labels:
        alicloud-pvname: qwen-cpfs-pv
    spec:
      accessModes:
      - ReadWriteMany
      capacity:
        storage: 2Ti
      csi:
        driver: nasplugin.csi.alibabacloud.com
        volumeAttributes:
          mountProtocol: cpfs-nfs
          server: cpfs-29076ea13db*****-2937d3aa1973*****.cn-wulanchabu.cpfs.aliyuncs.com # 需替换为实际挂载地址
          path: /share
        volumeHandle: cpfs-*****ea13db***** # 需替换为实际文件系统ID 
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: qwen-cpfs-pvc
    spec:
      accessModes:
      - ReadWriteMany
      selector:
        matchLabels:
          alicloud-pvname: qwen-cpfs-pv
      resources:
        requests:
          storage: 2Ti
  4. 出现创建成功的提示后,单击qwen-cpfs-pvc右侧操作列的查看。当状态为Bound并且关联的存储卷为qwen-cpfs-pv时,说明CPFS存储卷创建和绑定成功。

  5. 参考使用ACS快速构建大语言模型数据存储卷,创建临时工作负载并挂载CPFS存储卷,下载Qwen3.5模型文件。

    如何加速模型下载,请参考如何提升模型下载速度?
    1. Qwen3.5-397B-A17B 模型文件:https://www.modelscope.cn/models/Qwen/Qwen3.5-397B-A17B

    2. Qwen3.5-397B-A17B W8A8-INT8量化模型文件:https://art-pub.eng.t-head.cn/artifactory/generic-local/WEIGHT/Qwen3.5-397B-A17B-INT8/

      说明
      • 演示模型下载需要账密鉴权(复用PTG PIP的访问账密),可联系PDSA获取。

      • 除了上述W8A8-INT8量化模型,还可使用PTG提供的QLean模型量化工具 (v0.1.0)自行量化。

部署Qwen3.5推理服务

本步骤介绍如何使用inference-xpu-pytorch推理镜像创建一个使用PPU GPU算力资源的工作负载,通过CPFS存储声明挂载Qwen3.5模型文件,并关联到一个LoadBalancer类型的Service通过公网提供服务。

  1. 在左侧导航栏,选择工作负载 > 无状态,点击使用YAML创建资源,填入如下YAML,点击创建

    主要配置参数说明

    YAML配置

    说明

    alibabacloud.com/compute-class: gpu
    alibabacloud.com/gpu-model-series: PPU810E

    alibabacloud.com/compute-class标签来指定实例的计算类型为GPU。

    alibabacloud.com/gpu-model-series标签来指定实例的卡型为真武810E。

    更多GPU相关的用法,请参见ACS Pod实例概述
    requests:
      cpu: 176
      memory: 1800G
      alibabacloud.com/ppu: 16

    申请的PPU资源规格。

    更多规格参数,请参见PPU Pod规格表
    # vllm镜像
    image: acs-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/egslingjun/inference-xpu-pytorch:26.01-v2.0.0-vllm0.15.0-torch2.9-cu129-20260217-qwen3.5
    # sglang镜像
    image: acs-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/egslingjun/inference-xpu-pytorch:26.01-v2.0.0-sglang0.5.7-torch2.9-cu129-20260217-qwen3.5

    建议您使用VPC方式加速拉取AI容器镜像,减少镜像拉取的时间。其中cn-wulanchabu为乌兰察布地域对应的Region ID。

    volumes:
      - name: data
        persistentVolumeClaim:
          claimName: qwen-cpfs-pvc # 为步骤二中创建的CPFS存储声明
    volumeMounts:
      - mountPath: /mnt #NAS挂载路径
        name: data

    使用的qwen-cpfs-pvc为上一步创建的CPFS存储声明,并挂载到Pod/mnt目录。

    vLLM框架部署

    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:
          containers:
          - command:
            - sh
            - -c
            - vllm serve /mnt/Qwen3.5-397B-A17B/ --host 0.0.0.0 --port 8000 --tensor-parallel-size 16 --trust-remote-code --no-enable-prefix-caching
            # /mnt/Qwen3.5-397B-A17B/ #为qwen3模型在pod中的路径
            image: acs-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/egslingjun/inference-xpu-pytorch:26.01-v2.0.0-vllm0.15.0-torch2.9-cu129-20260217-qwen3.5
            #{region-id}
            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 #CPFS挂载路径
                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-cpfs-pvc  #qwen-cpfs-pvcCPFS存储声明
            - 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

    SGLang框架部署

    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:
          containers:
          - command:
            - sh
            - -c
            - python3 -m sglang.launch_server --model-path /mnt/Qwen3.5-397B-A17B/ --host 0.0.0.0 --port 8000  --tp-size 16 --attention-backend fa3 --mem-fraction-static 0.85 --disable-radix-cache --trust-remote-code --watchdog-timeout 3600 --dist-timeout 3600 --mm-enable-dp-encoder
            # /mnt/Qwen3.5-397B-A17B/ #为qwen3模型在pod中的路径
            image: acs-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/egslingjun/inference-xpu-pytorch:26.01-v2.0.0-sglang0.5.7-torch2.9-cu129-20260217-qwen3.5
            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 #CPFS挂载路径
                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-cpfs-pvc  #qwen-cpfs-pvcCPFS存储声明
            - 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
    重要

    PPU支持Qwen3.5-397B-A17B W8A8-INT8量化方案。

    • 通过vLLM框架启动Qwen3.5-397B-A17B W8A8-INT8量化模型推理服务命令与BF16模型命令一致。

    • 通过SGLang框架启动Qwen3.5-397B-A17B W8A8-INT8量化模型推理服务命令需添加--quantization w8a8_int8参数。

  2. 出现创建成功的提示后,点击llm-test右侧操作列的查看,检查工作负载的创建状态。

    Pod达到Running状态到成功启动推理服务需要约30分钟,您可通过事件和日志查看当前创建信息。vLLM框架部署启动成功显示为Application startup complete.,SGLang框架部署启动成功显示为The server is fired up and ready to roll!

测试推理服务

本步骤介绍如何在客户端通过弹性公网IP向推理服务发送请求,测试推理对话功能。

  1. ACS控制台中,在左侧导航栏,选择网络 > 服务,可以看到已创建的svc-llm服务,该服务的外部IP地址(External IP)即为推理服务的公网IP。

    image

  2. 在本地执行以下curl命令,验证推理服务对话功能

    请将<IP>修改为上一步中创建的服务的外部IP地址。
    curl http://<IP>:8000/v1/chat/completions  \
        -H "Content-Type: application/json"  \
        -d '{
        "model": "/mnt/Qwen3.5-397B-A17B/",
        "messages": [
          {
            "role": "system",
            "content": "你是个友善的AI助手。"
          },
          {
            "role": "user",
            "content": "请介绍一下Qwen3.5模型带来的新变化。"
          }
        ]
      }'
    

    预期输出:

    image.png

至此,在ACS中使用PPU部署Qwen3.5推理服务已完成。

常见问题

开通ACS集群使用PPU后都涉及哪些费用,如何节省成本?

ACS集群不收取集群管理费,在ACS中使用PPU资源的费用包含集群所选配置费用和PPU算力资源费用。关于计费的详细说明,请参见计费说明

  • 集群所选配置费用:包括负载均衡 - API Server使用量计费、NAT网关、与NAT网关绑定的EIP的保有费用和公网访问流量费用、日志服务(SLS)、模型存储用的NAS存储费用。这部分费用为按使用时长或按使用量计费,在删除ACS集群时可以选择删除这些关联资源。

    image

  • PPU算力资源费用:包括启动模型服务的容器占用的PPU卡、CPU和内存资源费用。计费时长为实际运行时长,从下载容器镜像(Pending状态)开始至实例停止运行(进入SucceededFailed状态)。您可以将无状态工作负载伸缩成0个副本数来快速删除容器,设置成1或更多副本数来快速启动容器,以最大程度节省成本。

    image

如何设置公网推理服务的访问控制?

本文中的推理服务是通过LoadBalancer类型的Service来实现的,该LoadBalancer会对应一个绑定公网IP地址的SLB实例。

请参考为负载均衡配置访问控制策略组,为对应SLB实例的监听设置访问控制,访问控制方式支持IP白名单、黑名单功能。

如何提升模型下载速度?

默认情况下,ACS集群创建的NAT网关绑定的EIP的带宽是100 Mbps。您可以参考以下操作,提升带宽峰值,提高模型下载速度。

  1. 进入公网NAT网关控制台,选择对应实例后,点击绑定的弹性公网IP页签。

  2. 点击实例ID进入弹性公网IP的实例信息页签。

    image

  3. 点击右上角更多操作 > 变配,然后将带宽峰值提升至200 Mbps,点击立即购买。该操作不涉及计费变化。

    image

  4. 如果模型较大,您可为将该EIP加入共享带宽,共享带宽的速率可提升至2000 Mbps。该操作涉及费用变化,请仔细阅读费用说明。

    image