[Bug]: 模型启动挂起,vLLM中有16+个等级

b5buobof  于 3个月前  发布在  其他
关注(0)|答案(2)|浏览(39)

问题描述

当使用vLLM库在2个节点上启动16个进程(ranks)的模型时,启动挂起并且无法完成。然而,使用8个进程在2个节点上启动正常。这个问题影响了在多节点集群上运行需要16个或更多进程高效运行的大型模型的能力。

重现步骤:

  1. 8个进程(成功):
    在具有8个GPU的两个AWS g5.12xlarge机器上的Ray集群中,确认集群状态:
ubuntu@ubuntu:~ $ ray status
======== Autoscaler status: 2024-05-31 21:18:32.605238 ========
Node status
---------------------------------------------------------------
Active:
 1 node_1a93b656e273149f144a0ef03fad7c56dfdb0eb2005b289eee44914e
 1 node_bdda5bb6d33b5b29813769d6c4238d0e764aa1851f620abb31d4d3e0
Pending:
 (no pending nodes)
Recent failures:
 (no failures)

Resources
---------------------------------------------------------------
Usage:
 0.0/96.0 CPU
 0.0/8.0 GPU
 0B/235.77GiB memory
 0B/105.04GiB object_store_memory

Demands:
 (no resource demands)

使用8个进程启动模型运行:

python -m vllm.entrypoints.openai.api_server \
    --enforce-eager \
    --tensor-parallel-size 8 \
    --swap-space 16 \
    --gpu-memory-utilization=0.9 \
    --model meta-llama/Meta-Llama-3-70B \
    --disable-custom-all-reduce \
    --disable-log-requests
  1. 16个进程(挂起):
    在具有16个GPU的两个AWS g5.48xlarge机器上的Ray集群中,确认集群状态:
ubuntu@ubuntu:~ $ ray status
======== Autoscaler status: 2024-05-31 20:52:39.099177 ========
Node status
---------------------------------------------------------------
Active:
 1 node_5bd8b16e07dc169bc0f7dcc901f47246c4f78a58775ff48675f298db
 1 node_023579a04c1324bb4e2cdb146f8be2a530b9e7b0d449f57d3e2e63bd
Pending:
 (no pending nodes)
Recent failures:
 (no failures)

Resources
---------------------------------------------------------------
Usage:
 0.0/384.0 CPU
 0.0/16.0 GPU
 0B/1.00TiB memory
 0B/372.53GiB object_store_memory

Demands:
 (no resource demands)

使用16个进程启动模型运行:

python -m vllm.entrypoints.openai.api_server \
    --enforce-eager \
    --tensor-parallel-size 16 \
    --swap-space 16 \
    --gpu-memory-utilization=0.9 \
    --model meta-llama/Meta-Llama-3-70B \
    --disable-custom-all-reduce \
    --disable-log-requests

预期行为:模型应该在指定的16个等级上成功启动并加载。
影响:这个bug阻止了在多节点集群上启动和运行需要大量等级的大型模型。

iqxoj9l9

iqxoj9l91#

请设置环境变量export VLLM_LOGGING_LEVEL=DEBUG,以便开启更多日志记录,帮助调试潜在问题。
如果您遇到崩溃或挂起,使用export VLLM_TRACE_FUNCTION=1运行vllm会有所帮助。vllm中的所有函数调用都将被记录。检查这些日志文件,并告诉哪个函数崩溃或挂起。
来自问题模板。

6ljaweal

6ljaweal2#

我尝试了上述建议,但似乎这个调用会导致挂起:

2024-06-03 16:53:30.748291 Call to synchronize in /home/ubuntu/shared/vllm-main/main/lib/python3.10/site-packages/torch/cuda/streams.py:93 from __init__ in /home/ubuntu/shared/vllm-main/vllm/distributed/device_communicators/pynccl.py:101

在注解掉这一行后,还有更多的挂起:

2024-06-03 17:03:26.030671 Call to _compute_cos_sin_cache in /home/ubuntu/shared/vllm-main/vllm/model_executor/layers/rotary_embedding.py:85 from __init__ in /home/ubuntu/shared/vllm-main/vllm/model_executor/layers/rotary_embedding.py:66
2024-06-03 17:03:26.030696 Call to _compute_inv_freq in /home/ubuntu/shared/vllm-main/vllm/model_executor/layers/rotary_embedding.py:70 from _compute_cos_sin_cache in /home/ubuntu/shared/vllm-main/vllm/model_executor/layers/rotary_embedding.py:87
2024-06-03 17:03:26.030797 Call to __torch_function__ in /home/ubuntu/shared/vllm-main/main/lib/python3.10/site-packages/torch/utils/_device.py:74 from _compute_inv_freq in /home/ubuntu/shared/vllm-main/vllm/model_executor/layers/rotary_embedding.py:81

相关问题