DARE:通过复用扩散语言模型激活实现高效推理

arXiv cs.LG 论文

摘要

本文介绍了 DARE,这是一种通过复用缓存的键值(KV)和输出激活来减少计算冗余,从而在几乎不损失质量的情况下提高扩散大语言模型推理效率的方法。

arXiv:2605.08134v1 公告类型:新论文 摘要:扩散大语言模型(dLLMs)已成为自回归(AR)模型的一种有前景的替代方案,提供了更强的表达能力以及并行生成和更快推理的潜力。然而,开源 dLLMs 尚不成熟,在效率和性能方面均落后于 AR 模型。 我们发现了一个尚未被充分探索的 dLLMs 特性:双向自注意力中的*逐 token 冗余性*。自注意力激活在不同 token 之间高度相关,查询(query)表示的时间变化可以预测相应键、值和输出激活中的冗余。 我们提出了 DARE,包含两种互补机制:DARE-KV,复用缓存的键值(KV)激活;以及 DARE-O,复用输出激活以减少冗余计算,同时保持生成质量。 DARE 实现了高达 1.20 倍的每层延迟降低,并复用了高达 87% 的注意力激活,在推理和代码生成基准测试中性能下降微乎其微。DARE-KV 和 DARE-O 导致的平均性能下降分别为 2.0% 和 1.2%。结合前缀缓存和 Fast-dLLM 等技术,DARE 无需重新训练即可带来叠加的性能提升。 这些结果确立了逐 token 复用作为一种有效策略,可在保持生成保真度的同时提高基于扩散的 LLMs 的效率。代码:https://github.com/enyac-group/DARE
查看原文
查看缓存全文

缓存时间: 2026/05/12 06:49

# DARE: 用于高效推理的扩散语言模型激活复用

来源: https://arxiv.org/html/2605.08134

Natalia Frumkin, Bokun Wang, Hung\-Yueh Chiang, & Diana Marculescu
德州大学奥斯汀分校 Chandra 家族电气与计算机工程系
\{nfrumkin,dianam\}@utexas\.edu

&Chi\-Chih Chang, Mohamed S\. Abdelfattah
康奈尔大学

###### 摘要

扩散大型语言模型(dLLMs)最近作为一种引人注目的自回归(AR)语言模型替代方案出现,提供了更大的表达空间以及并行生成和推理加速的巨大潜力。然而,现有的开源 dLLMs 仍处于开发的早期阶段,在效率和质量方面均落后于其 AR  counterparts。在本工作中,我们发现并利用了 dLLMs 中一个未被充分探索的特性:其双向自注意力层中存在高度的**逐 token 冗余**。我们观察到,自注意力激活在不同 token 之间具有很强的相关性,并且查询(query)表示的时间变化可用于预测相应键(key)、值(value)和输出(output)激活中的冗余。基于这一见解,我们引入了 **DARE**(dLLM Activation Reuse for Efficient inference,用于高效推理的 dLLM 激活复用)及其两种互补的复用机制:**DARE-KV**,选择性复用缓存的键值(KV)激活;以及 **DARE-O**,复用输出激活以减少冗余计算,同时保持模型质量。

在经验上,**DARE** 实现了高达 **1.20×** 的单层延迟降低,并复用了多达 87% 的块级注意力激活,同时在推理和代码生成基准测试中质量下降微乎其微。两种复用机制 **DARE-KV** 和 **DARE-O** 均保持了极具竞争力的生成质量,平均性能下降分别仅为 2.0% 和 1.2%。当与现有的加速技术(如前缀缓存和 Fast-dLLM)结合使用时,我们的方法在不需任何模型重新训练的情况下提供了叠加的性能增益。这些结果突显了逐 token 复用作为一种原则性和有效策略,用于提高基于扩散的 LLM 的计算效率,在保持生成保真度的同时实现可扩展的推理。代码见 https://github.com/enyac-group/DARE。

## 1 引言

扩散大型语言模型(dLLMs)最近作为一种令人兴奋的替代方案,取代了传统的自回归(AR)Transformer 文本生成,提供了双向上下文建模、灵活的解码以及并行推理的显著潜力(Liet al., 2022; Nieet al., 2025)。通过迭代去噪步骤预测完整序列,而不是从左到右发射 token,dLLMs 放宽了 AR 模型固有的因果约束,为高通量生成开辟了一条有前景的道路。然而,尽管具有理论优势,当前的开源 dLLMs 仍然计算成本高昂且内存密集,推理成本主要由在每个扩散时间步上重复评估大型双向自注意力层所主导。这些低效限制了其向长上下文的可扩展性,并阻碍了其实用部署,相较于经过优化的 AR  counterparts 如 Llama(Touvronet al., 2023)或 Mixtral(Jianget al., 2024)。在图 1 中,我们强调了 AR-LLMs 与 dLLMs 之间的一个关键区别。与 LLaMA 不同,扩散模型中的值缓存(value cache)在不同层之间表现出明显不同的相似性模式。对于 LLaDA-8B 在时间步 0、127 和 256,我们观察到层内相似性 consistently low,这阻碍了依赖跨层共享键值状态的技术的直接应用。这种行为促使我们更深入地研究如何在 dLLMs 中更有效地表征和利用键值缓存。

> 图 1 说明:跨层值缓存相似性。LLaDA-8B 在扩散时间步 0/127/255 表现出较低的跨层冗余(与 Llama-3.1-8B 相比)。条目 $(i,j)$ 表示层 $i$ 和层 $j$ 处值缓存之间的余弦相似性。

本工作的一个关键见解是,dLLMs 在其中间表示中表现出高度的**时间逐 token 冗余**,如图 2 左侧所示。在连续的扩散步骤中,许多 token 的查询、键或值嵌入仅发生微小变化,表明自注意力计算的很大一部分可以复用而不是重新计算。我们实证观察到,自注意力激活在不同时间步之间高度相关,且查询漂移(即 token 的查询表示在步骤之间的变化)可用于可靠地预测哪些 token 可以安全地复用其缓存激活。这一观察激发了本工作的核心问题:**我们能否利用扩散 LLMs 中的表示冗余来减少注意力计算,而不牺牲生成质量?**

为了回答这个问题,我们引入了 **DARE-KV** 和 **DARE-O**,这是 dLLMs 中逐 token 激活复用的两种互补方法。我们的框架扩展了标准的扩散推理流水线,包括 (1) **DARE-KV**,选择性复用缓存的键值(KV)激活,以及 (2) **DARE-O**,当表示变化低于学习到的阈值时复用输出激活。这两种机制共同实现了高效、无需训练的注意力复用,减少了冗余计算,同时保持了模型保真度。

这些**即插即用**的方法无需重新训练、梯度更新或模型重参数化,并且可以与现有的加速技术无缝组合,如前缀缓存(Maet al., 2025)、并行解码(Chenet al., 2025b)和 Fast-dLLM(Wuet al., 2025b)。它们共同提供了一种灵活的手段,以减少冗余的注意力计算,同时保持输出生成质量。

我们的实验表明,选择性复用实现了高达 **1.20×** 的层级延迟降低,并在各种模型和任务中平均复用了 60-75% 的注意力激活,准确率下降微乎其微。平均而言,**DARE-KV** 和 **DARE-O** 仅导致 2.0% 和 1.2% 的性能下降,同时保持了具有竞争力的生成质量。分析进一步显示,复用效果随序列长度缩放,与每层冗余强烈相关,并补充了现有的推理优化。

> 图 2 说明:左:沿 token 维度,查询、键、值和输出激活表现出高度相似的时间相似性模式。每个热力图条目 $(i,j)$ 表示时间步 $i$ 和 $j$ 处激活之间的相似性。红色标记突出显示相似性的急剧下降,指示应刷新缓存激活的时间步。值得注意的是,给定自注意力层内所有激活类型的整体相似性结构几乎相同。右:从单个查询头计算的复用索引足以指导同一层内相应键、值和输出激活的动态复用。具体而言,对于层 $l$,我们计算时间步 $t$ 处头 0 的查询张量与时间步 $t-1$ 处的相似性分数,并应用阈值来确定下游键/值(KV)或输出(O)激活中复用的 token 索引。

总之,我们的工作做出以下贡献:

- 我们识别并表征了扩散语言模型中的**逐 token 时间稳定性**,这是一种源于双向注意力下离散 token 表示的结构特性,并表明查询漂移是激活稳定性的有效代理。
- 我们提出了 **DARE-KV** 和 **DARE-O**,两种高效、无需训练的机制,利用这种稳定性通过键值和输出复用选择性**绕过冗余的注意力计算**。与存储和复用先前计算激活的缓存方法不同,我们的方法确定何时根本无需重新计算激活,仅在 token 表示发生显著变化时重新计算。
- 我们提供了 **DARE** 的理论分析,表明在 $T$ 个扩散步骤中,由选择性重新计算引入的累积误差可以作为复用阈值的函数进行界定。
- 我们展示了跨多个 dLLMs 和基准测试的一致准确率保持,并分析了计算复用如何与块大小、复用阈值和层深度相互作用。

通过识别扩散离散 token 空间特有的冗余源并利用其避免不必要的重新计算,这项工作提供了一种实用且互补的方法来改善 dLLM 推理的效率。

## 2 相关工作

##### 扩散语言模型与块级生成

扩散语言模型(dLLMs)将扩散扩展到离散 token 序列,通过迭代去噪而不是从左到右解码来生成文本。先前工作(Liet al., 2022; Yeet al., 2025; Xieet al., 2025; Nieet al., 2025)显示,在全双向上下文中表现强劲,但计算成本高:每一步都重新计算所有 token,与带有缓存的自回归模型相比产生大量冗余。

最近的努力提高了效率和可扩展性。Seed Diffusion(Songet al., 2025)通过潜在种子摊销计算,而 Gemini Diffusion(Google DeepMind, 2025)将扩散细化与并行解码和前缀缓存相结合。块级公式进一步 bridged 扩散和自回归生成:LLaDA(Nieet al., 2025)和 Block Diffusion(Arriolaet al., 2025)在块内执行自回归块生成和并行去噪,实现部分 KV 缓存和改进的吞吐量。

尽管取得了这些进展,dLLMs 仍然重新计算在许多步骤间变化很小的 token 表示。由于 token 跨时间步持续存在,dLLMs 表现出逐 token 时间冗余,这激发了我们选择性避免冗余计算的方法。

##### 加速 dLLMs 的推理

基于 Transformer 的大型语言模型(LLMs)的推理计算密集,因为在每个时间步都要重复重新计算先前的键和值。缓解这一成本的关键技术是键值(KV)缓存,模型在每个解码步骤后存储每个 Transformer 层的键和值张量,从而允许复用先前计算的激活(Popeet al., 2023)。

然而,在扩散 LLMs(dLLMs)中,缓存的有效性从根本上受到限制。因为 dLLMs 使用双向注意力并在每个时间步更新所有 token,缓存的激活无法消除重新计算整个序列注意力的需要。因此,现有方法主要专注于通过更好的缓存策略、调度策略或 token 选择来提高效率。

Fast-dLLM(Wuet al., 2025b)通过并行解码和前缀缓存重叠扩散步骤来提高吞吐量,而 Fast-dLLM 2(Wuet al., 2025a)将这些思想扩展到训练。**我们的方法是正交的**:这些方法改变了计算执行的*时间*以及跨时间步的调度方式,而我们通过选择性跳过稳定 token 的注意力来减少每个步骤内执行的计算*量*。

DPad(Chenet al., 2025a)通过使用后缀窗口化和距离衰减 dropout 修剪输入序列来减少计算。**我们的方法是正交的**:DPad 修改*输入 token 集*并有效地修剪上下文,而我们的方法保留完整序列,而是基于中间激活的稳定性避免冗余重新计算。

dKV-Cache(Maet al., 2025)根据其对未来解码步骤的估计贡献动态保留或丢弃 KV 状态,减少内存和计算开销。**我们的方法是正交的**:dKV-Cache 在*存储和复用什么*(缓存策略)的层面操作,而我们在*是否重新计算*特定 token 激活的层面操作,不改变缓存本身。

DParallel(Chenet al., 2025b)通过提高硬件利用率的并行解码策略来提高效率。**我们的方法是正交的**:DParallel 通过并行性提高*吞吐量*,而我们的方法通过跳过冗余注意力操作来减少*固有计算工作负载*。

##### 我们的方法。

我们的方法从根本上区别于基于缓存或基于调度的方法。我们不是决定缓存什么或何时执行计算,而是基于中间激活执行**细粒度、token 级的重新计算控制**。具体而言,我们观察到许多 token 表示在扩散步骤中保持稳定,并利用这一点选择性跳过这些 token 的注意力计算。这导致了**每个步骤内冗余计算的手术式减少**,使我们的方法与现有技术互补并易于组合。在表 3 中,我们显示 **DARE** 与前缀缓存和 Wu 等人(2025b)无缝集成。

## 3 DARE:我们的 dLLM 注意力复用方法

### 3.1 层级动态阈值

##### Token 漂移分数。

为了在扩散过程中实现细粒度激活复用,我们开发了一种动态阈值机制,以适应局部表示漂移,以及一种层级复用预算分配策略,优先处理具有较高复用潜力的层。我们首先基于给定中间激活 $\mathbf{x}$(如查询、键、值或输出)的余弦相似度定义一个漂移分数 $s(\mathbf{x}^t, \mathbf{x}^{t-1})$,以量化其在两个相邻时间步 $(t-1, t)$ 之间的表示变化:

$$
s(\mathbf{x}^t, \mathbf{x}^{t-1}) := 1 - \frac{\langle \mathbf{x}^t, \mathbf{x}^{t-1} \rangle}{\|\mathbf{x}^t\|_2 \|\mathbf{x}^{t-1}\|_2}
$$

由于我们的实验观察(见图 2,左)表明每个层内的查询、键、值和输出激活表现出相似的时间一致性,我们仅为层 $\ell$ 中每个 token $i$ 的查询计算漂移分数 $s(\mathbf{q}_{i,\ell}^t, \mathbf{q}_{i,\ell}^{t-1})$,并用它来指导所有其他激活的阈值设定。

##### 复用率分配

给定每 token、每层的漂移分数,我们可以使用选定的分位数 $\phi$ 对具有高时间冗余的激活进行阈值处理。然而,不同层可能表现出不同程度的时间冗余和重要

相似文章

基于时空并行解码与置信度外推的高效扩散LLMs

arXiv cs.CL

本文介绍了时空并行解码(TSPD)和置信度外推(CE),通过动态判断令牌何时收敛并预测logit趋势,来加速基于扩散的大语言模型的推理,减少不必要的去噪步骤,同时保持输出质量。

学习的中继表示用于前瞻性离散扩散模型

arXiv cs.LG

本文介绍了学习的中继表示(Relay),一种使掩码扩散模型能够在去噪步骤之间传播潜在信息的方法,克服了硬重置问题并改善了性能-延迟权衡。该方法在编码任务上优于标准的监督微调,同时将推理延迟降低高达32%。