问题描述
大家好,我在使用 vLLM 多节点 API 服务时遇到了一个非常稳定复现的死锁/卡死问题。
当我向 /v1/completions 接口发送普通的文本生成请求时,即使 prompt 非常长,双节点的 GPU 也能正常快速返回结果。
但是,只要在请求参数中加上 logprobs,API 请求就会永远挂起(Hang)。此时GPU的利用率一直维持在0.
vllm 部署指令:(Qwen3-30B模型)
vllm serve --model $MODEL_PATH \
--served-model-name $MODEL_NAME \
--tensor-parallel-size 8 \
--pipeline-parallel-size 2 \
--distributed-executor-backend ray \
--trust-remote-code \
--host 0.0.0.0 \
--port 8000 \
--gpu-memory-utilization 0.75 \
--max-num-seqs 128 \
--max-num-batched-tokens 8192 \
--max-model-len 4096
请求方式 (不使用logprobs, 能快速返回结果)
curl -s -X POST http://127.0.0.1:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "'$MODEL_NAME'",
"prompt": "How are you? What is your name?",
"max_tokens": 1024
}'
请求方式(包含logprobs, hang)
curl -s -X POST http://127.0.0.1:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "'$MODEL_NAME'",
"prompt": "How are you? What is your name?",
"logprobs":1,
"max_tokens": 1024
}'
环境信息:
- ray == 2.51.1
- vllm == 0.17.1
- torch == 2.10
- CUDA =12.8
- 2台 H100*8,已经启动了ray cluster.