你手里有一张卡、一个多模态权重,想用 vLLM 把服务跑起来,结果卡在权重识别、图片输入格式或者显存不够上。这篇按「先对齐版本、再起服务、最后验图」的顺序走一遍,每一步给判断标准和排查动作;参数只给方向和取值思路,具体数字到站内页面按你的卡自行核定。
你手里有一张卡、一个多模态权重,想用 vLLM 把服务跑起来,结果卡在权重识别、图片输入格式或者显存不够上。这篇按「先对齐版本、再起服务、最后验图」的顺序走一遍,每一步给判断标准和排查动作;参数只给方向和取值思路,具体数字到站内页面按你的卡自行核定。
先说明一件事:多模态在 vLLM 里不是「什么模型都能直接吃」的,它按模型架构逐家适配。所以第一遍别急着调参,先回答「我这个权重,当前 vLLM 认不认」这个问题。认,再往下走;不认,换版本或换推理框架比硬试省时间。
先确认三件事:版本、权重、卡
顺序不能反。很多人一上来就调显存比例,其实是权重没被识别,调什么都没用。先把这三件事各自确认一遍,再动手写启动命令。
- 确认版本支持范围到 /models/deploy 与 /models 查该权重在你当前 vLLM 版本的支持列表里在不在。不在就换版本或换框架,别硬试,报错信息通常不会直说「不支持」。
- 核对权重目录完整性模型权重、config、processor 与图像预处理相关文件缺一个都会在加载阶段炸。先在本地把文件清单列出来跟来源页对一遍,再启动服务。
- 按卡型先算显存参考 /compute/sizing 和 4090-vram-model-limit 的思路估一遍。要点:图片输入会额外吃显存,多模态比同参数的纯文本更紧,别按纯文本的余量去留。
| 要确认的事 | 判断标准 | 不适用的情况 |
|---|---|---|
| 版本支持 | 权重出现在当前版本支持列表 | 用的自定义微调架构,官方列表未必收录 |
| 权重完整 | config 与 processor 文件齐全 | 只跑纯文本分支,可省图像相关文件 |
| 显存余量 | 留出图片输入的额外空间 | 固定只跑单图、低并发的小规模验证 |
启动参数怎么定:先跑通再调优
第一遍用最小可用配置,只开模型路径、端口和张量并行度,确认能起来;能起来之后再逐步加 max-model-len、batch 相关参数。这个顺序的价值在于:出问题时你能确定是「本来就起不来」还是「被你调崩的」。
- 张量并行张数、显存占用比例这类量级问题,参考 /compute/gpus 对照你实际卡型,具体取值不要背别人的,按自己卡容量试
- max-model-len 别照纯文本的惯用值直接抄,多模态的图片 token 会占上下文,先小后大
- 图片预处理相关的批大小与缓存参数,先保持默认,等服务稳定了再逐个动
- 每改一个参数就重启验一次,一次改三四个参数等于放弃定位能力
判断标准很简单:服务能在日志里打出「已就绪」并且不报显存相关警告,就算这一步过了。如果你不确定自己卡上合理区间在哪,去 /compute/gpus 核对当时的数字再定。
服务起了不等于能用:图片输入的验证动作
这是最容易被跳过的一步。服务监听成功、纯文本请求能返回,都不代表多模态通路打通了。要专门拿图去验。
- 先用纯文字截图提问截一张有文字的图,问图里写了什么。返回内容能对上,说明图像通路至少没断。
- 再用带表格或图表的图换一张结构复杂的图,看返回是否真的读到了图内容。纯文字截图能过,不代表表格和图表也能过。
- 确认图片传法请求里图片的传法各家接口格式不同:URL、base64、本地路径的字段名都可能不一样。先确认服务端接受哪个字段,再写客户端,不然会一直 400/500。
- 量一个延迟基线用 /tools/speed-test 的思路量一下单图请求的延迟,之后再谈并发,否则优化没有参照。
常见报错按这个顺序排查
报错不要从最复杂的可能性开始想,按发生阶段分三层查,效率最高:加载阶段、请求阶段、运行一段时间之后。
| 现象 | 优先怀疑 | 下一步动作 |
|---|---|---|
| 加载阶段直接报错 | 权重与版本不匹配、文件缺失 | 回 /models/deploy 对支持范围和文件清单 |
| 服务起来了但请求 500 | processor 相关:图片格式或字段名不对 | 看 processor 日志,核对请求字段 |
| 跑一会儿崩或越来越慢 | 显存碎片与 KV cache 占用 | 按 /vram-full-troubleshoot-guide 的并发与缓存思路查 |
这个顺序的意义是:加载阶段的问题基本跟卡无关,先别怀疑硬件;请求阶段的问题多半在接口格式,不用动部署参数;跑久了才崩的,才轮到显存与并发这块。分层查能省掉大量来回试。
下一步把服务跑通只是起点,真正的坑在并发和成本上。到 /tools/speed-test 量你自己的延迟与吞吐基线,再去 /sites 和 /price-watch 对照托管方案与当前价格,判断到底是自部署划算还是走中转更省事。→常见问题
vLLM 起 phi-4 多模态一直报权重不支持怎么办?
先别改代码。大概率是你当前的 vLLM 版本还没接这个架构,或者权重目录缺 processor 相关文件。去 /models/deploy 核对该模型的支持范围,再决定是升级框架、换权重来源,还是退回纯文本模式先用着。
同一张卡,多模态比纯文本能撑的上下文小多少?
没有统一答案,取决于图片分辨率和切图策略,图会被转成一批 token 塞进上下文。稳妥做法是先用小 max-model-len 跑通,再按显存占用逐步往上加,具体量级到 /compute/sizing 按你的卡和量化方式算。
本地跑不顺,能不能先租卡验证?
可以,而且更省事。租卡能把「是模型问题还是我的环境问题」快速区分开,确认能跑之后再回到本地折腾驱动和依赖。租卡前先到 /compute/availability 看有没有货、/compute/price-index 看当时租金水平。