vllm [Bug]: 运行时Assert错误:32768不能被3整除,multiproc_worker_utils.py:120,在使用3个GPU进行Tensor并行时

jdgnovmf  于 4个月前  发布在  其他
关注(0)|答案(6)|浏览(74)

一些LLM模型在multiproc_worker_utils.py的第120行出现了Assert错误,尤其是在使用3个GPU时。这个bug对于客户端来说是关键性的,会阻止部署。这是一个运行时错误,而不是关机错误。

  1. 模型:AI-ModelScope/Mixtral-8x22B-Instruct-v0.1
  2. 设置:tensor-parallel-size 3(针对3个GPU)
  3. 错误:
    [rank0]: AssertionError: 32768不是3的倍数
    ERROR 07-13 02:56:30 multiproc_worker_utils.py:120] Worker VllmWorkerProcess pid 382811 died, exit code: -15
    INFO 07-13 02:56:30 multiproc_worker_utils.py:123] Killing local vLLM worker processes
    另外,
    (VllmWorkerProcess pid=412146) WARNING 07-13 03:43:42 custom_all_reduce.py:129] Custom allreduce is disabled due to an unsupported world size: 3. Supported world sizes: [2, 4, 6, 8]. To silence this warning, specify disable_custom_all_reduce=True explicitly.
    WARNING 07-13 03:43:42 custom_all_reduce.py:129] Custom allreduce is disabled due to an unsupported world size: 3. Supported world sizes: [2, 4, 6, 8]. To silence this warning, specify disable_custom_all_reduce=True explicitly.
    Traceback (most recent call last):
    File "/usr/lib/python3.8/multiprocessing/resource_tracker.py", line 201, in main
    cache[rtype].remove(name)
    KeyError: '/psm_dea5b192'
    Traceback (most recent call last):
    File "/usr/lib/python3.8/multiprocessing/resource_tracker.py", line 201, in main
    cache[rtype].remove(name)
    KeyError: '/psm_dea5b192'
    (VllmWorkerProcess pid=412146) ERROR 07-13 03:43:42 multiproc_worker_utils.py:226] Exception in worker VllmWorkerProcess while processing method load_model: 32768不是3的倍数,Traceback (most recent call last):
    (VllmWorkerProcess pid=412146) ERROR 07-13 03:43:42 multiproc_worker_utils.py:226] File "/home/cx/.local/lib/python3.8/site-packages/vllm/executor/multiproc_worker_utils.py", line 223, in _run_worker_process
lpwwtiir

lpwwtiir1#

在什么情况下使用3个GPU?通常人们使用1/2/4/8个GPU。

roqulrg3

roqulrg32#

在什么情况下使用3个GPU?通常人们使用1/2/4/8个GPU。
在8x8x8x8配置中有4个PCI插槽。
一个插槽被AMD Alveo FPGA加速卡和光纤占用。
由于网络需求,服务器中可以容纳的最大GPU数量是3倍。基础是AMD Rome 64核处理器,因为矩阵操作(稀疏、分解、逆)是在CPU上完成的,不能卸载到GPU上。
FPGA加速卡是客户部署的要求。对于矩阵乘法免费和稀疏层卸载,这在当前一代GPU上无法执行。
这个问题还影响了前沿中文代理模型,如Qwen2,其中词汇表大小是一个质数,因此不能被GPU数量整除。
如果词汇表大小是质数,例如在Qwen2中,那么只能使用1个GPU。2、3、4个GPU不能被词汇表大小整除。
排名最高的模型没有部署。

8fq7wneg

8fq7wneg3#

对于这个问题,基本上很复杂。也许你可以尝试将pipeline并行大小设置为3?

anhgbhbe

anhgbhbe4#

对于这个问题,基本上比较复杂。也许你可以尝试设置pipeline并行大小为3?
模型太大了,我们需要使用Tensor并行,以便为上下文和管道化多个请求释放GPU内存。
如果注意力头的数量是质数,Qwen2如何运行?

u0njafvf

u0njafvf5#

Will this pull request be merged in, for the next release?
#5367

whhtz7ly

whhtz7ly6#

这个拉取请求是否会在下一个发布版本中被合并?

$\sqrt{3}$

相关问题