AI Pulse

RTX 3090 本地大模型推理提速近三成

有位开发者更新了 Qwen3.8-27B 的推理引擎。RTX 3090 上,单请求速度约 114 tps(默认采样),贪婪解码 124 tps。此前是 90 和 98 tps。

两天前他发布初版优化引擎,单请求 82 tps,峰值 672 tps。昨天的更新把单用户速度提到 99 tps,64 并发时约 1000 tps。今天这版是又一次迭代。

这次提速是多个层面叠加的结果:fp8 KV cache、int8 量化的 lm_head 和 embed_tokens;fp16 recurrent state、int8 activations;带 4 万 token draft head 的 MTP-4 drafts。

草稿词汇表是关键改进之一。旧词表基于网页文本统计,只能覆盖模型实际输出的 92%,代码场景只有 83%。每次遗漏都会导致一次被迫拒绝。新词表直接从模型自身输出中统计,覆盖率 97.5%。贪婪解码从 98 tps 提到 109 tps。

GPTQ-int4 量化用在 lm_head 和 MTP 模块上,校准数据取自模型自己的隐藏状态。结果是困惑度增加 0.6%,GSM8K 成绩不变,每步延迟减少 1.8 毫秒。

另一个改动是 Split-KV attention kernel,专门处理验证步骤。FlashAttention-2 只对单查询解码做 KV 切分。带 4 个草稿时,3090 的 82 个 SM 只用上 24 个。作者写了个小型 Triton kernel,1.5k 上下文快 5 倍,16k 快 10 倍。

采样器也有补丁:无排序的 top-k/top-p、多块 softmax、草稿从目标截断支持中采样。默认采样速度提高 4%。

长上下文支持来自 KVarN 4/2-bit KV cache 的移植,适配 vLLM 0.27.1。262k 上下文能完整装进显存,大海捞针测试正确到 240k。困惑度只增加 0.16%,代价是 100k 上下文时解码慢约 20%。这个功能是可选开关。

并发吞吐量没有牺牲,64 并发时仍是约 1000 tps。推测解码在构造上是精确的,采样分布和不使用推测解码时一致。

所有测试都在 250W 功耗限制下完成。有评论指出,放开到完整 360-400W 后,速度可能到 135-140 tps。作者还给了两个脚本。bench/run_benchmarks.sh 负责复现表格数据。verify.sh 确认安装真打上了补丁。

有评论提到 4090 变体已在开发中。它能在 llama-swap 里运行,但还没有指标输出,也不支持多卡。有人问 Docker Compose 支持,也有人问质量退化怎么定义。作者说,这很可能就是推理栈的最后一次更新,除非出现他愿意测试的新想法。

阅读原文
📚 相关主题 开源本地大模型

订阅 AI Pulse

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