准备任务YAML
用户可根据实际情况完成制作镜像的准备工作,然后选择相应的YAML示例,对示例进行修改。
选择YAML示例
当前,基于AIBrix框架的vllm-ascend推理任务由StormService自定义CRD部署,StormService的使用和部署请参见Aibrix StormService文档。StormService的YAML示例请参见YAML。
AIBrix官方提供的示例均基于GPU,使用NPU时需要适配,以下是一个适配示例,用户可根据实际需求进行修改。
apiVersion: orchestration.aibrix.ai/v1alpha1
kind: StormService
metadata:
name: "my-test"
namespace: "default"
spec:
replicas: 1 # 当前不支持修改,仅为1
updateStrategy:
type: "InPlaceUpdate"
stateful: true
selector:
matchLabels:
app: "my-test"
template:
metadata:
labels:
app: "my-test"
spec:
roles:
- name: "prefill" # prefill定义
replicas: 1 # prefill副本数
podGroupSize: 1 # prefill Pod副本数
stateful: true # 当前仅支持设置为true
template:
metadata:
labels:
model.aibrix.ai/name: "qwen3-moe" # aibrix所需label,根据实际情况填写
model.aibrix.ai/port: "8000"
model.aibrix.ai/engine: "vllm"
fault-scheduling: "force" # 开启重调度
pod-rescheduling: "on" # 如果podGroupSize为1,pod-rescheduling需要配置为"on";如果podGroupSize大于1,则不需要配置,删除该参数。
annotations:
huawei.com/schedule_minAvailable: "1" # Gang调度策略下最小调度的副本数,在StormService中所有podGroupSize为1的实例会组成一个podGroup进行调度,其最小调度的副本数范围为[1, 实例replicas之和],建议配置为实例replicas之和;podGroupSize大于1的实例各自组成一个podGroup,其最小调度的副本数范围为[1, podGroupSize],建议配置为podGroupSize。例如,prefill实例的podGroupSize为1,decode实例的podGroupSize为2,则prefill实例的最小调度副本数设置为prefill实例的replicas,decode实例的最小调度副本数设置为decode实例的podGroupSize。
huawei.com/recover_policy_path: "pod" # pod-rescheduling为"on"时任务执行恢复的路径。设置为"pod",表明Pod级重调度失败时,不升级到Job级重调度。因为当前podGroup中的每一个Pod都是一个独立的实例,所以其故障处理不能扩散到其他实例。
spec:
schedulerName: volcano # 指定调度器为Volcano
nodeSelector:
accelerator-type: "module-a3-16-super-pod" # 根据硬件形态设置
containers:
- name: prefill
image: vllm-ascend:xxx # 镜像名称
...
resources:
limits:
"huawei.com/Ascend910": 16 # 配置NPU数量
requests:
"huawei.com/Ascend910": 16
...
- name: decode # decode定义
replicas: 1 # decode副本数
podGroupSize: 2 # decode pod副本数
stateful: true
template:
metadata:
labels:
model.aibrix.ai/name: "qwen3-moe"
model.aibrix.ai/port: "8000"
model.aibrix.ai/engine: vllm
fault-scheduling: "force" # 开启重调度
annotations:
huawei.com/schedule_minAvailable: "2" # 见prefill实例参数说明
spec:
schedulerName: volcano
nodeSelector:
accelerator-type: "module-a3-16-super-pod"
containers:
- name: decode
image: vllm-ascend:xxx
...
resources:
limits:
"huawei.com/Ascend910": 16 # 配置NPU数量
requests:
"huawei.com/Ascend910": 16
...
- name: routing # routing定义
replicas: 1 # routing副本数
stateful: true
template:
spec:
containers:
- name: router
image: xxx:yyy # routing镜像
...
父主题: 通过命令行使用