更新时间:2025-10-14 GMT+08:00
分享

PD分离部署Qwen推理服务

  1. 使用Snt9b23资源基于PD分离场景下部署Qwen模型推理,您需要参考下述命令生成部署所需的infer_vllm_kubeinfer.yaml文件,其中“--xx-params“参数支持的参数详见表1请按需配置

    # 场景参考:生成1P1D的Qwen3-32B部署yaml,实例副本数为2,权重为量化的w8a8c8权重,启动参数为版本推荐值
    python3 gen_pd_deploy_kubeinfer_yaml_with_omni.py \
        --prefill-pod-num=1 \
        --decode-pod-num=1 \
        --replicas=2 \
        --pd-resource="{\"resource-cpu\": 88, \"resource-npu\": 8, \"resource-mem\": \"500Gi\"}" \
        --image-name="ascend_vllm:latest" \
        --mount-path=/mnt/deepseek \
        --script-path=/mnt/deepseek/deploy \
        --common-params="--extra-env-vars='ENABLE_PHASE_AWARE_QKVO_QUANT=1,ENABLE_QWEN_MICROBATCH=1,PREFILL_STOP_SCHEDULE_TOKENS=8000,BLOCK_RELEASE_DELAY=60,USE_ZMQ_BROADCAST=1' \
                         --pd-port=9100 \
                         --vllm-log-path=/mnt/deepseek/vllm_log \
                         --time-window-ms=90000 \
                         --model=/mnt/deepseek/model/Qwen3-32B-w8a8c8 \
                         --max-num-seqs=64 \
                         --served-model-name=qwen \
                         --max-model-len=65536 \
                         --tensor-parallel-size=8 \
                         --gpu-memory-utilization=0.9 \
                         --no-enable-prefix-caching \
                         --no-enable-chunked-prefill \
                         --quantization=compressed-tensors \
                         --kv-cache-dtype=int8 \
                         --num-gpu-blocks-override=15000 \
                         --enable-reasoning \
                         --reasoning-parser qwen3 \
                         --additional-config='{\"ascend_turbo_graph_config\": {\"enabled\": true, \"quant_fusion\": true}, \"ascend_scheduler_config\": {\"enabled\": true}, \"async_pull_kv\": true}'" \
        --proxy-params="--port=9000"
    

  2. 根据部署架构,在工作节点或控制节点上执行下面的k8s命令,完成第三方开源大模型推理实例的部署。

    kubectl apply -f infer_vllm_kubeinfer.yaml

  3. 执行下述命令查看部署状态,当全部Pod的“READ“字段结果都为”1/1”时表示部署成功。

    kubectl get po | grep infer

  4. 执行下述命令获取 Service 的 ”CLUSTER-IP”。

    kubectl get svc

  5. 测试推理API

    curl -ik -H 'Content-Type: application/json' -d '{"messages":[{"role":"user","content":"hello"}],"model":"qwen3-32b","temperature":0.6,"top_p": 0.95,"top_k": 20,"max_tokens":1024}' -X POST http://${CLUSTER-IP}:9000/v1/chat/completions

相关文档