27B模型塞进24GB显存,上下文拉到147K还快三成
一位用户在Reddit的LocalLLaMA板块发了一份实测。他用RTX 3090 24GB跑Qwen3.8-27B,连续运行3小时。平均解码速度38.39 tok/s,提示处理871.93 tok/s。机器其余部分不算新:E5 2690V4 CPU、48GB DDR4内存。显卡是245W功耗档的RTX 3090。
模型是INT4 AutoRound量化权重,KV缓存用FP8 E4M3格式。上下文窗口配到147,456 token,权重、KV缓存和上下文都塞进一张RTX 3090。推理引擎是vLLM 0.27.1,配了来自Club 3090的补丁。
上下文从82K到147K
作者之前用llama.cpp跑同一模型的Q5 UD GGUF版,上下文81,920。速度在25-30 tok/s之间。换到vLLM后,上下文窗口跳到147K,生成速度提到38 tok/s上下。有位评论者说,这笔交换“我想都不用想”。同一张24GB卡,INT4换来上下文翻倍和约30%的速度增益。
速度随上下文长度变化。10K token提示下,解码42.3 tok/s,提示处理1000.26 tok/s。提示拉到90K,解码仍有34 tok/s,提示处理743.59 tok/s。作者没开MTP和多模态;开多模态的话,上下文会降到64-65K左右。
质量方面,作者在75个场景里拿到71/75,94.7%。五类任务:工具调用、指令遵循、结构化输出、数据提取、推理/数学。指令遵循15/15满分,其余四项各14/15。测试强制开思考,推理强度设低,整轮约15分钟。至少在这套环境里,INT4量化没有明显质量缩水。
调出来的速度
38 tok/s不是开箱即得。作者从32K上下文往上试:64K、80K、128K,最后停在144K。他估计这套配置的实际上限在154K,留了点余量。批处理大小从256调到1024,再往上可能还有1280-1536的空间。
评论区把提速的关键指向FP8 KV缓存。有评论解释,vLLM在FP8下用硬件加速做计算,速度通常是BF16的2倍以上。相比之下,llama.cpp的Q8 KV缓存只提内存带宽,不碰计算。
启动参数里几个开关也关键。--enable-chunked-prefill把长提示切成小块分批算。--enable-prefix-caching让相同前缀复用已有计算。--max-num-seqs 1把并发压到最低。
调优路上有两个实用经验。首次启动如果显存不足,值得再跑一次。Inductor可能已经编译缓存了部分配置,下次能直接复用。反复试错会让vLLM的编译缓存膨胀到5-6GB。作者会删掉旧缓存,用最终配置重跑两遍。
换GDN这类线性注意力模型要留意。vLLM对KV和状态缓存池的显存需求预测会明显变差。整组测试在WSL2里完成,作者说裸机还能更快。
社区里的其他路线
评论区还有更激进的数字。有用户用syv-ai/qwen38-27b-rtx3090仓库,持续速度60-70 tok/s。也有人在llama.cpp上跑出约1k tok/s的提示处理、50 tok/s的生成。配合MTP,上下文在40K到100K之间。同一模型在vLLM上跑,输出约100 tok/s。
评论区也有人提醒,GGUF量化在质量上通常优于AutoRound。作者权衡后仍选了AutoRound:同一张卡,上下文翻倍、速度上来,基准还有94.7%。
Ninfer方案在评论区分歧明显。有用户建议适配3090的Ninfer端口。立刻有人回复:试了两三次,全都没成。另一位用过的用户说,Ninfer只快一点,模型质量还更差。QUASAR-QAT打包的Qwen3.8-27B NVFP4量化版也有人推荐,说非常满意。
同一个讨论串里还有另一个规模:有人在跑600B模型。配置是AMD Ryzen 7950x3D、192GB内存、32TB NVME。显卡用RTX 4080 Super 16GB,速度只有约7 tok/s。另一位刚拿到RX 7900 XTX,准备走同一条路线。有人在等16GB显存版的类似测评。