RTX4090 的显存是 24G,不够用
- 模型是Qweb-7B,需要15G显存。那么需要使用
--gpu-memory-utilization 0.85让它只占用一部分。
1. 杀掉残留的僵尸进程,把显存腾出来
pkill -9 -f vllm
pkill -9 -f EngineCore
2. 确认显存是不是真的降下来了
watch -n 1 nvidia-smi
3. 重新启动(加上限制参数,别让它贪心)
VLLM_USE_MODELSCOPE=True vllm serve Qwen/Qwen2.5-7B-Instruct --port 8000 --host 0.0.0.0 --download-dir /root/autodl-tmp --gpu-memory-utilization 0.85 --max-model-len 4096
- 3.1 除了模型权重占用的 15GB,剩下的显存要用来做 KV Cache (草稿纸)。如果不加
--max-model-len 4096,vLLM 默认可能会按 32K 上下文去预留显存,直接把剩下的 9GB 撑爆。限制为 4096 后,KV Cache 的预留量大幅减少,所以才能顺利启动。 - 3.2 因为 vLLM 默认的
max-model-len通常非常大(比如 32K 或 128K),它会提前把最大可能的 KV Cache 空间预留出来。你把它限制到 4096,相当于告诉 vLLM:"我就聊几十句话,别给我留一整个操场那么大的草稿纸,够用就行。" 这才解决了 OOM(显存溢出)。
4. 如果使用 RTX6000 能够瞬间解决显存不够的问题。
- 那么新的问题是,这货6元/小时。
- 而且没有办法学习在有限的资源中怎么完成资源调度。
- 这真的像互联网刚刚起来的那个鬼样子,真的让人兴奋。
🕳️ AutoDL 踩坑复盘(从零到跑通 Qwen-7B)2026-1-15- 11:46
坑一:找不到合适的 RTX 4090(算力市场没卡)
- 现象:点进算力市场,全是 RTX 6000D(6.46元/时),找不到 1.88 元的 4090。
- 原因:热门地区的 4090 太抢手,经常被秒空。
- 避坑指南:不要死磕一个区。多换几个区(比如重庆A区、内蒙B区),或者在页面上勾选"只看有卡",再筛选 RTX 4090。
坑二:Hugging Face 连不上(Error 101 Network is unreachable)
- 现象 :敲了
vllm serve之后,终端疯狂报错,说连不上huggingface.co。 - 原因:AutoDL 的国内机器默认访问不了国外的 Hugging Face 模型库。
- 避坑指南 :在 AutoDL 的终端里,先运行
source /etc/network_turbo开启学术加速。注意:这个加速只对当前终端有效,如果你新开了终端,需要重新 source 一次。
坑三:Hugging Face Xet 认证失败(401 Unauthorized)
- 现象 :模型下载了一部分,突然报
401 Unauthorized和cas-server.xethub.hf.co。 - 原因:Hugging Face 现在用新的 Xet 协议加速下载,但由于你是匿名访问(没有绑定 Token),它的 CDN 拒绝了你的请求。
- 避坑指南 :可以直接禁用 Xet,回退到普通下载模式:
export HF_HUB_DISABLE_XET=1。但是,在国内环境,最好直接换源(见坑四)。
坑四:终极杀器------使用阿里 ModelScope 镜像(最推荐)
- 现象 :为了绕过 Hugging Face 的各种网络和认证问题,决定使用
VLLM_USE_MODESLOPE=True。 - 报错 :
ModuleNotFoundError: No module named 'modelscope'。 - 原因:vLLM 支持从 ModelScope 下载,但并没有内置这个库,需要手动装。
- 避坑指南 :先
pip install "modelscope>=1.18.1" -i https://pypi.tuna.tsinghua.edu.cn/simple,然后再用环境变量启动 vLLM。ModelScope 属于国内服务器,下载速度快到飞起(73% 只用了 1 秒)。
坑五:显存不足导致 EngineCore 崩溃(OOM)
-
现象 :模型下载完了,但是 vLLM 启动失败,报
ValueError: ... requested memory。 -
原因 :RTX 4090 只有 24GB 显存。Qwen-7B 模型权重占了大概 15GB,vLLM 默认想占用 90% 的显存,而且默认的
max-model-len(上下文长度)极大(比如 32K),导致预留的 KV Cache(草稿纸)空间不够,直接报错退出。 -
避坑指南:
pkill -9 -f vllm和pkill -9 -f EngineCore:杀掉残留的僵尸进程,释放显存。--gpu-memory-utilization 0.85:限制 vLLM 只占用 85% 的显存,给系统留点余量。--max-model-len 4096:把上下文长度限制在 4096,大幅减少 KV Cache 的预留空间。
最后:
shell
python -c "import requests; url='http://localhost:8000/v1/chat/completions'; data={'model': 'Qwen/Qwen2.5-7B-Instruct', 'messages': [{'role': 'user', 'content': 'It seems like a joke, but I really want to get it.'}], 'max_tokens': 100}; response=requests.post(url, json=data); print(response.json()['choices'][0]['message']['content'])"