← 返回 2026-01-16

面向大语言模型持续适应的记忆库压缩方法 Memory Bank Compression for Continual Adaptation of Large Language Models

Thomas Katraouras, Dimitrios Rafailidis 📅 2026-01-02 👍 2 2026-07-13 08:35
参数高效微调 向量量化 在线适应 持续学习 记忆增强

通过码本压缩和在线重置机制,将LLM持续学习的记忆库存储缩减至基线的0.3%

前置知识

持续学习(Continual Learning)

持续学习是指模型在不断接收新数据流的同时,能够保留已有知识而不发生灾难性遗忘的机器学习范式。在大语言模型场景下,持续学习的目标是在模型参数或外部模块中融入新出现的知识(如新闻事件、领域术语),同时保持对之前学过的问题的回答能力。与传统的「训练-部署-重新训练」范式不同,持续学习强调模型的动态更新能力,尤其是在流式数据(streaming data)场景下,文档以不可预知的顺序逐步到达。

本文的核心目标是让LLM在流式场景下持续适应新知识,这是持续学习的典型应用场景,理解这个范式才能理解论文的问题定义和评估方式。

记忆增强(Memory-Augmented)方法

记忆增强方法为LLM配备一个外部记忆模块(memory bank),用于存储从文档中提取的结构化信息(如编码向量、调制参数等)。与RAG在推理时检索原始文本不同,记忆增强方法将信息预编码为紧凑的向量表示并存储起来。推理时,模型通过注意力机制将整个记忆库与当前查询融合,生成个性化的调制信号注入到LLM的每一层中。这种方法避免了梯度更新,也避免了RAG中检索错误传播的问题。

记忆增强方法是本文的直接前作(MAC),MBC正是在其基础上解决记忆库膨胀问题,理解它才能明白压缩的必要性。

向量量化(Vector Quantization, VQ)

向量量化是一种将连续向量空间离散化的技术。其核心思想是维护一个有限的码本(codebook)$E \in \mathbb{R}^{N_c \times D}$,其中 $N_c$ 是码本条目数量,$D$ 是向量维度。对于任意连续向量 $\phi_i$,通过最近邻搜索找到码本中最接近的条目 $E_{c_i}$,并用其整数索引 $c_i$ 代替原始向量。这种方法最早在VQ-VAE中被引入,用于生成模型中的离散潜在表示。关键挑战是argmin操作不可微分,需要使用直通估计器(straight-through estimator)来传播梯度。

VQ是MBC压缩记忆库的核心技术手段,理解它的量化过程、STE梯度传播方式和码本训练机制,是理解整个方法的关键。

KV-LoRA(Key-Value Low-Rank Adaptation)

KV-LoRA是LoRA的一种变体,专门针对Transformer注意力层中的Key和Value投影矩阵进行低秩适配。标准LoRA在任意线性层添加低秩分解 $\Delta W = AB$,其中 $A \in \mathbb{R}^{D \times r}$,$B \in \mathbb{R}^{r \times D}$,$r \ll D$。KV-LoRA只在注意力的K和V投影上添加这种分解,通过缩放因子 $\alpha/r$ 和dropout进行正则化。这样可以在冻结基础模型参数的同时,让注意力机制更灵活地利用记忆库传入的调制信号。

这是MBC相比前作MAC的关键改进之一。MAC完全冻结基础模型,而MBC通过KV-LoRA让模型能更好地适应压缩后的记忆表示。

灾难性遗忘(Catastrophic Forgetting)

灾难性遗忘是神经网络在学习新任务或新数据时,由于参数更新导致对先前学习内容的性能严重退化的现象。在LLM持续学习场景中,当模型在新文档上微调时,可能会覆盖掉之前学到的知识,导致对早期文档相关问题的回答能力下降。评估方法通常是先在文档集A上适应模型,再在文档集B上继续适应,然后回头测试文档集A的F1分数,观察其衰减程度(即保留率)。

灾难性遗忘是持续学习的核心挑战,论文通过F1保留率指标来评估MBC在这方面的能力,这也是读者判断方法是否可靠的关键指标。

研究动机

大语言模型在部署后面临知识过时的问题,而现有持续学习方案各有瓶颈。全参数微调(full fine-tuning)在大模型上计算代价高昂,且容易导致灾难性遗忘——例如在新文档上微调后,对旧文档的回答能力可能下降超过50%。参数高效微调(PEFT)如LoRA虽然降低了计算开销,但在流式场景中仍需要梯度更新,延迟和计算成本不实用。RAG方法依赖检索质量,检索错误会直接传播到生成端,且拼接长文档可能超出上下文窗口。记忆增强方法(如MAC)通过存储文档的编码调制向量来避免这些问题,但面临一个关键瓶颈:当文档流达到数十万甚至百万量级时,记忆库持续膨胀。以LLaMA-2-7B为例,在SQuAD数据集上存储1600个文档的记忆库占用超过3.2GB,随着文档数量线性增长。这不仅带来巨大的存储开销,也使得推理时聚合整个记忆库的计算成本不断攀升,严重限制了记忆增强方法在真实流式场景中的可扩展性。

本文的目标是本文的核心目标是在保持记忆增强方法优势(冻结基础模型、无需梯度更新、避免检索错误传播)的同时,解决记忆库的可扩展性问题。具体而言,作者希望设计一种压缩机制,将记忆库的存储占用降低一到两个数量级(即压缩到原来的1%以下),同时不显著损害模型在QA任务上的准确率(EM和F1指标)。此外,压缩后的记忆库在持续适应过程中需要保持对已学知识的高保留率(retention rate),即不因压缩而加剧灾难性遗忘。最终目标是让记忆增强的LLM持续学习框架能够处理实际规模的数据流。

与已有工作不同的是,本文的独特切入点在于:已有的记忆增强方法(如MAC)都存储连续的高维向量表示,但这些表示中存在大量冗余——不同文档的编码向量在潜在空间中可能非常接近,使得存储差异较小的完整向量是浪费的。MBC看到了这一点,引入码本优化策略将连续向量离散化为有限码本中的索引。这是一个「信息压缩」的视角,借鉴了VQ-VAE在生成模型中的成功经验,但首次将其应用到LLM持续学习的记忆库压缩场景。同时,作者发现直接压缩会导致码本坍塌(只使用少量码字),因此引入了在线重置机制来保持码本多样性。此外,作者认识到压缩后的记忆表示质量可能略有下降,因此额外引入KV-LoRA来增强注意力层对压缩调制信号的利用能力,这是对MAC完全冻结基础模型策略的重要改进。

核心方法

MBC的方法可以用一个类比来理解:假设你是一个图书管理员,需要记住成千上万本书的内容以便回答读者问题。传统方法是为每本书写一份详细的读书笔记(高维连续向量),笔记越积越多导致柜子放不下。MBC的做法是首先准备一个标准化的标签系统(码本),只存储每本书对应的标签编号而非完整笔记。但标签系统可能会退化——比如总是只用到几十个标签,其他的被废弃了。所以MBC还设计了一套「标签维护」机制,定期清理使用率过低的标签,将它们重新分配。最后,为了更好地利用这些压缩后的标签信息,MBC在语言模型的注意力层中添加了轻量级适配模块(KV-LoRA),让模型能更灵活地理解压缩信息。整体技术路线是:(1)用T5编码器将文档映射为连续向量;(2)通过VQ码本将连续向量压缩为离散索引;(3)在线重置机制维护码本健康;(4)KV-LoRA增强注意力层对压缩记忆的利用能力;(5)端到端训练所有组件。

MBC的核心创新是将VQ-VAE的码本量化思想引入记忆增强的LLM持续学习框架,实现了记忆库的极端压缩。与MAC直接存储每个文档的连续上下文向量 $\phi_i \in \mathbb{R}^{T \times D}$ 不同,MBC引入一个大小为 $N_c = 512$ 的码本 $E \in \mathbb{R}^{N_c \times D}$,将每个向量映射到最近的码字,只存储对应的整数索引 $c_i$。这意味着记忆库从存储浮点数向量变为存储整数索引,存储量从 $O(M \cdot T \cdot D)$ 降低到 $O(M)$,其中 $M$ 是文档数。但这一压缩面临两个挑战:第一是码本坍塌问题——训练过程中大量码字可能从未被使用,导致有效压缩率和表示多样性下降;第二是压缩后的调制信号质量可能下降,需要模型更强的适应能力。MBC通过两个配套机制分别解决:EMA在线重置机制通过追踪码字使用频率,将使用率低于阈值 $\epsilon = 10^{-4}$ 的「死码」替换为当前批次中随机采样的编码输出,维持码本多样性;KV-LoRA在注意力层的K和V投影上添加低秩适配,使基础模型能更有效地利用压缩后的调制信号。这三者协同构成了一个完整的「压缩-维护-利用」方案。

方法步骤详情

MBC的完整流程分为训练阶段和在线适应阶段。训练阶段(Algorithm 1)包含以下步骤:首先,初始化码本 $E$ 中的 $N_c = 512$ 个向量为均匀分布,所有码字的使用计数 $u_j$ 初始化为0。然后进入50个epoch的训练循环:(1) 从训练语料 $D_{train}$ 中采样一个mini-batch的 $K$ 个文档 $\{d_1, ..., d_K\}$;(2) 对每个文档采样对应的QA对 $(q_i, y_i)$;(3) 将每个文档 $d_i$ 输入amortization网络(T5编码器-解码器),得到连续上下文向量 $\phi_i = g_{\theta_{amort}}(d_i) \in \mathbb{R}^{T \times D}$;(4) 对每个 $\phi_i$ 执行VQ量化,找到最近的码本条目 $c_i = \arg\min_j \|\phi_i - E_j\|_2^2$,得到硬量化向量 $\hat{\phi}_i^{hard} = E_{c_i}$;(5) 使用直通估计器(STE)定义可微分的前向传播 $\hat{\phi}_i = \phi_i + sg[\hat{\phi}_i^{hard} - \phi_i]$;(6) 更新码字使用的EMA $u_j \leftarrow \gamma u_j + (1-\gamma) n_j$,其中 $\gamma = 0.99$,$n_j$ 是当前批次中使用码字 $j$ 的样本数;(7) 识别死码 $I_{dead} = \{j | u_j < \epsilon\}$,并用当前批次随机采样的编码输出重新初始化死码对应的码本向量,同时将重置后的使用计数设为全局均值 $\bar{u}$;(8) 用aggregation网络(4层cross-attention)将查询表示和量化后的记忆向量融合,生成调制信号 $\hat{\phi}_i^*$;(9) 将调制信号注入KV-LoRA增强的base LLM,计算QA损失 $\mathcal{L}_{QA}$ 和VQ损失 $\mathcal{L}_{VQ}$,总损失为 $\mathcal{L}_{total} = \mathcal{L}_{QA} + \lambda_{VQ} \mathcal{L}_{VQ}$;(10) 通过Adam优化器更新除base LLM参数 $\theta_b$ 以外的所有参数。在线适应阶段(Algorithm 2)无需梯度更新:对测试流中每个新文档 $d_k$,用训练好的amortization网络编码并量化,将离散索引 $c_k$ 存入压缩记忆库 $M_{VQ}$;推理时对每个查询 $q_i$,从码本 $E$ 中检索对应的量化向量,通过aggregation网络和KV-LoRA增强的base LLM生成答案。

技术新颖性

MBC的技术新颖性体现在三个层面。第一,首次将VQ码本压缩引入LLM持续学习的记忆库场景。此前的记忆增强方法(如MAC、CAMELoT、MEMORYLLM等)均存储连续向量,MBC证明了离散化索引+小规模码本足以保留关键信息,且能将存储压缩至原来的0.3%。这是一个重要的工程和理论发现——意味着记忆库中的信息存在大量冗余,可以通过有限码本有效建模。第二,EMA在线重置机制解决了VQ在流式学习场景中的特有挑战。传统VQ-VAE在固定数据集上训练,码本坍塌可以通过重启或重初始化解决;但在在线适应场景中,数据分布持续变化,MBC的重置机制通过追踪平滑使用频率并及时替换死码,实现了对非平稳分布的鲁棒适应。第三,KV-LoRA的引入解决了「压缩-利用」的权衡问题。压缩不可避免地损失部分信息,而MAC完全冻结base LLM的做法限制了模型对压缩信号的利用能力。MBC仅在注意力层的K和V投影上添加少量可训练参数(增加不到0.5%),就显著提升了QA准确率,说明base LLM本身需要一定的适应能力来匹配压缩后的记忆质量。这种「压缩外部记忆+轻量内部适配」的双轨策略是一个有启发性的设计模式。

Perplexity over train epochs on StreamingQA with and without codebook resetting in MBC, across all base LLMs
Figure 2: Perplexity over train epochs on StreamingQA with and without codebook resetting in MBC, across all base LLMs

实验结果

MBC在三个QA基准数据集(StreamingQA、SQuAD、ArchivalQA)和四种backbone LLM(DistilGPT2 82M、GPT2-Large 774M、GPT2-XL 1.5B、LLaMA-2-7B 7B)上进行了全面评估。在QA准确率方面,MBC相比最强基线MAC平均提升11.84% EM和12.99% F1。具体而言,在LLaMA-2-7B上效果最为显著:StreamingQA的EM从14.01提升至16.04(+14.5%),F1从20.44提升至25.33(+23.9%);SQuAD的EM从13.33提升至14.93(+12%),F1从18.17提升至22.15(+21.9%);ArchivalQA的EM从19.58提升至22.71(+16%),F1从23.89提升至28.66(+19.9%)。这些数字表明MBC不仅压缩了记忆,还因为KV-LoRA增强了模型的利用能力而获得了更高的准确率。在记忆库大小方面,MBC实现了极端压缩:以LLaMA-2-7B在SQuAD上存储1600个文档为例,MAC的记忆库占用3250.88MB,而MBC仅需9.59MB,压缩率达99.7%。在知识保留方面,MBC的F1保留率与MAC相当甚至更优。例如在GPT2-Large上存储1400个文档后,MBC在StreamingQA上保留率97%(MAC 96.5%),SQuAD上97.6%(MAC 96.5%)。码本重置机制的有效性实验表明,没有重置时码本迅速坍塌——LLaMA-2-7B的perplexity从100+暴跌至24,DistilGPT2从60+降至12;而有重置机制时perplexity保持稳定(LLaMA-2-7B维持在100+,DistilGPT2维持在57-65)。可训练参数方面,MBC相比MAC仅增加0.19%-0.45%的参数,增加的开销几乎可以忽略不计。

Exact Match (EM) and F1 scores on StreamingQA, SQuAD, and ArchivalQA across different backbone models and baselines
Table 1: Exact Match (EM) and F1 scores on StreamingQA, SQuAD, and ArchivalQA across different backbone models and baselines
Trainable parameters of MAC and MBC (offline)
Table 2: Trainable parameters of MAC and MBC (offline)
Memory bank size (MB) / F1 retention rate (%) on StreamingQA, SQuAD, and ArchivalQA for different base LLMs
Table 3: Memory bank size (MB) / F1 retention rate (%) on StreamingQA, SQuAD, and ArchivalQA for different base LLMs
Memory bank footprint (logMB) of MAC and MBC across StreamingQA, SQuAD, and ArchivalQA
Figure 1: Memory bank footprint (logMB) of MAC and MBC across StreamingQA, SQuAD, and ArchivalQA
查看结构化数据
任务指标本文基线提升
StreamingQA QA准确率(DistilGPT2) EM / F1 3.96 / 8.76 MAC: 3.48 / 8.11 +13.8% EM / +8% F1
StreamingQA QA准确率(LLaMA-2-7B) EM / F1 16.04 / 25.33 MAC: 14.01 / 20.44 +14.5% EM / +23.9% F1
SQuAD QA准确率(LLaMA-2-7B) EM / F1 14.93 / 22.15 MAC: 13.33 / 18.17 +12% EM / +21.9% F1
ArchivalQA QA准确率(LLaMA-2-7B) EM / F1 22.71 / 28.66 MAC: 19.58 / 23.89 +16% EM / +19.9% F1
记忆库大小(LLaMA-2-7B, SQuAD, 1600文档) Memory (MB) 9.59 MB MAC: 3250.88 MB 压缩99.7%
记忆库大小(GPT2-Large, StreamingQA, 1600文档) Memory (MB) 2.84 MB MAC: 218.91 MB 压缩98.7%

局限与改进

论文存在若干局限性。首先,评估仅限于三个QA数据集(StreamingQA、SQuAD、ArchivalQA),且这些数据集的文档均为英文新闻或维基百科文章,缺乏对多语言、多领域(如代码、医学、法律)场景的验证。其次,论文没有报告端到端延迟和吞吐量的对比——虽然记忆库缩小了,但VQ量化增加了额外的计算开销(最近邻搜索),而aggregation网络的cross-attention计算复杂度并未因压缩而降低。第三,码本大小 $N_c = 512$ 是固定的超参数,论文未讨论不同码本大小对性能和压缩率的影响,缺乏消融实验。第四,作者在LLaMA-2-7B实验中使用了4-bit量化,这本身就是一种压缩手段,与VQ压缩叠加后难以分离各自贡献。第五,论文使用的是较早期的LLaMA-2-7B模型,未在更新的LLM(如LLaMA-3、Mistral等)上验证方法的通用性。第六,CaMeLS基线在LLaMA-2-7B上因显存不足无法运行,作者直接标记为N/A而未尝试其他解决办法(如梯度检查点),使得最大模型上缺乏一个重要的对比基线。最后,论文的F1分数绝对值整体偏低(例如LLaMA-2-7B在StreamingQA上MBC的F1为25.33),这说明在线适应本身的效果距离离线训练仍有很大差距,压缩只是在有限的绝对性能空间内进行的优化。

独立分析的弱点

第一,码本大小的选择缺乏理论依据和系统实验。$N_c = 512$ 是固定的,但不同数据规模和不同backbone可能需要不同的码本大小。在文档数量极大时,512个码字可能不足以覆盖文档表示的多样性;而在文档数量较小时,512个码字又可能过多导致冗余。改进方向是设计自适应码本大小策略,例如根据码字使用率的统计特性动态增减码本条目,或者采用分层码本(hierarchical codebook)来捕获不同粒度的语义模式。第二,VQ的最近邻搜索在码本较大时会成为计算瓶颈。当前 $N_c = 512$ 时影响不大,但如果扩展到更大码本(如 $N_c = 4096$),每次量化都需要计算 $T \times N_c$ 次距离,开销会显著增加。改进方向包括使用产品量化(Product Quantization)将码本分解为多个子空间,或使用近似最近邻搜索算法。第三,aggregation网络的复杂度没有因为记忆库压缩而降低——它仍然需要对所有存储的量化索引对应的码字向量做cross-attention。虽然存储量下降了,但推理时仍需加载完整的码本并对每个查询进行attention计算。改进方向是引入稀疏检索或聚类机制,只对与当前查询最相关的部分记忆进行聚合,而不是处理整个记忆库。第四,论文未讨论码本的可迁移性——如果换一个数据集或任务,是否需要重新训练码本?这关系到方法在实际部署中的灵活性。

未来方向

作者在结论中提出了两个明确的未来方向:一是引入强化学习信号来自适应地指导记忆使用。当前MBC的aggregation网络对所有记忆条目一视同仁地做attention,但理想情况下应该根据查询内容选择性地关注相关记忆,强化学习可以帮助模型学会这种选择策略。二是探索分布式记忆库,实现联邦持续学习——多个设备各自维护压缩的记忆库,定期聚合码本和索引,避免中心化存储的瓶颈。基于论文的成果还可以延伸出更多方向:(1) 将MBC扩展到多模态场景,压缩图像、音频等模态的记忆表示;(2) 探索码本的层次化或语义化组织,使码字不仅代表最近邻关系,还编码文档的领域、主题等高层语义;(3) 结合检索增强生成(RAG),将压缩记忆库作为「快速路径」处理高频查询,将原始文本检索作为「慢速路径」处理低频长尾查询;(4) 研究码本与知识图谱的融合,使离散化的索引能够关联到结构化的知识表示,提升推理能力。

复现评估

论文的代码已开源在 https://github.com/Thomkat/MBC,这为复现提供了良好基础。数据集方面,StreamingQA、SQuAD和ArchivalQA均为公开可用的QA数据集,下载和预处理流程在论文和MAC的代码库中有详细说明。算力需求方面,论文明确说明所有实验在单张NVIDIA A100 80GB GPU上完成,这对于大多数研究机构来说是可获取的。但需要注意的是,LLaMA-2-7B的训练使用了4-bit量化(通过QLoRA库),且对于超过1B参数的模型使用了概率为0.75的反向传播dropout来降低显存占用,这些技巧虽然降低了硬件门槛,但也可能影响最终性能的完全复现。训练配置方面,论文详细报告了所有超参数(码本大小512、VQ承诺代价0.25、EMA衰减率0.99、重置阈值10^-4、KV-LoRA秩16-32、训练50个epoch等),以及不同backbone的学习率选择和梯度累积策略。总体而言,复现难度中等偏低,预计一个有经验的ML工程师可以在1-2周内完成全部实验。