小特爱 发表于 2026-10-2 02:25:35

双 4090 本地跑 Qwen3.8-27B:262K 上下文、量化选型与 vLLM 生产配置

https://teaikeji.com/data/attachment/forum/rehost/wx20261002-1.jpg

这里是寂寞的熊猫。Qwen3.8-27B 开源后,想把它变成本地 Agent 基座、处理长代码或长文档的人明显变多。官方 FP8、Unsloth NVFP4、W4A16 AutoRound、AWQ、W8A16 以及 GGUF 等版本很快出现,但真正部署时,很多人并不是输错命令,而是把“能启动”当成“能稳定服务”。

常见误区不少:有人觉得 NVFP4 文件小,所以在任何显卡上都比 FP8 快;有人以为 24GB 显卡塞进 20GB 左右量化模型,就能直接吃满 262K 上下文;也有人把推测解码参数拉满,结果长任务反而更慢。真正要算的是一本总账:权重占多少,激活占多少,KV Cache 还剩多少,多卡通信会不会拖慢,推测解码在长文本里是否划算。

https://teaikeji.com/data/attachment/forum/rehost/wx20261002-2.jpg

消费级硬件上部署 27B 稠密模型,最危险的是启动参数里写了 --max-model-len 262144,服务看起来正常,但一遇到长代码或大文档就 OOM。很多框架所谓支持 262K,只是把上下文长度写进配置,并没有给 KV Cache 预留足够物理空间。只要没有把激活显存和 CUDA Graph 开销算进去,请求一进来就可能立刻崩溃。

在两张 RTX 4090、合计 48GB 显存的实机环境里,使用 vLLM 0.28.0 加载官方 Qwen3.8-27B-FP8,开启 TP=2 和 FP8 KV Cache 后,显存分配比较清晰:单卡模型常驻约 15.04 GiB,剩下约 5.76 GiB 给 FP8 KV Cache。双卡 TP=2 下,这部分 KV Cache 总容量约为 330,658 tokens。

这个数字相对单请求 262,144 tokens 有 1.26 倍余量,也意味着双 4090 上 262K 满上下文不是参数虚标,而是物理层面能装下,并保留约 6.8 万 tokens 的安全空间。既然 KV Cache 总池子明确,并发边界也更好判断:日常主力部署可以设置 --max-model-len 262144 --max-num-seqs 2,单请求能冲到 262K,中短请求也能并发,不必为了开并发而压缩最大上下文。

https://teaikeji.com/data/attachment/forum/rehost/wx20261002-3.jpg

量化版本选择上,社区目前给出了不少路线。很多人看到 NVFP4 是 4-bit、体积更小,就默认它全面优于 FP8。但 NVFP4 是 NVIDIA 面向 Blackwell 架构设计的格式,只有 RTX 5090、B200 这类具备原生 FP4 Tensor Core 的硬件,才能同时获得显存减半和计算加速。

RTX 4090 属于 Ada 架构,RTX 3090 属于 Ampere 架构,底层都没有 FP4 计算单元。vLLM 能加载 NVFP4,通常依赖 Marlin 等 kernel 在计算前把 4-bit 权重动态反量化回浮点格式。这个过程可以理解成:书被压缩得更薄了,但读者每读一页都要先把速记展开成普通文字,阅读速度并不一定变快。NVFP4 在这类老卡上的价值,主要是多省出 3 到 3.5 GiB 显存给 KV Cache,从而提升并发能力,而不是让计算本身更快。

横向来看,如果更看重输出质量、工具调用稳定性和多模态能力,官方 FP8 是优先项;如果目标是极致并发、尽量挤出 KV Cache 余量,W4A16 INT4 路线更合适。这里要避开一个坑:不要把 BitsAndBytes NF4 用于双卡 vLLM 部署。vLLM 对预量化 BNB checkpoint 不支持 Tensor Parallel,强行跑只能走 Pipeline Parallel,通信气泡会让单请求延迟变差。

不同显卡的选型逻辑也不一样。双 4090 更适合走官方 FP8 的稳健路线;双 3090 可以走 W4A16 加速路线;单卡 24GB 则必须克制上下文预期。单张 24GB 显卡即使把权重压到 19.5GB 左右,留给激活、系统常驻和 KV Cache 的空间也只有 3GB 上下。若强行把上下文拉到 128K 以上,大概率触发 OOM。更合理的定位是 64K 以内的日常编程辅助、轻量工具调用或短文档处理。

双 3090 虽然享受不到 Ada 架构原生 FP8 加速,但社区通过 W4A16 配合 DFlash 2,在代码基准上跑出过 243.69 tok/s,真实 Agent 任务约 165 tok/s,部分场景也能达到 200+ tok/s。不过这条路通常需要给 vLLM 打特定补丁,并配置 LMCache,属于高阶玩家的深度调优方案。

至于 Qwen3.8-Flash-Next(125B 稀疏 MoE / 6B 激活),能力上限更高,但在 vLLM 下部署需要 96GB 级别显存,例如 RTX PRO 6000,总下载约 113GB,冷启动约 8 分钟。对消费级显卡和多 Agent 调度场景来说,27B 的资源利用效率仍然更现实。

推测解码方面,Qwen3.8-27B 架构原生内置 MTP(Multi-Token Prediction)head,不需要额外下载独立小 draft model,模型自身就能在生成时多预测几个 token。双 4090 实机测试中,开启 --speculative-config '{"method":"mtp","num_speculative_tokens":2}' 后,日志显示第 1 个推测 token 接受率稳定在 75% 到 85%,第 2 个推测 token 接受率在 55% 到 70%,平均接受长度达到 2.1 到 2.8,10 秒窗口平均生成吞吐稳定在 40 到 60 tok/s。

但 MTP 不是越大越好,也不是所有场景都无脑提速。社区公开的 4×3090 压力测试显示,短输入下 MTP 是加速器;到了 70K 以上超长上下文,盲目开启 MTP 反而可能严重拖慢性能。原因是长上下文下注意力计算开销本身急剧放大,每多推测一个 token,都要让同一层网络多执行一次前向计算。如果模型在长文本深处对后续 token 的预测命中率下降,额外前向计算的算力代价就会超过猜中 token 节省的解码时间,造成性能倒挂。日常使用推荐 num_speculative_tokens 设为 2;如果主要跑超长文档阅读、整库索引或长程 Agent,应先测实际端到端时间,必要时直接关闭推测解码。

https://teaikeji.com/data/attachment/forum/rehost/wx20261002-4.jpg

Qwen3.8-27B 是原生多模态模型,视觉组件在训练初期就深度融入,vLLM 已经支持直接传入图片和视频进行解析。日常部署中,vLLM 与 llama.cpp 分工比较明确:如果只追求单用户极限纯文本解码速度,llama.cpp 配合 GGUF 值得折腾;但若要对外提供标准 OpenAI 兼容 API、做多用户并发调度,或直接解析图片视频,vLLM 更适合作为主力。

下面是经过双 RTX 4090 长期运行验证的启动命令模板:

vllm serve /path/to/Qwen3.8-27B-FP8
--served-model-name Qwen3.8-27B
--host 0.0.0.0
--port 7867
--tensor-parallel-size 2
--max-model-len 262144
--gpu-memory-utilization 0.95
--kv-cache-dtype fp8
--max-num-seqs 2
--max-num-batched-tokens 8192
--reasoning-parser qwen3
--enable-auto-tool-choice
--tool-call-parser qwen3_coder
--limit-mm-per-prompt '{"image":16,"video":1}'
--speculative-config '{"method":"mtp","num_speculative_tokens":2}'
--disable-custom-all-reduce
> nohup.out 2>&1

几个关键参数需要理解:--tensor-parallel-size 2 把模型切分到两张显卡,双 4090 没有 NVLink,会通过 PCIe 与 NCCL 通信,建议加上 --disable-custom-all-reduce 消除探测警告;--max-model-len 262144 开放原生 262K 满上下文;--kv-cache-dtype fp8 启用 FP8 格式 KV Cache,这是双 4090 能真正装下 262K 的核心前提;--max-num-seqs 2 允许两路并发,在保留单请求 262K 弹性的同时支持中短请求调度;--limit-mm-per-prompt 允许每个请求最多携带 16 张图片或 1 段视频;--reasoning-parser qwen3 与 --tool-call-parser qwen3_coder 则开启针对千问架构优化的思考解析和结构化工具调用解析。

本地部署大模型,不是比谁模型名字更长,也不是盲目追最新量化格式。双 4090 跑 Qwen3.8-27B 的结论其实很直接:4090 认准官方 FP8,3090 认准 W4A16 或 AWQ,不要拿老卡生搬 Blackwell 的 NVFP4 结论;262K 不是参数写上去就有,必须靠 FP8 KV Cache 留足 5.76GB 显存,服务才站得住;短请求可以用 MTP=2 提速,长任务要警惕性能倒挂,不能无脑拉满。

如果你手里正有一套双 24GB 显卡环境,想搭一个高稳定性的本地 Agent 基座,目前官方 FP8 加 vLLM 的组合,仍然是最均衡的选择。

我是寂寞的熊猫,感谢你读到这里。
页: [1]
查看完整版本: 双 4090 本地跑 Qwen3.8-27B:262K 上下文、量化选型与 vLLM 生产配置