“Local AI should be a default, not a privilege: private data, no per-token bill, no vendor lock-in. The hardware to run capable models already sits on desks. The software to run those chips well doesn’t.“
Qwen 3.6 27B 推理速度优化技术文档
一、背景与目标
- 模型:Qwen 3.6 27B(稠密模型,FP8 精度)
- 硬件:单卡 RTX 4090(48GB 显存,无 P2P 通信);双卡 RTX 4090
- 初始性能:单卡 RTX 4090 裸跑 FP8 精度,输出速度仅 20 tokens/s
- 目标:通过多种优化手段,将单卡 RTX 4090 推理速度提升至 184 tokens/s(峰值),实现最少 5 倍、最多 10 倍的速度提升
二、量化优化(第一阶优化)
2.1 原理
- 模型参数的位宽从 FP16 降至 4bit,体积缩小 4 倍
- 显存带宽不变时,每次搬运的数据量减半,从而突破显存访问瓶颈,速度翻倍
- 适用于显存受限的场景(如 RTX 4090 非高带宽显存)
2.2 量化方案对比
| 方案 | 框架 | 精度 | 速度(单卡 RTX 4090) | 特点 |
|---|---|---|---|---|
| GGUF Q4_K_M | llama.cpp | 4bit | ~45 token/s | 适合单人使用,可 offload 到内存 |
| AWQ | VLLM | 4bit | ~48 token/s | 适合高并发场景 |
2.3 精度损失评估
- 测试工具:
ToolCall15https://github.com/stevibe/ToolCall-15 + 数据提取 + 指令遵循(共 45 场景) - 结论:大部分场景损失可忽略,仅增加少量错误与纠错 token,但速度提升 2 倍以上,可接受。
三、投机解码 – MTP(Multi Token Prediction)
3.1 原理
- 在模型主头之外增加多个预测头,一次并行预测后续 N 个 token
- 大模型验证时一次通过,命中则跳过单步生成,利用 GPU 闲置算力
- 参数 n 控制预测窗口大小(n = 1,3,5)
3.2 测试结果(单卡 RTX 4090)
| 配置 | 速度(tokens/s) | 提升幅度 |
|---|---|---|
| VLLM AWQ 无 MTP | 48 | 基准 |
| VLLM AWQ + MTP n = 1 | 71 | +49% |
| VLLM AWQ + MTP n = 3 | 99 | +106% |
| VLLM AWQ + MTP n = 5 | 108 | +124% |
| FP8 无 MTP | 20 | 基准 |
| FP8 + MTP n = 1 | 38 | +90% |
| FP8 + MTP n = 3 | 60 | +200% |
| FP8 + MTP n = 5 | 72 | +260% |
- 联合量化 + MTP 可达 5 倍提升:FP8 (20) → AWQ + MTP n = 5 (108)
3.3 llama.cpp 的投机解码
- 采用 n-gram 方式,实测提升不明显(可能因实验场景为每次全新上下文,不适合连续多轮调用)
四、双卡并行方案
4.1 单并发性能
- 双卡 FP8 + MTP n = 5:单并发 120 tokens/s(仅比单卡 108 tokens/s 提升 11%)
- 瓶颈:两张 RTX 4090 间无 P2P 直连,通信需经过 CPU 内存,损耗大
4.2 多并发优势
- 双卡在多请求场景下优势显著:10 并发时可提供更高总吞吐
- 类比:单车道→四车道,单请求速度不变但总容量大幅提升
五、高级投机解码 – DFlash 与 DDTree
5.1 DFlash(扩散式投机解码)
- 借鉴图像扩散模型思想:一次性生成整块模糊候选文本,再逐步去噪精炼
- 本质是并行路径,但默认仍是单条路径验证,一错全废
5.2 DDTree(Diffusion Draft Tree)
- 先用扩散模型生成多个备选路径(参数 22 条),同时探索
- 任意一条路径通过即成功,大幅提升命中率
- 实现项目:
luceboxhttps://github.com/Luce-Org/lucebox-hub
5.3 性能表现(单卡 RTX 4090,Q4 + DFlash/DDTree)
| 配置 | 平均速度 | 峰值速度 |
|---|---|---|
| 本机 4090 | 141 tokens/s | 184 token/s |
| 参考:lucebox 3090 | 207 tokens/s(Qwen 3.5 27B) | - |
5.4 速度依赖因素
- 任务类型:数学题(逻辑死板)→ 150 tokens/s;代码(变量灵活)→ 125 tokens/s;创意写作(自由度最高)→ 效果差
- 适用场景:多 agent、
Claude Code等写代码场景最适合推测解码
六、KV Cache 量化 – TurboQuant
6.1 原理
- 将 KV cache 从 FP16 压缩至 3~4 bit,压缩比约 4 倍
- 非权重量化,为第首次实现几乎无精度损失的 KV cache 量化
6.2 效果
- 24G 显存(如 RTX 3090)搭配 Q4 模型,可支持 200K 上下文长度
- 已获
VLLM0.20 及lucebox支持
七、生产环境推荐方案
| 需求 | 推荐配置 | 性能 |
|---|---|---|
| 最高精度 + 多并发 | FP8 + VLLM + MTP n = 5 | 10 并发 ~500 tokens/s |
| 极致单请求速度 | Q4 + DFlash / DDTree(lucebox) | 峰值 184 tokens/s(但暂不支持多并发、工具调用不稳定) |
八、技术限制与展望
- DFlash / DDTree 当前限制:不支持多并发、未合入
llama.cpp主线、Claude Code工具调用易断 - 软件层潜力:CUDA 驱动能效比低于 Apple M5,通过 kernel 融合、降功率等优化可大幅提升能效(实验显示 RTX 3090 降功率后能效比追平 M5 Max)
- 未来方向:更多内核级优化 + 框架原生支持,本地算力将持续升值
九、结论
通过 量化(GGUF / AWQ) → MTP → DFlash/DDTree → TurboQuant 的递进优化,单卡 RTX 4090 上 Qwen 3.6 27B 的推理速度从 20 tokens/s 提升至 184 tokens/s(峰值),提升超 9 倍。该路线为本地大模型从“玩具”迈向“核弹级生产力工具”提供了已验证的技术路径。
References
- 小天 fotos - Qwen 3.6 27B,多种优化方式,从 20t/s 飙到 184t/s,我是怎么做到的? https://www.youtube.com/watch?v=edHNTFt5jYk