Nightjar: Dynamic Adaptive Speculative Decoding for Large Language Models Serving

本文提出了 Nightjar,一种资源感知自适应推测解码框架,通过动态调整推测长度、在低收益时主动禁用推测并将草稿模型卸载至 CPU 以释放显存,从而在动态负载下显著提升了大语言模型服务的吞吐量并降低了延迟。

Rui Li, Zhaoning Zhang, Libo Zhang, Huaimin Wang, Xiang Fu, Zhiquan Lai

发布于 2026-03-04
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇文章介绍了一个名为 Nightjar(夜鹰) 的新系统,它能让大型语言模型(LLM,比如现在的各种 AI 聊天机器人)在提供服务时变得更快、更聪明。

为了让你轻松理解,我们可以把AI 生成文字的过程想象成一家繁忙的餐厅,把AI 模型想象成厨师

1. 核心问题:餐厅里的“猜菜”难题

在传统的 AI 生成文字时,厨师(AI 模型)必须一个字一个字地写。写完一个字,停下来思考,再写下一个。这就像厨师每切一片肉都要停下来等老板确认,效率很低,而且厨房(显存)里堆满了待处理的订单(KV Cache),导致能同时服务的顾客(并发请求)变少。

为了解决这个问题,业界发明了一种叫**“推测解码”(Speculative Decoding)**的方法:

  • 做法:请一个**小助手(草稿模型)**先快速猜出接下来的几个字(比如猜 3 个),然后大厨师(主模型)一次性检查这 3 个字对不对。如果全对,就一次性输出 3 个字;如果错了,就只保留对的。
  • 好处:在客人少的时候,这招很管用,大大加快了上菜速度。
  • 坏处
    1. 忙不过来时:如果客人太多(高负载),大厨师本来就要忙得不可开交,还要花时间去检查小助手的猜测,反而更慢了。
    2. 占地方:小助手虽然小,但也需要占用厨房的一小块地盘(显存)。如果厨房太挤,这块地盘本来可以放更多待处理的订单(KV Cache),现在被小助手占了,导致能同时服务的客人变少。

现有的系统就像是一个死脑筋的经理:不管客人多还是少,它都一直让小助手帮忙,而且不管厨房挤不挤,小助手都一直占着那个位置。这导致在客人多的时候,系统反而变慢了,甚至崩溃。

2. Nightjar 的解决方案:聪明的“夜鹰”经理

Nightjar 就像是一个拥有超能力的智能经理,它做了两件关键的事情:

第一招:看人下菜碟(动态调整策略)

Nightjar 不会死板地一直让小助手猜字。它会像观察天气一样,实时观察餐厅的繁忙程度(请求负载)

  • 客人少时(低负载):它立刻叫来小助手,让它多猜几个字(增加推测长度),因为这时候大厨师有空闲,猜对了就能飞起上菜。
  • 客人多时(高负载):它发现大厨师已经忙不过来了,检查猜测反而成了累赘。于是,它果断关掉小助手,让大厨师专心致志地一个字一个字写。虽然慢一点,但比“又猜又查”导致系统卡死要好得多。
  • 如何做到?:它使用了一种叫**“多臂老虎机”(Multi-Armed Bandit)**的算法。这就像是一个赌徒,不断尝试不同的策略(猜 1 个字、猜 3 个字、或者不猜),看看哪种在当前最赚钱(吞吐量最高),并自动学习出最佳方案。

第二招:灵活腾地(弹性内存管理)

这是 Nightjar 最厉害的地方。

  • 平时:小助手在厨房角落里待命,随时准备帮忙。
  • 客人爆满时:Nightjar 发现厨房太挤了,订单(KV Cache)没地方放了。它立刻把小助手**“请”到外面的休息室(CPU 内存)**去休息,把厨房里的地盘腾出来给订单。
    • 比喻:就像餐厅爆满时,经理把平时坐在角落的“备用服务员”请出去,把那个座位改成“加座”,让顾客能坐得更满。
  • 客人变少时:一旦厨房空出来了,Nightjar 又悄悄把小助手**“接”回厨房**,准备下一轮加速。

这个过程是异步的,就像在客人点菜的同时,服务员在后台悄悄换座位,完全不会让客人感觉到停顿。

3. 效果如何?

实验证明,Nightjar 这个“智能经理”非常成功:

  • 吞吐量提升:在动态变化的请求下,平均比传统方法快了 27%。这意味着同样的时间内,它能服务更多的用户。
  • 延迟降低:用户等待第一个字出现的时间(首字延迟)降低了 20% 以上。
  • 适应性:无论请求是像潮水一样忽高忽低,还是像细水长流,它都能自动调整,始终保持在最佳状态。

总结

Nightjar 的核心思想就是**“不要死板”
它不再把“推测解码”当作一个永远开启的开关,而是把它变成了一个
可调节的工具**。

  • 该用时用,不该用时就关掉。
  • 该占地方时占,该腾地方时就撤。

通过这种动态适应资源回收,Nightjar 让 AI 模型在应对现实世界中复杂多变的用户请求时,既快又稳,真正实现了“资源高效”的 AI 服务。

在收件箱中获取类似论文

根据您的兴趣定制的每日或每周摘要。Gist或技术摘要,使用您的语言。

试用 Digest →