开源框架 ShardFlow:跨广域网双节点跑出 Qwen2.5-7B 28 TPS
开发者推出分布式推理框架 ShardFlow,通过神经推测解码与 CUDA Graphs 优化,在跨广域网双 T4 节点…
Reddit 用户 katua_bkl 近日公布了其独立开发的分布式大模型推理框架 ShardFlow。该框架可将任意 HuggingFace Transformer 模型拆分到 N 台 GPU 机器上运行,并借助神经推测解码(neural speculative decoding)来抵消广域网(WAN)带来的延迟影响。在跨美国两个 GCP 区域的 T4 节点实测中,Qwen2.5-7B 推理峰值达到 28 TPS,相对非推测解码基线提升近 6 倍。
核心思路:把广域网延迟从逐 token 转为逐轮次
ShardFlow 的设计前提是:在大模型分布式部署中,节点间的网络往返时延(RTT)通常远高于单次 token 生成耗时。传统逐 token 同步的方案在 86 ms 量级的公网 RTT 下几乎不可用。
框架采用神经推测解码,设定 K=8 的草稿长度后,每轮往返可提交约 4.07 个有效 token,使网络延迟从「每次生成一个 token 都要付一次」变成「每轮只需付一次」。对于跨区域部署,这一换算是工程上的关键收益。
Qwen2.5 基准测试数据
作者在两台跨区域 T4 节点(位于 GCP 爱荷华与俄勒冈,中经俄亥俄一台 AWS EC2 TCP 中继,公网 RTT 约 86 ms)上完成了以下对比测试:
- Qwen2.5-7B 非推测解码基线:4.92 TPS
- Qwen2.5-7B 神经草稿(eager 模式):峰值 14.3 TPS
- Qwen2.5-7B 草稿启用 CUDA Graphs 后:峰值 28.10 TPS,平均 20.31 TPS
- Qwen2.5-14B 采用 NF4 4-bit 量化、同双节点部署:平均 14.43 TPS
关键优化:CUDA Graphs 把草稿延迟从 112 ms 压到 25 ms
作者在 v2.1 修复中发现,原有实现每轮草稿生成会在 Python 循环里启动约 1500 个 CUDA 内核,单个内核 2–5 µs,但 Python 端发射开销高达 8–10 µs,GPU 空泡率约 65%。
解决方案是将整个 0.5B 参数草稿模型的前向过程捕获为一张 CUDA Graph,再用一次驱动调用整体重放。最终草稿阶段延迟从 112 ms 降至 25 ms,这也是总吞吐从 14.3 TPS 跃升至 28 TPS 的主要来源。
框架其他组成与开源信息
除推测解码与 CUDA Graphs 外,ShardFlow 的工程栈还包括:
- 零拷贝 Rust TCP 中继,负责跨节点张量传输
- StaticCache 与原地 KV 回退(in-place KV rewind),以满足 CUDA Graph 的兼容性约束
- meta-device 模型切片,避免在 CPU 内存中加载完整 15 GB 权重
项目代码已开源在 GitHub:https://github.com/rautaditya2606/Shardflow。作者表示欢迎就推测解码实现与 CUDA Graphs 相关细节进一步交流。
