三机部署glm-4.7(bf16)报错

三台机器,每台有8张A100显卡(40G/张),使用tp8,pp3进行部署,报以下错误。
模型共92层,pp3不能均分,是这个问题吗?减小层数到60层用pp2做调试是没有问题的。

是的,你的理解基本正确。92层模型用pp3(pipeline parallel size=3)时,无法均分层数,容易导致分层不均或分配出错,从而引发KeyError等初始化失败问题。你用60层模型配pp2能正常,是因为60能被2整除,分层均匀不会出错。据相关issue报错堆栈,pp分组不能正确映射到模型层时会报KeyError。

建议:要么调整模型层数使其能被pp数整除,要么手动设置VLLM_PP_LAYER_PARTITION环境变量,指定每组分配的层数(如"31,31,30"),但需确保分配合理且所有层都被覆盖,否则仍会报错。详细分配方法可参考官方说明

需要更详细的分层配置或调试建议吗?

Sources:

Hint: Mention @RunLLM in the post for followups.

@RunLLM 我根据你发我的issue作了修改,现在可以启动服务,但是发送请求后没有回复,Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%

根据你的描述,服务能启动但请求无回复,且日志显示“Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%”,这通常是vLLM引擎内部请求卡死或配置不当导致的常见问题。此类现象在多卡/多并发环境下经常出现,尤其是pp/tp分组或KV cache参数设置不合理时。相关issue官方文档建议:

  1. 检查max-num-batched-tokens参数,确保其不小于max-model-len,否则vLLM v1会卡死请求。
  2. 尝试将VLLM_USE_V1=0切换回v0引擎,若v0正常则说明v1配置有误。
  3. 增加环境变量VLLM_LOGGING_LEVEL=DEBUG,观察详细日志定位卡点。
  4. 检查模型分层配置与实际层数是否完全匹配,避免遗漏或重复。

需要更详细的排查步骤或配置示例吗?

Sources:

Hint: Mention @RunLLM in the post for followups.