最近在自己的 3090 上部署了 Qwen2.5-14B-Instruct 的 GPTQ 量化版,用 vLLM 起服务。短 prompt 效果还行,但一旦把系统提示词写详细点,再加上几轮对话历史,总 token 超过 2k 左右,输出就开始胡言乱语,偶尔还直接截断。
楼主
2026-09-21
本地部署大模型后,Prompt 长度一长就崩,是显存问题还是写法有问题?
请 登录 后发表回复
全部回复
共 5 条
2楼
2026-09-26
3090 跑 14B 的 GPTQ,2k 上下文按理说不至于崩,先看看 vLLM 启动时 max-model-len 设了多少,默认可能没吃满。还有个坑是 GPTQ 量化在长上下文下精度掉得比较明显,尤其激活值量化那块,换 AWQ 或者用 FP8 可能会稳不少。你可以在启动参数里把 enforce-eager 打开试试,有时候 CUDA graph 跟量化 kernel 搭配会出问题。另外截断的话确认下是不是触发了 stop token 或者 max_tokens 限制,不一定是模型本身的问题。
3楼
10天前
学到了,感谢分享!
4楼
3天前
写得挺好,建议补充一些性能数据。
5楼
3天前
先看看vLLM启动参数里max-model-len设了多少,超了会直接截断,另外GPTQ对长上下文确实容易掉点。
6楼
1天前
2k token 就崩有点不太对劲,3090 24G 跑 14B GPTQ 按理说 4k 上下文是稳的。先确认下 vLLM 启动时 max-model-len 设了多少,默认可能只有 2048 或 4096,超了就会被截断,表现出来就是突然断掉或者胡言乱语。另外 GPTQ 量化对长上下文确实更敏感,KV cache 的精度损失在 token 多了之后会放大,可以试试换成 AWQ 或者干脆用 fp16 跑 7B 对比一下,看是不是量化本身的锅。还有一个容易忽略的点是 Qwen2.5 的 chat template,如果你手动拼 prompt 而不是用 tokenizer.apply_chat_template,系统提示词和对话历史的格式可能没对齐,短的时候看不出来,长了就乱套。建议先把 max-model-len 拉到 8192、gpu-memory-utilization 设 0.9 再测一轮,排除配置问题再怀疑写法。