MemTensor/MemT-1.0

Official repository for MemT-1.0

解决的问题

大型语言模型通常会丢失早期的上下文,除非这些内容在当前的窗口中,而处理长历史记录的成本很高,因为必须存储完整的上下文。MemT-1.0 通过将内存作为模型的内置部分解决了这个问题,使其能够在推理时保留并使用过去的信息,而无需原始文本。其持久化状态的大小保持不变,与 128K 历史记录下的全上下文 KV 缓存相比,存储需求减少了约 66 倍。

工作原理

MemT-1.0 在骨干注意力机制旁边增加了一个原生内存块(Native Memory Block)。该块包含两个部分:一个保持动态、多通道内存矩阵并随交互步骤演进的局部内存块(Local Memory Block),以及一个带有可训练内存查询、键、值投影以及擦除、写入、遗忘和输出门的超内存块(Hyper Memory Block)。在生成过程中,内存注意力从当前的内存状态读取信息,对读取结果进行归一化和门控,并将其添加到骨干注意力输出中。在每一轮或每一段结束时,GDN-2 机制执行标记级的内存更新。该项目还包括一个由 34B token 数据和专用基础设施支持的两阶段训练流水线,并展示了一个将程序化经验存储在原生内存中的经验引导智能体编码框架。

适用人群

致力于内存增强型 LLM 的研究人员和开发人员,特别是那些对长跨度任务、智能体系统以及需要在不存储完整对话日志的情况下持久化用户特定知识的应用感兴趣的人员。快速入门针对使用 Linux 服务器、NVIDIA CUDA 和 Python 3.11 或更高版本的用户,并使用 SGLang 进行部署,使用 Python 客户端进行对话。

亮点

  • 两种模型尺寸:MemT-1.0-Nano(总计 36B,激活 3B)和 MemT-1.0-Flash(总计 288B,激活 17B),每种模型都具有可训练的内存参数和动态内存状态。
  • 与 128K 历史记录下的全上下文 KV 缓存相比,存储需求减少了约 66 倍。
  • 在 11 个内存基准测试中,在评估的参数化内存方法中排名第一和第二。
  • 提供了一个经验引导的智能体编码框架,在不向任务上下文添加经验文本的情况下提高了任务性能。
  • 支持将内存状态保存并恢复为快照,将内存与对话记录解耦。
  • 为存储库软件提供非商业许可(PolyForm Noncommercial 1.0.0),并为论文提供单独的 CC-BY-NC-SA 许可。

相关

  • 项目
  • 项目
  • 项目
  • 项目