NGM:一种即插即用、无需训练的大语言模型记忆模块 NGM: A Plug-and-Play Training-Free Memory Module for LLMs
复用骨干词嵌入构造多尺度N-gram,以余弦门零训练注入LLM。
前置知识
Transformer 残差流
Transformer 每层把子层输出加回到输入形成残差流,所有 attention/FFN 都沿同一条向量做加性更新,使得中间隐藏状态与输入嵌入空间天然共享一个线性工作区,这也是 NGM 余弦门能免投影生效的前提。
NGM 的余弦门只在隐藏状态与 N-gram 嵌入可对齐时才有效,残差流提供这种几何兼容性的直觉基础,理解残差流才能看懂 §3.2 节为什么不必学一个投影矩阵。
Token 嵌入矩阵 $E \in \mathbb{R}^{V \times d}$
LLM 头部存在一张把 token id 映到 $d$ 维向量的查找表 $E$,训练后即固定。NGM 直接复用这张冻结矩阵,把局部窗口里 token 的嵌入做平均,得到 N-gram 表征,完全省去训练独立 N-gram 表的负担。
这是 NGM "无需新增参数、无需新增内存表"的关键工程基础,也是它和 Engram/SCONE 等需要学新嵌入表的方法最本质的区别所在。
N-gram 语言模型与 bag-of-embeddings
经典统计 N-gram 用 $(n-1)$ 阶马尔可夫假设估计 $P(w_1,...,w_n)$,而 NGM 把窗口内 $n$ 个 token 嵌入做算术平均,等价于一种无序的 bag-of-embeddings 近似,用于捕捉短程固定搭配。
NGM 复用了 N-gram "短程模式可查"的旧直觉,只是把统计计数换成嵌入平均,这是它能把训练免费做出来的根本动机。
Cosine Similarity
定义为 $\cos(u,v) = \langle u, v\rangle / (\|u\| \|v\|)$,只衡量两向量的方向一致度,幅值无关。NGM 用它做训练免费的"相关性门",并以 ReLU 截断负值,只允许方向一致的部分通过。
公式 (4)-(5) 的余弦门是 NGM 全部"何时注入"逻辑的核心,也是 §4.4 中 ReLU 消融带来平均分 72.17 vs 70.38 大幅波动的根源。
KV Cache 自回归解码
推理时把已计算的 $\mathbf{K},\mathbf{V}$ 缓存复用,每一步只跑当前 token。NGM 在每一步只重算最近 $|\mathcal{N}|$ 个 token 的 N-gram 嵌入,使每步复杂度稳定在 $O(|\mathcal{N}| d)$,与前缀长度无关。
理解 KV cache 才能理解为什么 NGM 在 2048 token 处每 token 解码仅多 9.9% 延迟,而当前全前缀重算版本仍带来 16.0% 的 prefill 开销。
研究动机
以 Engram 为代表的一波"条件记忆"工作(SCONE、L3、LongCat-Flash-Lite、MeKi 等)都通过学一个额外的 N-gram/token 嵌入表来复用局部模式:Engram 把哈希 N-gram 查表做到 27B 参数量,SCONE 用辅助 Transformer 产生上下文化 N-gram 嵌入并额外消耗训练 FLOPs,L3 把 tokenizer 嵌入表跨层静态路由却需要学逐层聚合矩阵和 CPU offload 存储,MeKi 则要花一整个训练阶段构造 memory bank。这些方法虽然证实了"局部查表"是有用的容量扩展轴,但代价是必须新增可训练参数,大多数还要专门的存储/检索基础设施。我们在 Qwen3-8B 上重测发现,单纯把 N-gram 嵌入平均就能与隐藏状态保持 0.312/0.137 的余弦相似度(L1/L14 注入层),显著高于位置打乱对照 0.172/0.084 和随机 token 对照 0.014/0.008,说明这条"复用既有嵌入"的路线从未被认真利用过。
本文的目标是本文提出 NGM(N-gram Memory),目标是在完全不更新骨干权重、不新增任何可训练参数、不需要外部知识源与专用检索基础设施的前提下,把局部 N-gram 信号作为即插即用的推理时增强模块,插入到 Qwen3 系列 0.6B、1.7B、4B、8B、14B 五个规模的少数 decoder 层里,在不破坏预训练分布的同时改善与短程局部模式相关的任务表现,并天然兼容 KV cache 自回归推理流程以控制真实部署开销。
与已有工作不同的是,NGM 的切入角度既不是 MoE 的"动态计算路径"也不是 Engram 的"学新嵌入表",而是把骨干模型自身的冻结词嵌入矩阵 $E$ 同时当作输入接口和"轻量本地记忆源",通过算术平均构造多尺度 N-gram,再用一个无参数的余弦门做"何时写入"决策。换言之,Engram 等方法是在网络外另起炉灶,NGM 则是把 backbone 内部已经有但没人调用的几何结构重新利用起来,代价是放弃对 N-gram 表征的学习自由度,获得零训练、零存储、可随时关闭的纯推理时能力。
核心方法
NGM 是一个冻结 decoder-only LLM 之上的训练免费即插即用模块,直觉很朴素:语言中充斥命名实体、公式化短语、固定符号等"局部可查"的模式,而 Transformer 自身却被迫用深层 attention + FFN 去重建这些短程依赖。NGM 选择直接把骨干模型自身的 token 嵌入表 $E \in \mathbb{R}^{V \times d}$ 同时当成"输入接口"和"轻量本地记忆",在每个被选中的 decoder 层(对 Qwen3-8B 默认是 0-based 的 layer 1 和 layer 14,见 Appendix Table 7)把局部窗口内 token 嵌入做算术平均,再用其与当前隐藏状态的余弦相似度做门控,以残差方式注入。整个流程没有任何可训练参数,只在指定的少数层引入一个 $O(|\mathcal{N}| d)$ 量级的额外计算。
核心创新两点:(1)Causal N-Gram Encoder 用 Eq.(2) 的 $g_{t,n}=\frac{1}{n}\sum_{k=0}^{n-1}\tilde{e}_{t-k}$ 直接 1D 平均池化,等价于一个无新增参数、无需学习的 N-gram 表征,由 PyTorch `F.pad`+`AvgPool1d` 完成;(2)Cosine-Gated Memory Injector 用 Eq.(4)-(5) 的 $\tilde{s}_{t,n}=\max(0,\cos(h_t^l,g_{t,n}))$ 与 Eq.(6) 的 $h_t^{l\prime}=h_t^l+\lambda \tilde{s}_t^\top G_t$ 实现"方向一致才注入",默认 stack 融合为每个尺度 $n$ 独立打分。和 Engram 的本质区别是不再学 N-gram 表/哈希查表/学习投影,完全靠冻结嵌入的几何先验与方向余弦完成写入决策,因此可即插即拔。
方法步骤详情
NGM 算法分两步(Algorithm 1)。第一步 Causal N-gram Encoder:输入 $X=\{x_1,...,x_T\}$ 与冻结 $E$,对每个 $n\in\mathcal{N}=\{2,3\}$(默认)在序列左侧零填充 $n-1$ 个零,使 $g_{t,n}=\frac{1}{n}\sum_{k=0}^{n-1}\tilde{e}_{t-k}$ 保持长度 $T$ 且保因果;多尺度堆叠成 $G_t\in\mathbb{R}^{|\mathcal{N}|\times d}$,与最后 $L$ 个隐藏位置对齐后输出 $G\in\mathbb{R}^{L\times|\mathcal{N}|\times d}$。第二步 Cosine-Gated Memory Injector:对 layer $l$ 的 $H^l$ 与 $G$ 做行/列 L2 归一化,按 Eq.(4) 算逐 token 余弦相似度 $S\in\mathbb{R}^{L\times|\mathcal{N}|}$,默认开 ReLU,沿 $\mathcal{N}$ 维加权求和得 $M\in\mathbb{R}^{L\times d}$,以 $H^{l\prime}=H^l+\lambda M$ 残差注入,默认 $\lambda=0.1$。Qwen3-8B 默认注入 0-based 的 layer 1 与 14,其余规模见 Appendix Table 7。Prefill 一遍前向即得所有层 $G$;自回归解码只重算最近 $|\mathcal{N}|$ 个 token 并增量更新 $g_{t,n}$,每步开销与 $T$ 解耦。
技术新颖性
NGM 的新颖性在于"做减法":把 Engram/SCONE/L3/LongCat-Flash-Lite/MeKi 系列里"训练 N-gram 嵌入表 + 检索基础设施 + 学习投影"三个组件一并删除,只保留一个 AvgPool + 一个 cos-ReLU 门,把 Qwen3-0.6B 到 14B 五档平均分推高 +0.5 到 +1.2,LiveCodeBench v5 在 14B 上 +2.99、GPQA-Diamond +3.03。它给出两项独立贡献:(a)经验验证"骨干冻结词嵌入 $\to$ 多尺度 N-gram $\to$ 余弦门"这一纯几何路线足以支撑任务级增益,并用 Figure 1 的 0.312/0.137 vs. 打乱 0.172/0.084 vs. 随机 0.014/0.008 提供 embedding/hidden 真实对齐证据;(b)给出 $\mathrm{O}(T|\mathcal{N}| d)$ prefill 与 $\mathrm{O}(|\mathcal{N}| d)$ per-step decode 的复杂度证明,说明 NGM 是真可部署的推理模块而非算法示意。
实验结果
Table 1 在 Qwen3 0.6B/1.7B/4B/8B/14B 五档 GSM8K/MATH500/HumanEval/LiveCodeBench v5/MMLU-Redux/GPQA-Diamond/IFEval(strict)/TruthfulQA(MC2) 八基准上,NGM 让每档平均分 +1.21/+0.48/+0.58/+0.81/+0.72。代码类最稳:LiveCodeBench v5 五档全正(+1.20 到 +2.99),HumanEval 在 1.7B/4B/8B/14B 各 +0.5 到 +1.8。GSM8K 全档正提升,MATH500 在 1.7B/8B/14B 正向、0.6B/4B 略退。MMLU-Redux 4/5 档基本持平,GPQA-Diamond 4/5 档提升,14B 上 GPQA +3.03 与 LCB 并列。Table 2 仅对语言 decoder 注入即让 Qwen3-VL-2B-Instruct 的 MMStar +1.53、OCRBench +3、TQA +0.37。Table 3 显示 $\mathcal{N}=\{2,3\}$ 平均 72.17 优于单尺度 $\{2\}$ 70.84 / $\{3\}$ 71.35。Table 4 无 ReLU 平均骤降 1.79(72.17→70.38,LCB -5.39)。Table 5 stack 72.17 vs concat 71.07;Table 6 CompTok 让 HumanEval +0.61 但平均 71.48 略低。Figure 4 在 RTX 5090 上 256-1024 token 时 prefill +3.4%~+7.3%、decode +1.9%~+2.3%,2048 token 时升到 16.0% / 9.9%,作者承诺流式 cache 可把 decode 摊到 $\mathrm{O}(|\mathcal{N}| d)$。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| GSM8K | 准确率 (%) | Qwen3-14B+NGM = 91.74 | Qwen3-14B = 91.66 | +0.08 |
| MATH500 | 准确率 (%) | Qwen3-14B+NGM = 87.0 | Qwen3-14B = 85.4 | +1.6 |
| HumanEval | pass@1 (%) | Qwen3-14B+NGM = 88.41 | Qwen3-14B = 88.41 | 持平 (其它4档正提升) |
| LiveCodeBench v5 | pass@1 (%) | Qwen3-14B+NGM = 29.94 | Qwen3-14B = 26.95 | +2.99 |
| MMLU-Redux | 准确率 (%) | Qwen3-14B+NGM = 85.30 | Qwen3-14B = 84.88 | +0.42 |
| GPQA-Diamond | 准确率 (%) | Qwen3-14B+NGM = 52.02 | Qwen3-14B = 48.99 | +3.03 |
| IFEval (strict-prompt) | 准确率 (%) | Qwen3-14B+NGM = 83.92 | Qwen3-14B = 86.14 | -2.22 |
| TruthfulQA (MC2) | MC2 准确率 (%) | Qwen3-14B+NGM = 77.60 | Qwen3-14B = 77.72 | -0.12 |
| MMBench_DEV_EN_V11 (Qwen3-VL-2B) | 准确率 (%) | +NGM = 76.63 | 基线 = 76.32 | +0.31 |
| MMStar (Qwen3-VL-2B) | 准确率 (%) | +NGM = 56.20 | 基线 = 54.67 | +1.53 |
| OCRBench (Qwen3-VL-2B, 满分 1000) | 得分 | +NGM = 829 | 基线 = 826 | +3 |
局限与改进
作者在 §6 明确给出三点限制:(1)Causal N-gram Encoder 是 bag-of-embeddings 平均,窗口内 token 顺序无关,对顺序敏感或非组合短语(成语、专名、歧义短语)可能注入噪声信号;(2)余弦门和固定 $\lambda$ 是启发式而非上下文自适应,IFEval 在 8B/14B 上 -0.55/-2.22 等指令跟随任务反向震荡,说明训练免费注入规则并不适合所有任务风格;(3)NGM 只能强化局部短程规律,既不能检索外部知识也不直接解决长程推理,定位上是长上下文/检索系统的补充而非替代。结合观察还可加两点:(a)Figure 4 的 2048 token 性能塌缩说明当前公开实现的 prefill 重算开销随长度线性放大,所谓 "linear overhead" 只在 <1024 token 区间成立,长 prompt 成本被低估;(b)实验集中在 Qwen3 系列(全为非 tied embedding),Llama/DeepSeek/Mistral 等家族的可迁移性完全没有验证,余弦门对 untied 隐式对齐的依赖会放大这些家族的失败风险。
独立分析的弱点
方法与实验两个角度看,可改进空间在四块:(1)**注入幅度不可调**:$\lambda$ 是每模型档位的全局标量,不能按 token/样本特征动态调节,正是 IFEval 等指令任务退化的直接原因;方向是引入 per-layer、per-head 标量门控,或 ReLU 后再过 group-norm 让注入分布自适应。(2)**只支持 bag-of-embeddings**:窗口内 token 顺序被丢,代码/命名实体类不敏感所以收益稳定,但句法/翻译/形态学敏感语种会失效;方向是 2-/3-gram 上加 1D depth-wise 卷积以恢复部分顺序信息,保持无新增可训练参数约束。(3)**对齐假设过强**:余弦门假设 hidden 与 embedding 方向一致,但 Llama/Mistral 等 untied 家族只满足间接对齐;方向是引入可冻结 low-rank 旋转或极小维度 RFF 投影,把两者拉到公共子空间后再算余弦。(4)**长 prompt 工程坑**:Figure 4 显示 2048 token 时 prefill 开销 16.0%,作者已承诺流式 cache 可降到 $\mathrm{O}(|\mathcal{N}| d)$ 但代码未跟上;方向是参考 paged attention 把 N-gram 表征按段物化复用。
未来方向
作者在结论与限制里暗示三类未来工作:(i)把训练免费注入规则升级为轻量参数化或任务自适应版本,例如把 $\lambda$ 改为 per-layer scale + 极少量 adapter(新增参数仍远小于 1%);(ii)探索更长窗口、多尺度组合的极端形态,跨句法短语/chunk 边界的多尺度 N-gram 与 tree-attention 协同;(iii)与外部检索/datastore 结合,把 NGM 当作"短程先验"与长程检索互补。基于现有结果还可延伸:(a)在 Llama/Mistral/DeepSeek 上做完整 8 基准复现,验证非 Qwen3 家族迁移性并定位对齐度退化点;(b)与 speculative decoding 集成,decoder step 增量的天然嵌入 cache 支持 draft token 局部模式校验;(c)在 SFT/RLHF 阶段把 NGM 内化为可微路径,验证"训练免费"是否也是"训练后免费";(d)与 prefix-tuning/Prompt-Tuning 消融,看余弦门能否取代部分 soft prompt 工作。
复现评估
复现难度较低。代码已在 GitHub 公开(https://github.com/PioneerQyw/NGM),评测基于 EvalScope,骨干统一 Qwen3 系列 0.6B-14B,多模态用 VLMEvalKit 跑 Qwen3-VL-2B-Instruct,解码参数 temperature=0.7、top-p=0.8、top-k=20,MMLU-Redux context=4096 等关键超参均明确。论文展示几乎全部 ablation($\mathcal{N}$ 集合、ReLU、stack vs concat、Compressed Tokenizer、$\lambda$ 灵敏度),每张表都用 Qwen3-8B 单卡可比,Appendix Table 7 给出每档规模注入层 id。仍有三处复现陷阱:(i)RTX 5090(bf16) Figure 4 可在消费卡本地复跑,但 prefill 开销因硬件而异;(ii)训练免费不等于无超参——$\lambda$、注入层、$\mathcal{N}$ 集合每个骨干都要重选,作者没给自动选择流程,新模型接入时需小规模 grid search;(iii)Engram vs NGM 文献级对比在 §2 给出但无同任务同设置并排数字,严格比较仍需自跑。
论文图表
左图给出 Qwen3-8B 36 层 hidden state 与同位置 N-gram 平均嵌入的余弦相似度曲线,叠加位置打乱 N-gram 与随机 token 两条对照;右图柱状图突出 L1/L14 两个默认注入层的真实对齐度 0.312/0.137 vs. 打乱 0.172/0.084 vs. 随机 0.014/0.008。
这是论文的"经验地基":它直接证明了 pretrained embedding 与 decoder hidden 之间存在显著的几何兼容,为后续余弦门无需投影提供数字证据,也是 §3.2 残差对齐论证的来源。