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

PD分离部署推理服务

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

    # Snt9b23场景参考:生成2P1D的DeepSeek-R1部署yaml,实例副本数为2,启动参数为版本推荐值
    python3 gen_pd_deploy_kubeinfer_yaml.py \
        --num-roles=3 \
        --replicas=2 \
        --image-name="ascend_vllm:A3.6" \
        --mount-path=/data \
        --script-path=/data/deploy \
        --common-params="--tmpfs-path=/data/tmpfs_model/deepseek-r1 \
                         --enable-fusion-spec=1 \
                         --vllm-log-path=/data/vllm_log \
                         --extra-env-vars='LLM_WAITING_OUT=3600,DEFAULT_MAX_TOKENS=32768' \
                         --model=/data/model/deepseek-r1 \
                         --served-model-name=deepseek-r1 \
                         --max-model-len=65536 \
                         --gpu-memory-utilization=0.91 \
                         --num-scheduler-steps=1 \
                         --multi-step-stream-outputs=true \
                         --disable-async-output-proc" \
        --scheduler-params="--max-num-seqs=256 --enable-reasoning --reasoning-parser=deepseek_r1" \
        --prefill-params="--max-num-seqs=24 --tokenizer-pool-size=8 --enforce-eager --enable-prefix-caching" \
        --decode-params="--max-num-seqs=24 --preemption-mode=swap --swap-space=16"
    
    # Snt9b场景参考:生成2P1D的DeepSeek-R1部署yaml,实例副本数为2,启动参数为版本推荐值
    python3 gen_pd_deploy_kubeinfer_yaml.py \
        --device-type=A2 \
        --num-roles=3 \
        --replicas=2 \
        --image-name="ascend_vllm:A3.6" \
        --mount-path=/data \
        --script-path=/data/deploy \
        --common-params="--tmpfs-path=/data/tmpfs_model/deepseek-r1 \
                         --enable-fusion-spec=1 \
                         --vllm-log-path=/data/vllm_log \
                         --extra-env-vars='LLM_WAITING_OUT=3600,DEFAULT_MAX_TOKENS=32768' \
                         --model=/data/model/deepseek-r1 \
                         --served-model-name=deepseek-r1 \
                         --max-model-len=65536 \
                         --gpu-memory-utilization=0.95 \
                         --num-scheduler-steps=1 \
                         --multi-step-stream-outputs=true \
                         --disable-async-output-proc" \
        --scheduler-params="--max-num-seqs=4 --enable-reasoning --reasoning-parser=deepseek_r1" \
        --prefill-params="--max-num-seqs=8 --num_gpu_blocks_override=512 --enforce-eager --enable-prefix-caching" \
        --decode-params="--max-num-seqs=16 --num_gpu_blocks_override=2200 --preemption-mode=swap --swap-space=24"
    

  2. 在K8s的master节点执行下面的命令部署三方开源大模型推理实例。

    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":"deepseek-r1","temperature":0.6,"max_tokens":1024}' -X POST http://${CLUSTER-IP}:9000/v1/chat/completions

相关文档