
这项由南京大学计算机科学团队完成的研究,以预印本形式于2026年5月发布在arXiv平台,论文编号为arXiv:2605.16893。研究提出了一种名为NGM(N-gram Memory,N元记忆)的全新模块,任何对该领域感兴趣的读者都可以通过上述编号检索完整论文。
**一、一个让AI"记性变好"的古老秘密**
先从一个日常场景说起。你有没有注意过,一个经验丰富的厨师在做菜时,有些动作根本不需要思考——切洋葱时手的姿势、盐加多少、火候怎么把握——这些都是被肌肉记忆牢牢固化的"固定套路"。但如果你让他分析一道从未见过的异域料理的味道层次,他就需要调动全部的思考能力和知识储备了。
现在的AI大语言模型,有点像一位全知全能但"肌肉记忆"缺失的厨师。对于那些需要深度推理的任务,比如解数学题、分析逻辑关系,它表现得相当出色。但对于那些语言中反复出现的"固定套路"——比如专业术语的固定搭配、代码中的常见结构、命名实体的典型用法——它每次都要重新"想",耗费大量计算资源,就好像一个大厨每次切洋葱都要重新思考如何握刀一样。
南京大学的研究团队注意到了这个问题。他们的核心想法是:能不能给AI模型装上一套"肌肉记忆系统",让它在处理这些固定套路时不再大费周章?更关键的是,这套系统能不能直接嫁接到已经训练好的模型上,完全不需要重新训练?这就是NGM诞生的出发点。
**二、已有方案的共同短板:都得"重头学"**
在这项工作出现之前,学界已经有过一些类似的尝试。好比说,有人给厨师配备了一本专门的"套路手册",里面记录了各种常见动作的最佳做法,厨师每次需要时直接查手册就好,不必动脑子重新推理。这类方案在学术上被称为"条件记忆模块"或"嵌入扩展方法"。
麻省理工、谷歌等机构的研究者们先后尝试过多种路径。有的方案(比如SCONE)训练了一个独立的辅助变换器来生成"N元语言片段"的向量表示;有的(比如L?)把词汇表嵌入层的逻辑延伸到解码器的每一层,但需要学习专门的聚合矩阵;还有的(比如LongCat-Flash-Lite)把这套机制扩展到了300亿参数规模,需要大规模分布式训练和哈希表基础设施;最接近NGM思路的Engram方案,则通过对N元片段的哈希查询结合上下文感知门控实现了记忆注入,同样扩展到了270亿参数量。
这些方案有一个共同的"硬伤":无论多聪明,都绕不开"额外训练"这道坎。它们要么需要从头训练专门的记忆嵌入空间,要么需要专门的存储基础设施,要么需要一个复杂的检索管道。对于普通用户或者想要快速将方案部署到现有模型上的工程师来说,这意味着极高的门槛和成本。
正是这道坎,引出了南京大学团队的核心追问:**已经训练好的大模型,能不能在完全不改动参数、不额外训练的情况下,获得同样的"记忆查找"好处?**
**三、核心洞察:模型自己的"词汇本"就是最好的记忆库**
要理解NGM的精妙之处,需要先了解大模型内部的一个关键结构。每个大语言模型在处理文字之前,都会先把每个词(或者说词元,token)转换成一个高维向量——可以把它理解为一个由几千个数字组成的"坐标",代表这个词在语义空间中的位置。这个转换过程用到的"词汇坐标系",就是模型的嵌入矩阵(embedding matrix)。
南京大学团队的关键发现是:如果把相邻几个词的"坐标"做一个简单平均,得到的这个"平均坐标",和模型内部深层计算时产生的隐状态向量,在方向上有相当高的一致性!
这就好比说:你把几道菜的食材清单各取一份混在一起,和一位经验老到的厨师凭直觉判断"这顿饭大概是什么风格"得出的直觉向量,居然指向同一个方向。这种惊人的一致性意味着,根本不需要另外建一套专门的"记忆嵌入系统"——模型自带的词汇坐标系就已经包含了足够的本地模式信息。
为了验证这个直觉,研究团队在Qwen3-8B模型(阿里云开源的80亿参数大模型)上做了系统性验证。他们对比了三种情况下向量之间的余弦相似度(这个指标衡量两个向量方向有多接近,越接近1说明越一致):真实的N元平均嵌入与隐状态的相似度、打乱位置顺序的N元嵌入(作为对照组)与隐状态的相似度,以及完全随机向量与隐状态的相似度。
结果非常清晰。在默认注入的两个层(第1层和第14层),真实N元嵌入与隐状态的平均余弦相似度分别是0.312和0.137,而打乱位置的对照组仅为0.172和0.084,随机向量则只有0.014和0.008。这个差距跨越了一个数量级,说明这种一致性绝非偶然——它是模型预训练过程中在嵌入空间留下的真实几何结构。
**四、NGM的两个核心零件:如何"免费"造出记忆系统**
基于上述发现,NGM的设计思路极为简洁,整个系统只有两个组件,不包含任何需要训练的参数。
第一个组件叫作**因果N元编码器(Causal N-gram Encoder)**。"N元"这个概念来自语言学,指的是连续N个词(或词元)构成的片段,比如"2元"就是两个相邻词,"3元"就是三个。这个编码器做的事情极其简单:对于输入序列中的每个位置,分别取当前位置和前1个词、前2个词……的嵌入向量做算术平均,得到一个"本地记忆向量"。对2元和3元各做一遍,就得到两套覆盖不同粒度的本地模式摘要。
为了保证"不偷看未来"(在自回归语言模型中,每个位置只能依赖自己之前的内容),编码器在序列左侧做了适当的零填充。整个操作完全可以用现成的平均池化(average pooling)实现,不需要任何新参数,计算也完全可以并行化。
第二个组件叫作**余弦门控记忆注入器(Cosine-Gated Memory Injector)**。它的工作原理就像一个质检员:模型在某一层处理时产生的隐状态向量,会被拿来和刚才编码器生成的本地记忆向量做余弦相似度计算。相似度高,说明这个本地记忆和当前计算上下文"对得上",就允许这段记忆以一定强度注入进来;相似度低或者负数,则拦截掉,不让它干扰正常计算。
这里有个技术细节很重要:相似度计算后还经过了一个ReLU函数处理,效果是把所有负值强制置为零。这就像质检员不仅要确认"合格品",还要把"明显不合格的"直接丢弃,避免引入负面干扰。通过消融实验,研究团队发现去掉这一步会导致平均性能从72.17分下降到70.38分,在代码生成任务上尤为明显。
最终,注入的方式是一个残差连接(residual connection)——把经过质检的本地记忆信号乘以一个缩放系数λ,直接加到隐状态向量上。整个过程不改变模型任何原有参数,可以随时启用或禁用,名副其实地做到了"即插即用"。
**五、实验结果:哪些任务真正受益,哪些没那么明显**
研究团队在五个规模的Qwen3模型(从6亿到140亿参数)上进行了系统评测,覆盖数学推理、代码生成、知识问答和指令遵循四大类共八个主流基准测试。
从总体来看,NGM在每个模型规模上都实现了平均分的提升,提升幅度从0.5到1.2分不等。对于大模型领域的从业者来说,这个数字并不小——在不引入任何新参数、不进行任何训练的前提下,纯靠一个推理时插件获得这样的提升,相当罕见。
代码生成是NGM表现最为突出的领域。在LiveCodeBench(一个专门评测代码生成能力的高质量基准)上,140亿参数模型的得分从26.95跳升到29.94,提升幅度达到3.0分;HumanEval上也在所有规模均有提升或持平。这个结果符合NGM的设计初衷——代码中充满了固定的语法结构、标准的命名惯例和重复出现的符号模式,正是N元本地记忆最能发挥作用的场景。
知识密集型任务上也有明显收益。GPQA-Diamond(一个覆盖研究生级别科学知识的测试)上,140亿模型的提升达到3.03分;MMLU-Redux(大规模多学科知识测试)也在多个规模上有所提升。
然而,并非所有任务都一样受益。数学推理任务(GSM8K和MATH500)的结果较为参差:GSM8K在每个规模上都有提升,但MATH500有时提升有时下降,总体不如代码任务稳定。指令遵循任务(IFEval)的表现更是经常下降,而TruthfulQA(测试模型是否会说假话)则多数情况下略有提升。
研究者对IFEval下降给出了合理解释:NGM是一种固定规则的、非学习型的残差注入。对于需要精确遵循指令结构的任务,本地N元模式的额外注入有时会干扰模型按照指令格式输出,就像给一位按照食谱严格操作的厨师旁边站了一个不断插嘴的老师傅——大多数时候有帮助,但偶尔也会打乱节奏。
**六、多模态测试:语言记忆同样能帮助"看图说话"**
研究团队还把NGM扩展到了多模态模型Qwen3-VL-2B上进行初步测试。这个模型不仅能处理文字,还能理解图片。重要的是,NGM仅应用于语言解码器部分,完全不触碰视觉编码器,也不把图片的视觉词元纳入N元窗口——换句话说,本地记忆信号依然是纯语言层面的。
在MMBench、MMStar、OCRBench、TruthfulQA和MMLU-Redux五个多模态及纯文本基准上,NGM全部实现了提升或持平,其中MMStar的提升最为明显,达到1.53分。这个结果说明,NGM的本地语言记忆机制有一定的普适性,不局限于纯文本模型。
**七、消融实验:每个设计选择都有它的理由**
研究团队通过一系列"变量控制实验"(每次只改变一个设定,保持其他不变),仔细检验了NGM每个设计选择的必要性。
关于N元窗口大小的选择,单独使用2元或3元各有擅长,但组合使用{2,3}的平均表现最好,达到72.17分,加入4元后的{2,3,4}组合反而下降到71.36分。这说明覆盖多个粒度有帮助,但粒度不是越多越好——窗口过大会引入过多噪音。
关于ReLU门控,去掉它后平均分从72.17降至70.38,在LiveCodeBench上的差距尤为显著(从24.55降至19.16)。这验证了"只注入方向对齐的记忆、丢弃方向相反的"这一设计的重要性。
关于多尺度记忆的融合方式,研究测试了两种模式:一种是"堆叠式"(stack),即2元和3元各自独立计算一个门控分数,然后分别注入;另一种是"拼接式"(concat),把两种尺度的嵌入拼成一个长向量,统一计算一个门控分数。结果是堆叠式优于拼接式(72.17 vs 71.07),原因在于独立门控让模型可以选择性地相信2元信号而不相信3元信号(或者反过来),灵活性更高。
研究团队还测试了是否引入Engram论文中的"压缩词元化"技术(把同一个词的不同变体映射到同一个ID),结果发现它在HumanEval上有明显帮助,但总体平均分反而不如默认设置,因此最终保持了标准分词器。
**八、它为什么管用:从内部机制看NGM的工作原理**
除了性能数字,研究团队还从机制层面做了深入分析,试图解释NGM为何有效。
其中一项分析检验了NGM的作用是否真正"局部化"。研究者计算了所有位置对之间的余弦相似度,构成一个二维热图矩阵。如果NGM的记忆注入机制是有意义的,那么对角线上的值(即位置i的隐状态和位置i的N元嵌入的相似度)应该明显高于非对角线值(即不同位置之间的相似度)。
在代码、数学和知识型样本上的结果都验证了这一点:对角线均值一致高于非对角线均值,比例从1.27倍到2.42倍不等。这说明NGM注入的记忆信号确实主要来自当前位置附近的本地模式,而不是均匀地扩散到整个序列。换句话说,记忆的"精准度"是有保证的。
这个发现对理解NGM的适用边界也很重要:它擅长的恰恰是那些短程模式显著的任务(代码、命名实体、术语),而对于需要跨越很长距离进行推理的任务,它的贡献自然有限。
**九、计算代价几何:插件有多"重"**
实用性评估中,研究团队在一张RTX 5090显卡上测量了NGM带来的额外计算开销,测试条件为单批次、bfloat16精度、提示词长度从128到2048不等、每组配置重复20次取均值。
对于256到1024个词元的提示词,预填充(模型读入问题时的处理)阶段的额外开销在3.4%到7.3%之间,解码(逐词生成答案)阶段的额外开销在1.9%到2.3%之间。当提示词长度达到2048词元时,这两个数字分别上升到16.0%和9.9%。
后者偏高的原因在于当前发布的代码版本每次都要重新计算整个前缀的N元特征。研究者指出,如果采用流式缓存的方式(只计算新增词元的N元特征),解码阶段的每步计算量可以降低到与序列长度无关的常数级别O(|N|×d)。这意味着当前的开销数字并非理论下限,在工程优化后还有相当大的压缩空间。
**十、有哪些局限,研究者自己怎么看**
研究团队在论文中坦率地列出了NGM的三处不足,这种自我审视的态度值得关注。
第一,因果N元编码器使用的是"词袋式"平均,对窗口内词语的顺序不敏感。这意味着"猫咬狗"和"狗咬猫"在2元窗口内会得到几乎相同的表示,遇到顺序敏感或语义不可分解的短语时可能产生误导性的记忆注入。
第二,余弦门控和输出缩放系数λ都是人工设定的固定值,而非根据上下文自适应调整的参数。这使得NGM在某些任务(尤其是指令遵循类任务)上表现不稳定。研究者认为,引入轻量级的自适应参数可能是改进方向。
第三,NGM强化的是短程局部规律,它既不能查询外部知识库,也不能直接增强长距离推理。它被定位为一种补充机制,而非替代现有长上下文或检索增强系统的方案。
说到底,NGM是一个"花小钱办大事"的工程智慧结晶。它的核心洞察只有一句话:大模型在训练过程中积累的词汇坐标体系,其实已经隐式地包含了丰富的短程模式信息,完全不需要再另起炉灶建一套新的记忆系统——直接把这些"现成坐标"拼在一起,用余弦相似度做一个简单的质量过滤,就能免费地让模型"记性变好"。
这对大模型应用领域的从业者来说是个实在的好消息:无需重训、无需额外存储、推理时随插随用,在代码生成和知识密集型任务上获得稳定提升。当然,对于追求完美指令遵循或者处理高度顺序敏感文本的场景,还需要结合具体任务判断是否合适。归根结底,NGM提供的不是一个万能药方,而是一把精准好用的专用工具——知道什么时候该用,它的价值才能真正体现出来。有兴趣深入了解技术细节的读者,可以通过arXiv编号2605.16893查阅完整论文。
---
Q&A
Q1:NGM模块为什么不需要训练就能提升大模型性能?
A:NGM的核心原理是直接复用大模型已有的词汇嵌入矩阵来构建N元记忆向量,而不是另外学习新的记忆参数。南京大学团队发现,把相邻词的嵌入向量做简单平均后,结果向量与模型内部隐状态之间的余弦相似度,显著高于随机控制组,说明这种复用是有效的。注入时用余弦相似度做门控过滤,只允许方向一致的记忆信号进入,整个过程没有任何可学习参数。
Q2:NGM在哪类任务上提升最明显,在哪类任务上效果有限?
A:NGM在代码生成任务上提升最为显著,比如LiveCodeBench在14B模型上提升了3分,HumanEval在所有规模均有提升。知识密集型任务(如GPQA)也有明显收益。相比之下,指令遵循任务(IFEval)经常出现性能下降,因为固定的局部模式注入有时会干扰模型精确遵循指令格式的行为。数学推理任务介于两者之间,结果较为参差。
Q3:NGM带来多大的额外计算开销?
A:在RTX 5090显卡上测试,对于256到1024词元长度的提示词,NGM带来的预填充阶段额外开销约为3.4%到7.3%,解码阶段约为1.9%到2.3%。当提示词达到2048词元时,开销上升到预填充16%、解码9.9%。这主要是因为当前代码版本每次重新计算完整前缀的N元特征,研究者指出采用流式缓存后解码阶段的开销可以降低到与序列长度无关的常数量级。
好文章,需要你的鼓励
AWS AI Labs研究团队发布EvalAgent,这是一套通过"评估技能"自动生成AI智能体评测方案的系统,将首次运行成功率从17.5%提升至65%,并在人类专家评测中获得79.5%的偏好选择。
亚历山大大学提出M2Retinexformer,通过融合深度、亮度和语义三种辅助模态,让AI在增强暗光图像时兼顾几何结构与视觉自然度。
浙大、西湖大学等联合提出FAAST,无需反向传播,一次正向扫描将训练样本压缩为快速权重矩阵,推理时间和内存占用分别节省90%和95%以上。
慕尼黑工业大学发布RealICU基准,用专家后见之明评测大语言模型在ICU实时决策中的真实能力,发现现有顶级AI存在有害推荐率过高和锚定偏差两大安全隐患。