追逐Batch-1极限:Ling-3.0-flash在Blackwell上的推测解码优化

追逐Batch-1极限:Ling-3.0-flash在Blackwell上的推测解码优化

引言

Batch-1解码日益重要。小米MiMo等项目已宣称在万亿参数MoE模型上实现1000 tok/s解码速度。Batch-1场景下,推理栈无法隐藏开销,没有批次分摊启动成本,也缺乏并发填补流水线气泡。本文聚焦Ling-3.0-flash混合线性注意力MoE模型在4张Blackwell GPU上的优化。

Headline results across the four configurations

图1展示了四种配置下的 headline 结果。

亮点总结

  • 最终结果:均值TPOT降低54%(3.33ms→1.53ms),单请求吞吐提升2.1倍(288→606 tok/s)。
  • 优化路径:主机超前运行→PDL链式→内核优化→DSpark。
  • 数值精度作为带宽杠杆:router gate与lm_head从fp32转为bf16带来约10%提升。

模型架构

Ling-3.0-flash采用混合注意力设计,42层中35层为KDA线性注意力,7层为MLA全注意力,搭配512专家MoE。

Ling-3.0-Flash architecture: 42 layers interleaving 35 KDA linear-attention layers with 7 MLA full-attention layers over a 512-expert MoE

图2展示模型架构细节。

Batch-1单步形态

使用NEXTN推测解码(steps=5, topk=1, draft_tokens=6),每步包含三个CUDA graph接力。

Three graphs per decode step

图3展示每解码步的三个graph。

两种空闲时间形态

初始时GPU仅忙碌约三分之二时间,空闲分为主机模式与GPU模式两种。

Two shapes of idle time at batch 1

图4对比两种空闲形态。

从锁步到深度流水线

通过主机超前运行与PDL优化消除空闲。

From lockstep to deep pipelining

图5展示从锁步到深度流水线的转变。

空闲裕度位置

分析run-ahead slack分布。

Where the run-ahead slack lives

图6定位空闲裕度所在。

路由器路径上的PDL

应用PDL优化路由器路径。

PDL on the router path

图7展示PDL在路由器路径的应用。

SplitServe Trainer布局

展示训练器布局。

SplitServe Trainer layout

图8为SplitServe Trainer布局。

接受感知优化

结合接受长度的优化策略。

Acceptance-aware optimization

图9展示接受感知优化。

活动后单步解码

优化后的单步形态。

One decode step after the campaign

图10展示活动后的一步解码。

本文来自 LMSYS 博客,赢政天下(winzheng.com)进行了全文翻译。 点击这里查看原文 如果转载中文,请注明出处,谢谢支持!