vllm [用法]:在2个L40 GPU(48G)上运行33b模型float16时内存不足,

62o28rlo  于 2个月前  发布在  其他
关注(0)|答案(6)|浏览(80)

当前环境

在两个L40 GPU(48G)上运行deepseek-coder-33b-instruct模型时,内存不足。尝试了--enforce-eager --gpu-memory-utilization,但没有帮助。

python -m vllm.entrypoints.openai.api_server --dtype float16 --trust-remote-code --model /models/deepseek-coder-33b-instruct  --served-model-name deepseek-coder-33b-instruct --port 8000 --host 0.0.0.0 --tensor-parallel-size 2

它报告错误:

ERROR 04-28 15:55:45 worker_base.py:157] Error executing method initialize_cache. This might cause deadlock in distributed execution.
ERROR 04-28 15:55:45 worker_base.py:157] Traceback (most recent call last):
ERROR 04-28 15:55:45 worker_base.py:157]   File "/root/miniconda3/envs/deepseek/lib/python3.10/site-packages/vllm/worker/worker_base.py", line 149, in execute_method
ERROR 04-28 15:55:45 worker_base.py:157]     return executor(*args, **kwargs)
ERROR 04-28 15:55:45 worker_base.py:157]   File "/root/miniconda3/envs/deepseek/lib/python3.10/site-packages/vllm/worker/worker.py", line 171, in initialize_cache
ERROR 04-28 15:55:45 worker_base.py:157]     raise_if_cache_size_invalid(num_gpu_blocks,
ERROR 04-28 15:55:45 worker_base.py:157]   File "/root/miniconda3/envs/deepseek/lib/python3.10/site-packages/vllm/worker/worker.py", line 335, in raise_if_cache_size_invalid
ERROR 04-28 15:55:45 worker_base.py:157]     raise ValueError("No available memory for the cache blocks. "
ERROR 04-28 15:55:45 worker_base.py:157] ValueError: No available memory for the cache blocks. Try increasing `gpu_memory_utilization` when initializing the engine.

但是使用fastchat可以正常工作,总共大约有30G的空闲内存。

python3 -m fastchat.serve.model_worker --model-path /models/deepseek-coder-33b-instruct --num-gpus=2 --gpus=0,1 --max-gpu-memory=46GB --model-names=deepseek-coder-33b-instruct

我想知道vllm是否支持这样的推理场景。33b模型在两个48G GPU上使用float16?谢谢。

plicqrtu

plicqrtu1#

我也尝试使用DeepSeek Coder 33B,但是遇到了错误:

我正在运行4个GPU(NVIDIA L4s),总共98GB。

ztmd8pv5

ztmd8pv53#

我正在使用类似的配置,在2H100-80GB上运行llama3-70B,并遇到了相同的错误。
有趣的是,使用--enforce-eager解决了这个问题,但我猜这会导致推理延迟显著增加(对于100个令牌的输入,大约每秒16个令牌)。
有什么建议吗?

mo49yndu

mo49yndu4#

在两个A800 GPU(80G)上部署qwen1.5_72b_chat,使用vllm 0.4.2,同时出现错误

CUDA_VISIBLE_DEVICES=2,3 python -m vllm.entrypoints.openai.api_server \
    --model Qwen1.5-72B-Chat \
    --dtype auto \
    --gpu-memory-utilization 0.9 \
    --tensor-parallel-size 2 \
    --enforce-eager \

8oomwypt

8oomwypt5#

对于4xA100的设置也是如此。

ki1q1bka

ki1q1bka6#

当我将gpu_memory_utilization设置为较小的速率时,这种情况就发生了,导致预分配内存不足。但实际上,我得到了足够的内存,只是没有将vllm分配给k&v缓存。

相关问题