通过激活聚合的提示压缩
摘要
本文提出通过中间层激活的学习加权和将指令提示压缩为单个激活向量,准确率下降低于2%,并揭示了对LLM激活空间结构的洞察。
arXiv:2607.08399v1 公告类型: 新
摘要: 大型语言模型通过将激活值传播数十层后生成响应来处理提示。我们提出一个问题:指令提示中包含的任务相关信息能否被压缩为一个单一的激活向量,并重新注入模型,从而替代原始的标记序列?我们证明,通过使用从目标LLM中间层提取并在早期层注入的学习加权和激活值,可以实现这一目标。压缩后的向量保留了任务相关信息,相对于完整提示处理,准确率下降不到2%。除了其实际意义(例如,在不重新处理原始标记序列的情况下,减少固定指令提示的每次查询计算量)之外,我们的分析揭示了LLM激活空间的结构:(i)中间层的表示可以有意义地传递到早期层,表明信息编码方式存在一定程度的跨层兼容性;(ii)单个激活向量编码了可量化和可恢复的语义信息量;(iii)激活值的加权和是一种稳健的表示压缩方法。
查看缓存全文
缓存时间: 2026/07/10 06:14
# 通过激活聚合进行提示压缩 来源:https://arxiv.org/html/2607.08399 Thibaud Ardoin, Semira Einsele, Evis Bregu, Gerhard Wunder 柏林自由大学 [email protected] ###### 摘要 大型语言模型在处理提示时,需要将激活值通过数十个层传播后才能生成响应。我们提出一个问题:是否可以将指令提示中包含的任务相关信息压缩成一个单一的激活向量,并重新注入模型,从而取代原始的 token 序列?我们证明,使用一个在目标 LLM 中间层提取、早期层注入的激活值的加权和(通过一个轻量级 MLP 学习权重)可以实现这一目标。该压缩向量保留了任务相关信息,与完整提示处理相比,准确率下降不到 2%。除了其实际意义(例如,对于固定的指令提示,无需重新处理原始 token 序列即可减少每次查询的计算量),我们的分析还揭示了 LLM 激活空间中的结构:(i) 中间层的表示可以有意义地传递到早期层,表明信息编码方式存在一定程度的跨层兼容性;(ii) 一个单一的激活向量编码了可量化和可恢复的语义信息量;(iii) 激活值的加权和是一种鲁棒的表示压缩方法。 # 通过激活聚合进行提示压缩 Thibaud Ardoin, Semira Einsele, Evis Bregu, Gerhard Wunder 柏林自由大学 [email protected] ## 1 引言 现代 LLM 经常被重复的提示前缀所查询,例如指令、系统提示或少样本示例。在朴素的推理过程中,这些 token 在每次调用时都会被重新计算,即使前缀保持不变而只有用户查询发生变化。这在计算上是浪费的:相同的前缀被反复 tokenize、嵌入并通过 transformer 层传播。一个自然的问题是,是否可以将此类前缀中包含的任务相关信息预先计算、压缩并直接在激活空间中复用。 当前系统已经通过 KV 缓存等机制利用重复提示(Pope et al., 2023;Kwon et al., 2023),这些机制存储与固定前缀相关的中间状态。这些方法提供精确或近乎精确的复用:保留前缀计算,从而无需重新计算。相比之下,我们提出了一个更严格的问题:能否将一个提示的效果压缩成一个单一的、依赖于提示的激活向量,然后以保持其行为的方式重新注入模型?  图 1:所提出的三步框架概述:从输入提示提取隐藏状态,将其压缩成一个 patch 向量,并将 patch 向量注入到一个占位符 token 中,以回答关于原始提示的查询,而无需直接访问原始提示。 除了工程动机之外,这个问题还探讨了一个更基础的问题:**任务相关信息在 LLM 的激活空间中是如何表示的?** 先前关于激活工程的研究表明,通过潜在空间中的简单加法,引导向量可以影响复杂的模型行为(Subramani et al., 2022)。更一般地,线性假设表明一些高层概念表示允许简单的算术运算(Mikolov et al., 2013;Liu et al., 2023)。在信息压缩方面,任务向量(Hendel et al., 2023)压缩了上下文学习示例,但它们不能自然地扩展到一般信息提示。最近的方法表明,长上下文或任意提示可以压缩成少量 token 或表示(Mu et al., 2023;Ge et al., 2023)。然而,这些强结果通常依赖于微调整个 LLM 或广泛的训练过程,然后才出现压缩行为。这就留下了一个问题:对于一个现成的 LLM,是否可以使用一个需要最少训练的轻量级方法来压缩上下文相关的提示。 为了解决这个差距,我们提出了一种简单的基于加权和的激活空间压缩方法。这种设计受到可解释性机制的启发:如果任务相关信息在内部激活中被表示,那么可能可以直接在潜在空间中以最小开销压缩提示。如图 1 所示,该方法接收一个编码了相关信息或任务描述的提示 `p = [t_1, ..., t_T]`。我们在中间层 `m` 提取隐藏状态序列 `H^{(m)}(p) ∈ R^{T×d}`,并将其压缩成一个依赖于提示的 patch 向量 `v ∈ R^d`。在第二次前向传播中,模型接收一个缩短的输入,该输入由一个**占位符 token**(其激活被 `v` 覆盖)后跟一个关于原始提示 `p` 的查询组成。然后模型必须在没有直接访问 `p` 的情况下生成响应。我们发现最佳的压缩函数是 `H^{(m)}(p)` 中隐藏状态的加权和,其权重由一个小型学习到的多层感知器(MLP)预测。这种本质上有损的压缩,在任务指令提示上仅将测试准确率降低了 2%。令人惊讶的是,在我们主要的实验中,简单的加权和压缩器始终优于更重的端到端训练的 Transformer 压缩器。 在本文中,我们做出了以下贡献: 1. 我们提出了一个两遍框架用于激活空间提示压缩,其中提示被压缩成单个 patch 向量,随后通过一个占位符 token 重新注入模型。 2. 我们展示了一个轻量级 MLP 可以学习一个加权函数,该函数构建出能够泛化到未见过的提示和任务的 patch 向量。 3. 通过逐层分析,我们发现了激活工程中的一个新模式:当信息从中间层提取并注入到早期层时,获得最佳性能。 4. 我们提供了对所得 patch 向量的详细分析,以及对关键设计选择的消融研究。 5. 我们在我们的匿名仓库中发布了一个玩具任务数据集以及复现我们结果所需的代码。 ## 2 方法 给定一个提示 `p = [t_1, ..., t_T]` 和一个具有 `L` 个注意力层的 LLM,可以在中间提取层 `m ∈ {1, ..., L}` 提取隐藏状态序列 `H^{(m)}(p) = (h_1^{(m)}, ..., h_T^{(m)}) ∈ R^{T×d}`。这里 `h_i^{(m)} ∈ R^d` 表示在层 `m`、位置 `i` 处,token `t_i` 下游的隐藏状态向量。一个**压缩函数** `f: R^{T×d} → R^d` 将隐藏状态序列映射到单个 patch 向量: `v = f(H^{(m)}(p)) ∈ R^d`。 如图 1 所示,该向量随后在早期注入层 `e` 被注入。注入通过创建一个占位符输入 `p_ph = [<PAD>]` 并将该 token 在层 `e` 的激活覆盖为 `v` 来实现。然后模型继续处理一个查询 `q`,该查询跟在占位符 token 之后。模型在层 `e` 的激活现在将包含压缩后的任务相关信息。解码过程正常进行,所有层权重保持不变。 我们研究了三种压缩函数 `f`: * **均值池化**:token 的简单平均:`v_avg = (1/T) Σ_i h_i^{(m)}`。 * **学习到的加权求和(W-MLP)**:`v_w = Σ_i α_i h_i^{(m)}`,其中 `α = softmax(MLP_θ(X))`,`X` 是 token 隐藏状态的矩阵。MLP 有两层,隐藏单元数为 64,针对所有 token 位置独立但共享权重(逐 token 处理)。 * **Transformer 压缩器(TF)**:一个大小为 4 的轻量级 Transformer 编码器,具有自注意力层,后跟一个平均池化层,用于聚合编码后的表示。我们也尝试了更大的架构,但发现性能更差(附录 B)。 压缩器(W-MLP 或 TF)在监督学习设置中进行训练:给定一个提示 `p`,我们使用压缩器提取 `v`,将其注入到模型中以回答 `q`,并最小化正确答案的负对数似然。提示、查询和答案在训练期间是可见的。评估时,我们仅在未见过的查询和/或提示上测试压缩性能。 ## 3 实验 ### 3.1 实验设置 我们评估了我们的方法在两类任务上的性能: * **玩具任务**:我们设计了一组 12 个简单的指令,如“给出两个数字的和”或“将这个单词翻译成法语”。每个任务都有一组固定的指令提示,但数字或单词等参数会变化。这使得我们可以精确控制任务内容,同时保持提示结构固定。 * **MQA 数据集**:多任务问题回答数据集,包含 27 个 Python 函数,每个函数编码一个不同的任务(例如,提取公司行业、查找州的首府)。对于每个任务,存在 5 个不同的 NLP 查询,查询一个知识库。提示和查询均来自该数据集提供的函数调用。我们使用了 20 个任务进行训练,7 个任务进行测试。 我们使用的主要模型是 Llama-3-8B-Instruct 和 Llama-3.2-1B-Instruct。对于 W-MLP 压缩器,我们使用 Adam 优化器以 5e-4 的学习率训练 500 步。对于 Transformer 压缩器,我们训练 2000 步。所有训练均在单个 RTX 3090 GPU 上进行。我们还尝试将 patch 向量注入到完整的系统提示中,以允许可变长度的提示压缩(附录 E)。 ### 3.2 主要结果 我们在两个数据集上比较了三种压缩方法,以及两个基线: * **完整提示**:标准的模型前向传播,没有任何压缩。 * **仅查询**:模型在没有压缩提示的情况下回答查询。 结果总结在表 1 和表 2 中。W-MLP 压缩器在两个数据集上的表现始终优于 TF 压缩器,同时训练参数更少(~4000 个可训练参数 vs. TF 的 ~200000 个参数)。W-MLP 的平均准确率下降仅约 2%,远优于仅查询基线。 表 1:玩具任务上的准确率(%)。报告了均值和标准差。 | 方法 | Llama-3-8B-Instruct | Llama-3.2-1B-Instruct | | :--- | :--- | :--- | | 完整提示 | 96.2 ± 1.1 | 88.4 ± 2.3 | | W-MLP(提出方法) | 94.1 ± 1.4 | 85.9 ± 2.1 | | TF 压缩器 | 84.3 ± 3.2 | 75.1 ± 4.0 | | 仅查询 | 52.7 ± 5.6 | 43.2 ± 6.1 | 表 2:MQA 数据集上的准确率(%)。报告了均值和标准差。 | 方法 | Llama-3-8B-Instruct | Llama-3.2-1B-Instruct | | :--- | :--- | :--- | | 完整提示 | 89.1 ± 1.8 | 77.3 ± 3.1 | | W-MLP(提出方法) | 86.9 ± 2.0 | 74.8 ± 3.5 | | TF 压缩器 | 72.1 ± 4.1 | 61.4 ± 5.3 | | 仅查询 | 31.4 ± 8.2 | 19.7 ± 7.6 | 我们还观察到,TF 压缩器虽然参数更多,但性能更差。这可能是因为 Transformer 压缩器需要学习一个更复杂的表示空间,而这对于小数据集来说可能过拟合了。另一方面,W-MLP 的线性结构,通过权重学习,已经被证明能更好地泛化。 ### 3.3 层分析 我们研究了提取层 `m` 和注入层 `e` 的选择如何影响性能。图 6 显示了玩具数据集上 Llama-3-8B 的 W-MLP 准确率。 一个显著的模式是,当信息从中间层(~16 层)提取并注入到早期层(~4 层)时,性能最佳。极端地,在各层中进行提取和注入(例如,从第 1 层提取并注入到第 32 层,或反之)会导致性能显著下降。这证实了我们的假设:信息在中间层以更易于压缩的形式表示,并且当注入到早期层并让模型进一步处理时,可以更有效地利用。 我们还研究了占位符位置的选择。在 Llama-3-8B 上,将占位符紧接在查询之前放置(即,`p_ph` 后紧跟查询)效果最好。将占位符放在系统提示开始处或助手回答之后会持续降低性能。这表明,当干预应用于靠近占位符位置时最有效。这些结果也表明存在改进空间,并激励同时注入多个 patch 向量的扩展,尽管这需要更仔细的位置设计。 图 6:W-MLP 在玩具任务上的准确率热图,作为占位符 token 和 patching 位置的函数。y 轴指示 patch 向量注入的 token 位置,相对于占位符位置。占位符 token 不存在时由 `∅` 表示。 ## 4 Patch 向量代表什么? 上一节的结果表明,学习到的 patch 向量可以恢复原始提示的大部分性能。在这里,我们分析这个向量捕获了哪种信息。具体来说,我们询问 patch 向量是否保持接近原始提示激活,以及学习到的权重机制是否关注语义上有意义的提示 token。 为了直观地理解压缩机制,我们定性地检查了表 3 中加权和分配给每个 token 的学习权重。出现了一个一致的模式:携带密集语义内容的 token,如关键词或命名实体,系统地获得更高的权重,而低信息 token(如限定词)则相对被抑制。 为了超越纯粹的定性观察,我们使用 100 个 LLM 生成的提示重述进行了一个受控实验,原始提示为“What is the industry this company operates in?”。每个重述在表面形式上有所变化,但保留了任务语义,这允许我们跟踪哪个 token 在不同措辞中始终获得最高学习权重。在 85% 的情况下,最高权重被分配给“industry”、“field”或“sector”,直接反映了检索任务的目标。这为表 3 中观察到的定性模式提供了定量支持:压缩机制识别并优先考虑提示中语义负载最高的 token。然而,我们注意到语义显著性并未在此处正式定义,因此此分析应被解释为定性诊断,而非 token 重要性的正式度量。 在剩余的 10% 的情况下,最高权重被分配给句末标点符号 token。值得注意的是,即使当它没有排第一时,问号在所有重述中的 75% 情况下都作为第二高权重的 token 出现。这并没有与语义显著性的发现相矛盾,而是与自回归模型中众所周知的现象——注意力汇聚(attention sink)相一致,其中标点符号和句子边界 token 作为上下文信息的聚合器积累了不成比例的注意力权重(Xiao et al., 2024;Chauhan et al., 2026)。因此,W-MLP 似乎利用了与注意力头相同的表示结构,进一步将压缩机制扎根于 transformer 激活空间的已知属性中。 对关键语义词和标点符号的关注也与附录 A 中研究的手工权重一致。这些观察进一步得到两个独立指标的证实:压缩 patch 与单个 token 激活之间的 KL 散度以及它们的余弦相似度。两个指标都分配给由学习权重识别的相同语义显著 token 最高接近度。表 3 证实了这种可解释性不仅限于权重本身,还延伸到最终的聚合 patch 向量,该向量在几何上保持靠近任务关键 token 的激活。附录 D 中提供了额外的示例。 (a) W-MLP 的权重分配 What is the capital of this country? (b) 与最终 patch 向量的余弦相似度 Please give me the sum of the two numbers 3 and 5. (c) 与最终 patch 向量的 KL 散度 Given a German word respond its Chinese translation. 表 3:(a) 学习到的 W-MLP 分配给每个 token 激活的权重视觉化;(b) token 激活与压缩 patch 向量 `v` 之间的余弦相似度;(c) token 激活与压缩 patch 向量 `v` 之间的 KL 散度。正值以橙色显示,负值以蓝色显示。 ## 5 讨论与未来工作 #### 信息容量与可访问性。 我们的实验表明,较小的内部表示会导致较不准确的压缩,而与 LLM 的整体性能无关。这可能表明压缩质量受到隐藏表示维度的限制。这也与稀疏表示可以更容易组合、破坏性干扰更少的观点一致,正如 Elhage et al. (2022) 的叠加视角所建议的那样。附录 C 中的初步信息容量实验显示,即使在较小的 Llama3.2-1B 模型中,一个 patch 向量也可以同时编码 9 个任务族而清晰准确率下降。我们注意到,这个实验不仅衡量了向量编码任务信息的能力,还衡量了模型在推理时恢复和利用它的能力。尽管如此,这种表示的上限容量和可访问性问题仍然是开放的。 #### 通过设计实现可解释性。 与事后解释方法不同,学习到的加权机制是通过构建可解释的:W-MLP 分配的权重直接暴露了压缩识别出的信息相关 token,无需任何额外的分析步骤。在特征归因研究的背景下,这一属性值得注意,其中诸如积分梯度(Sundararajan et al., 2017)或黑盒归因方法(Cai et al., 2025)旨在量化每个输入 token 对模型输出的贡献。patching 权重提供了一个结构上相似的信号,但它是从压缩目标中自然出现的,而不是事后推断出来的。这两类分数是否在经验上收敛是一个开放问题,我们留待未来工作。 #### 实际意义。 我们的结果指出了激活空间压缩的几个可能应用。在消费级 API LLM 中,系统提示通常跨多个请求重复使用,即使在激活缓存之后,它们也会对上下文处理成本产生显著贡献。将此类提示压缩成固定大小的激活向量可以允许其效果重复使用,而无需每次都重新编码完整提示。这对于短查询可能特别有吸引力,因为系统提示可能主导 token 预算。在检索增强生成(RAG)中,大量检索到的文本块可以类似地被压缩一次,并以紧凑形式重复使用,而不是反复完整地传递给 LLM。这自然取决于该方法扩展到较长上下文的能力,我们将其确定为一个关键的未来工作。更具推测性的是,相同的压缩表示也可以用作语义向量进行相似性搜索,为检索和生成提供共享表示。在机器人领域,视觉-语言-动作(VLA)模型(Zitkovich et al., 2023)将视觉运动策略建立在丰富的指令上下文中,这些上下文可能需要在每个时间步骤进行处理。
相似文章
AGORA: 基于适配器的观测-动作保留——用于LLM代理的无推理提示压缩
AGORA 引入了一种用于LLM代理的无推理步骤级提示压缩器,避免了令牌级压缩器的'动作语法破坏'失效模式。它通过结构解析器、始终保留底限以及学习的相关性评分器,在9个环境中的8个(跨骨干网络)保留了≥75%的未压缩性能。
面向通信高效流水线并行的学习子空间压缩
本文介绍 MAPL,一种针对流水线并行中激活值进行学习型正交压缩的方法,通过 Stiefel 流形约束和逐阶段分解锚定嵌入,在保持性能的同时降低通信开销。
InfoQuant:为低比特大语言模型量化塑造激活分布
InfoQuant 提出了一种无需训练的方法——峰值抑制正交变换(PSOT),用于重塑低比特大语言模型量化中的激活分布,在 W4A4KV4 设置下保留了 97% 的浮点精度,并优于之前的 PTQ 方法。
从权重到特征:SAE引导的激活正则化用于LLM持续学习
本文提出了一种用于大语言模型的持续学习方法,该方法使用预训练的稀疏自编码器(SAEs)在激活空间而非权重空间中进行正则化,从而在无需存储先前数据的同时避免灾难性遗忘,并实现了更好的内存效率和更强的基准性能。
@Alacritic_Super: LLM推理的最大瓶颈不是算术运算,而是数据移动。一次乘加运算仅需…
一条科普线程,解释LLM推理的主要瓶颈是数据移动而非计算,并强调了量化、KV缓存优化和FlashAttention等减少内存流量技术的要点。