Memory3:配备显式记忆的语言模型

$\text{Memory}^3$: Language Modeling with Explicit Memory

摘要

本文介绍了一种名为 Memory3 的语言模型,它通过配备显式记忆来降低大语言模型(LLM)的训练和推理成本。Memory3 利用显式记忆在推理过程中减轻模型参数记忆特定知识的负担,其显式记忆从知识库编码而来,并通过稀疏存储格式保持实际存储大小。作者训练了一个具有 2.4B 非嵌入参数的 Memory3 模型,其性能优于更大规模的 LLM 和 RAG 模型,并且在推理速度上也优于 RAG。此外,Memory3 提高了事实性并减轻了幻觉,还能快速适应专业任务。

原理

Memory3 利用显式记忆在推理过程中减轻模型参数记忆特定知识的负担。显式记忆从知识库编码而来,并通过稀疏存储格式保持实际存储大小。在推理过程中,LLM 可以直接通过自注意力层读取检索到的显式记忆,将其与通常的上下文键值对连接起来。具体来说,对于每个注意力头 h 在层 l,如果它被选为记忆头,则其输出 Y l,h 从通常的形式变为: Y l,h i = softmax �Xl,h i Wl,h Q · concat � Kl,h 0,… Kl,h 4, Xl,h [:i]W l,h K �T √dh � concat � V l,h 0,… V l,h 4, Xl,h [:i]W l,h V � Wl,h O (4) 其中每个(Kj,Vj)表示显式记忆的键和值。

流程

在推理过程中,Memory3 模型会将所有参考转换为显式记忆并将其保存到驱动器或非易失性存储设备上。然后,在推理时,每当检索到(参考的)ID 时,其显式记忆就会从驱动器加载并发送到 GPU,以集成到 Memory3 的计算中。通过 Remark 1,参考在编码期间不需要关注任何其他文本(例如其他参考或查询文本),因此可以在推理之前独立地对每个参考进行编码。这种隔离也有助于减少注意力的计算。还可以采用“冷启动”方法来绕过准备时间:每个参考在首次检索时转换为显式记忆,而不是在推理之前。随后的检索将访问此存储的记忆。上述具有预先计算的显式记忆的推理将被称为“热启动”。

应用

Memory3 可以应用于自然语言处理的多个领域,如文本生成、问答系统、机器翻译等。它的显式记忆机制可以提高模型的性能和效率,同时降低训练和推理成本。此外,Memory3 还可以应用于其他领域,如计算机视觉、语音识别等,通过与其他模态的信息进行交互,提高模型的泛化能力和适应性。