大模型第三种记忆:2.4B低成本越级13B
摘要
为大语言模型引入第三种记忆格式,将珍贵参数从硬背知识中释放出来!中科院院士鄂维南
为大语言模型引入第三种记忆格式,将珍贵参数从硬背知识中释放出来!
中科院院士鄂维南领衔,上海算法创新研究院等团队近日推出Memory3。这套方案相较参数内化知识及传统RAG方式成本更低,同时保持比RAG更快的解码速度。
实测结果亮眼:一个仅有2.4B参数的Memory3模型,不仅超越多款7B至13B参数规模模型,在医学等专业领域任务中的表现也胜过传统RAG方法。更关键的是,推理速度更快,伴随的“幻觉”问题也显著减少。
相关论文已上传至arXiv,在学术界引发广泛关注。
按使用频率划分知识
该方法灵感源自人脑记忆原理。它独立于模型参数中存储的隐性知识与推理时的短期工作记忆,相当于给大模型额外配备了一套显式记忆系统。
具体而言,人类记忆大致分为三部分:
显式记忆:可主动回忆的长期记忆,例如读过的文章。获取显式记忆容易,但提取时需一定的回想过程。
隐式记忆:无意识使用的长期记忆,例如骑自行车技能。获取隐式记忆需大量重复练习,但使用时毫不费力。
外部信息:存储于大脑之外的信息,如考试时的备考资料。获取和使用都很轻松,但面对新问题时作用有限。
不难看出,这三种记忆形式在获取与使用效率上形成鲜明互补。人脑会根据知识使用频率,巧妙地在它们之间分配存储位置,从而最小化整体开销。
反观当前大模型,主要依赖参数以隐式记忆形式存储知识。这直接导致两个问题:
知识分配效率低:无论知识使用频次高低,一律塞入参数。结果大量冷知识占据宝贵参数空间。
知识提取效率低:每次使用知识,都需动用大量参数同时参与计算,效率自然低下。
换个角度理解:训练阶段,大模型像一位显式记忆受损的患者,只能靠大量重复练习(如学习系鞋带)才能记下一点知识,消耗海量数据和能量。推理阶段,它又像一个人每写一个单词都要把毕生所学回忆一遍,这显然不合理。
基于此思路,团队按知识预期使用频率(横轴)计算读写成本(纵轴)。阴影区域代表在给定记忆格式下成本最低的区域。
结果发现:常用知识塞进模型参数成本最低,但容量有限;不常用知识直接检索效率最高,但每次读取都要重新编码,成本太高;而显式记忆则是折中平衡点,对于使用次数中等的大多数知识来说,它是最划算的选择。

记忆电路理论
团队进一步在论文中提出记忆电路理论,在大模型语境下重新定义知识和记忆,旨在确定哪些知识更适合存储为显式记忆,以及何种模型架构能高效读写显式记忆。

通过分析大模型内部已知机制(如事实问答、搜索复制粘贴等),团队认为大模型中每条知识都可表示为“输入-输出”关系,加上实现该关系的内部电路。电路指计算图中的一个子图,由若干注意力头和MLP神经元组成,这些电路的输入输出具有语义关联。
基于此,大模型知识可进一步分为两类:
具体知识:电路的输入和输出都有明确语义,如常识、常见短语等。
抽象知识:电路的输出语义可变,如搜索、复制、粘贴等操作,需通过输入推理出输出。
接下来,作者引入可分离知识概念:如果一个知识仅通过文本形式实现而不必内置到模型参数里,则它是可分离的。更进一步,可模仿知识是可分离知识的特例——它可以直接用描述该知识自身的文本去“教会”另一个不具备此知识的大模型,完全无需通过参数编码。
核心结论:具体知识都是可模仿的,因此也是可分离的,均可转化为显式记忆。论文从理论上给出了非形式化证明。

团队还将具体知识按使用次数分为“无关紧要”、专业知识和常见短语三个等级。不同等级根据读写成本,分别适合采用三种不同的记忆格式。

拥有显式记忆的大模型Memory3
那么,具体如何实现显式记忆?
关键在于,以注意力层的key-value向量作为显式记忆的载体。推理之前,Memory3模型将所有引用文本转换为显式记忆,并保存在硬盘或非易失性内存设备上。推理时,模型查询与当前上下文最相关的显式记忆,将其并入注意力机制,与上下文的key-value向量一起计算注意力分数,从而生成下一个token。
不过,海量文本转化成的显式记忆不仅需要更多磁盘空间,在推理过程中还会占用GPU内存,影响LLM生成吞吐量。为此,Memory3采用多维度压缩优化策略:
layer维度:仅前半部分注意力层(记忆层)负责产生和存取显式记忆,后半部分仍是普通注意力层。
head维度:每层只有少部分head(如1/5)处理显式记忆的key-value,其余head保持原样。
token维度:对于每个head,只选取参考文本中最相关的少量token(如8个),提取其key-value作为显式记忆。
最后,进一步用向量量化压缩每个key和value向量至更短的表示。这一套组合拳下来,显式记忆规模从45.9TB压缩到4.02TB,已压缩至一个GPU集群通常配备的存储容量之内。
此外,团队在显式记忆读写上还有一些值得关注的细节:
推理时,为避免不同文本片段重复检索显式记忆,Memory3每隔64个token做一次检索,中间共享检索结果。
频繁调用显式记忆会产生IO开销。为此,Memory3在内存中维护一个固定大小的缓存,专门存储最近访问过的显式记忆。
对于参考文本,模型使用不同输入符号(“
Reference:”)将其与普通文本区分开,避免干扰文本理解。对于显式记忆中的不同文本片段,模型为其分配同一区间的位置编码,以保留局部上下文。这种“平行”位置编码有效避免了长文本中间部分容易被忽略的问题。
最终训练出的Memory3模型,在HuggingFace排行榜上的评测结果如下:显式记忆将平均分数提高了2.51%。作为对比,Llama2-7B与13B之间的分数差异为4.91%,而13B模型的非嵌入参数数量接近7B模型的两倍。换句话说,显式记忆相当于把“有效模型大小”提高了2.51/4.91 ≈ 51.1%。若用Qwen-1.8B和4B做参考,计算结果相似,“有效模型大小”提高了49.4%。
在幻觉评估上,Memory3的表现也优于大部分模型。毕竟,它避免了将文本压缩到模型参数中导致的信息丢失,这本身就是一种优势。
来源:互联网
本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。