AI Pulse

RTX 5090能一口气读完一本书,但速度有点慢

有人用一张RTX 5090,把Qwen3.8-27B模型的上下文窗口撑到了262,144个token。模型是NVFP4量化导出,检查点19.18 GiB,保留了视觉塔和MTP头。64层混合架构——48层Gated DeltaNet加16层全注意力层,vLLM 0.27.1加载,自动选上了modelopt_fp4量化、FlashInfer CUTLASS NVFP4 GEMM和FlashInfer注意力路径。

全窗口预填充花了166秒。解码速度:短上下文(1K prompt)是77.2 tok/s,128K上下文降到64.7 tok/s,大约降了16%。预填充吞吐量也从8K输入时的7,005 tok/s一路掉到262K时的1,578 tok/s。换个说法:你喂一整本书进去,等它读完需要将近三分钟,然后每秒钟吐出60多个字。

内存管理有点抠。vLLM的KV池手动固定为8.52 GiB,GPU上KV容量刚好268,170个token,给262,144窗口只留了1.02倍富余。--gpu-memory-utilization 0.92只是启动准入,分配实际不遵循它。--max-num-seqs 3也不意味着三个并发,池子只够一个全窗口请求。最后整卡用了30,532 MiB,剩1,610 MiB空闲。

前缀缓存测下来提升明显:冷启动TTFT 6.437秒,缓存后中位数0.288秒,加速22.3倍。但vLLM把混合Mamba/DeltaNet缓存标记为实验性align模式,输出可能损坏——如果看到乱码,先关掉前缀缓存试试。FP8 KV缓存也没有校准的缩放因子,用了scale 1.0,精度可能有影响。

推测解码默认关闭。作者试了内置MTP头:1 token时解码58.41 tok/s(接受率78.7%),3 tokens时45.02 tok/s(接受率57.9%),反而比不开启的78.55 tok/s慢。外部DSpark/dflash drafter因为张量维度不匹配,根本加载不上。MTP还需要更大的KV池,三token MTP在262K时直接OOM。

配置上有些细节:--max-num-batched-tokens 512保护激活余量,提高会改善预填充但吃掉VRAM;--mm-processor-kwargs把大图像限制在约3,908 tokens;聊天模板用了froggeric/Qwen-Fixed-Chat-Templates v22.2,加了一个简洁系统提示块。服务器暴露了未认证的OpenAI兼容端点,作者声明在可信LAN上有意为之。

安全警告:--host 0.0.0.0开了无认证接口,别在公共网络跑。安装用uv创建Python 3.13环境,指定CUDA 130后端。FlashInfer JIT在CUDA_HOME未设置时会失败,得确保nvcc可见。

高票评论说这速度慢了——NVFP4在5090上应该到150-200 tok/s。有用户用ninfer在相同硬件上跑128K上下文,2并发各约150 tok/s;换成ornith1.5能超200 tok/s。还有人在3090上用dflash2和MTP跑到120+ tps。作者用的'uncensored'模型缺少匹配的推测解码器,可能是瓶颈之一。

作者自己希望其他5090用户能复现比较128K预填充/解码、无头会话与桌面的空闲VRAM,以及FP8-KV在长上下文检索中的质量变化。所有数值声明由作者对照原始数据审查,没有LLM生成或估计。

阅读原文
📚 相关主题 本地大模型AI部署大语言模型

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新