在ACS中使用真武810E快速搭建AI推理服务

更新时间:
复制为 MD 格式

首次使用阿里云容器计算服务ACS(Alibaba Container Compute Service)时,需要为服务账号授予系统默认角色。当且仅当该角色被正确授予后,容器计算服务才能正常地调用相关服务(ECS、OSS、NAS、CPFS、SLB等),创建集群以及保存日志等。本文介绍如何ACS中使用真武810E快速搭建AI推理服务

前提条件

方案概览

首次使用ACS进行推理服务部署时,需要开通并授权容器计算服务ACS,然后创建ACS集群。集群创建完成后,先创建存储卷,再在集群中部署真武810E GPU算力,最后部署大语言模型并启动推理服务。

image

创建ACS集群

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

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

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

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

    配置项

    说明

    示例值

    集群名称

    填写集群的名称。

    ACS-PPU-Inference

    地域

    选择集群所在的地域。

    华北6(乌兰察布)

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

    集群的创建时间需要约5-10分钟。

创建存储卷

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

使用NAS存储卷或OSS存储卷来持久化存储模型文件的更多内容,请参见使用ACS快速构建大语言模型数据存储卷
  1. 集群列表页面,单击集群名称ACS-PPU-Inference,进入基本信息页面,获取集群的VPC ID和交换机ID。

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

      image

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

      image

  2. 在左侧导航栏,选择工作负载 > 自定义资源。选择资源定义(CustomResourceDefinition)页签,然后点击使用YAML创建资源,填入如下YAML,点击创建

    请分别修改YAML中的vpcIdvSwitchId为上一步获取的VPC ID和交换机ID。
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: nas-llm-sc
    mountOptions:
    - nolock,tcp,noresvport
    - vers=3
    parameters:
      volumeAs: filesystem
      fileSystemType: standard
      storageType: Performance
      regionId: cn-wulanchabu
      zoneId: cn-wulanchabu-c                  #示例为乌兰察布可用区C,需要与vSwitchId对应的可用区一致  
      vpcId: "vpc-0jljd55jeie816cxxxxxx"       #需要修改为上一步获取的集群VPC ID
      vSwitchId: "vsw-0jl3qcn7m2gs449lxxxxx"   #需要修改为上一步获取的集群交换机 ID 
      accessGroupName: DEFAULT_VPC_GROUP_NAME
      deleteVolume: "false"
    provisioner: nasplugin.csi.alibabacloud.com
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nas-llm-pvc
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: nas-llm-sc
      resources:
        requests:
          storage: 30Gi
  3. 出现创建成功的提示后,点击nas-llm-pvc查看创建状态。当状态为Bound时,说明NAS存储卷创建和绑定成功。

    image

部署真武810E GPU算力

本步骤介绍如何使用inference-xpu-pytorch推理镜像创建一个使用真武810E GPU算力资源的工作负载,挂载NAS存储卷,并关联到一个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标签来指定实例的卡型为PPU810E

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

    申请的资源规格。

    更多规格参数,请参见PPU Pod规格表
    image: acs-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/egslingjun/inference-xpu-pytorch:25.06-v1.5.2-vllm0.8.5-torch2.6-cu126-20250610

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

    volumes:
      - name: data
        persistentVolumeClaim:
          claimName: nas-llm-pvc #nas-llm-pvc为步骤一创建的NAS存储声明
    volumeMounts:
      - mountPath: /mnt #NAS挂载路径
        name: data

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

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: llm-test
      name: llm-test
      namespace: default
    spec:
      progressDeadlineSeconds: 600
      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
              - sleep infinity
              image: acs-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/egslingjun/inference-xpu-pytorch:25.06-v1.5.2-vllm0.8.5-torch2.6-cu126-20250610
              imagePullPolicy: IfNotPresent
              name: llm-test
              resources:
                limits:
                  cpu: 8
                  memory: 16G
                  alibabacloud.com/ppu: 1
                  ephemeral-storage: 30Gi
                requests:
                  cpu: 8
                  memory: 16G
                  alibabacloud.com/ppu: 1
                  ephemeral-storage: 30Gi
              terminationMessagePath: /dev/termination-log
              terminationMessagePolicy: File
              volumeMounts:
                - mountPath: /mnt #NAS挂载路径
                  name: data
                - mountPath: /ppu-data
                  name: ephemeral
          dnsPolicy: ClusterFirst
          restartPolicy: Always
          schedulerName: default-scheduler
          securityContext: {}
          terminationGracePeriodSeconds: 30
          volumes:
            - name: data
              persistentVolumeClaim:
                claimName: nas-llm-pvc #nas-llm-pvc为步骤一创建的NAS存储声明
            - name: ephemeral
              emptyDir:
                sizeLimit: 30G
    ---
    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
  2. 出现创建成功的提示后,点击llm-test查看创建状态。

    由于只拉取镜像,暂未启动推理服务,Pod达到Running状态时间需要约5分钟。

部署大语言模型

本步骤以Qwen2.5-1.5B-Instruct大语言模型为例,介绍如何在容器中下载和使用模型文件。

可通过提升带宽的方式,进一步缩短下载时间,详细内容请参见如何提升模型下载速度?
  1. 点击容器组名称llm-test-xxxxxxxxx-xxxxx右侧操作列的终端,进入llm-test容器终端。

  2. 执行以下命令,安装modelscope,并下载模型文件到指定目录。

    模型下载时间需要约5分钟。
    pip install modelscope
    modelscope download --model Qwen/Qwen2.5-1.5B-Instruct --local_dir /mnt/Qwen2.5-1.5B-Instruct

    预期输出:

    ...
    Installing collected packages: modelscope
    Successfully installed modelscope-1.27.1
    ...
    Successfully Downloaded from model Qwen/Qwen2.5-1.5B-Instruct.                                                                                                                  | 1.00M/2.88G [00:00<16:35, 3.10MB/s]

启动推理服务

本步骤介绍如何在容器中通过命令行启动大模型推理服务。

  1. 模型下载完成后,执行模型启动命令。

    python3 -m vllm.entrypoints.openai.api_server --model /mnt/Qwen2.5-1.5B-Instruct/ --trust-remote-code --gpu-memory-utilization 0.95

    预期输出:

    ...
    INFO:     Started server process [150]
    INFO:     Waiting for application startup.
    INFO:     Application startup complete.
    说明

    由于通过在终端中手动执行命令的方式来启动推理服务,请保持终端处于开启状态。若希望将推理服务设置为自动启动,请继续执行以下步骤。

  2. (可选)在ACS控制台中,选择工作负载 > 无状态,点击llm-test工作负载的右侧操作列的编辑。在生命周期区域,将启动执行命令替换为以下内容,然后点击页面右侧更新并确认 。

    ["sh","-c","python3 -m vllm.entrypoints.openai.api_server --model /mnt/Qwen2.5-1.5B-Instruct/ --trust-remote-code --gpu-memory-utilization 0.95"]

    image

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

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

    请将<IP>修改为上一步中创建的服务的外部IP地址。
    curl http://<IP>:8000/v1/chat/completions \
        -H "Content-Type: application/json" \
        -d '{
        "model": "/mnt/Qwen2.5-1.5B-Instruct/",  
        "messages": [
        {"role": "system", "content": "你是个友善的AI助手。"},
        {"role": "user", "content": "介绍一下杭州的旅游景点。"}
        ]}'
    

    预期输出:

    image

至此,在ACS中使用真武810E快速搭建AI推理服务已完成。

常见问题

开通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

相关文档

PPU Pod规格表

按量、容量预留、BestEffort实例共用相同规格表。

规格族

PPU(卡)

vCPU

Memory(GiB)

Memory支持步长(GiB)

系统盘大小

存储收费

单机规格族

1

2

2 ~ 16

1

30G ~ 384G

  • 内存16 GiB及以下,overhead由产品承担;大于16 GiB,overhead分摊到Pod里。

  • 系统盘大小含义:30 G以内不额外收费;30 G以上收费(空间越大收费越多)。

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

46

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

92

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

184

256,512,1024,1800

N/A