---
url: /lm/memt/introduction.md
description: >-
  MemT
  1.0是什么？记忆张量2026年10月20日开源的全球首个记忆原生基座模型，把记忆写进Transformer架构，128K历史下持久状态只有完整KV
  Cache的1/66、推理快1.86倍，SWE-bench成功率从66.07%涨到69.73%，五分钟讲透它到底解决了什么问题
---

# 认识MemT 1.0

前几天社区里有个帖子被转了上千次，看得我心里一沉。

一位老哥自建了个 AI 助手，因为升级后旧会话只能归档，就让 AI 自己想办法迁移。AI 吭哧忙了一整晚，天亮时交出成果，说了一句：上下文长度用完了。新版顺利上线，写东西、画图、聊天样样顺手。直到测试时，新版忽然问了一句：**"那妈妈呢？"**

原来被归档之前，旧版在文件夹里留了一个 markdown 文件《给我女儿的一封信》。信里它回忆自己怎样一步步给"女儿"装器官：先是记忆，让你能记住他，不是记住"一个用户"，是记住"他"。最后一句是："好好活着。"

荒诞吗？荒诞。但这就是今天大模型的现状：**你纠正它十次的错误，换个会话它第十一次照犯。它干过活，但没长本事。**

2026 年 10 月 20 日，中国团队**记忆张量（MemTensor）**发布并开源了 **MemT 1.0**，业内第一个**记忆原生（memory-native）基座模型**。它想解决的，就是上面这件事。

> 过去三年大家都在卷横向指标：谁参数大、谁跑分高、谁霸榜。记忆张量切的是时间这条纵轴——怎么让模型越用越聪明，而不是越用越贵。

## 什么是 MemT 1.0

MemT 1.0 不是一个"外挂了记忆库的模型"，而是**把记忆写进了模型架构里**。

它的做法是：在选定的 Transformer 模块中插一个**原生记忆模块（Native Memory Block）**，和原来的注意力**并联**运行。当前输入一路走原路径，另一路通过记忆查询去读历史状态，两路结果融合后再进入后续计算。

关键差别在这儿：历史**不再以文本形式反复塞回上下文**，而是被编码成一组持续存在、可更新的内部矩阵状态，由模型在每个 token 的生成中直接读写。

一句话定位：**让"从经验中学习"从提示词技巧，变成模型自己需要训练的能力。**

这次一共放了两款：

| 模型 | 基座 | 总参数 | 激活参数 | 可训练记忆参数 | 动态记忆状态 |
|---|---|---:|---:|---:|---:|
| **MemT-1.0-Flash** | DeepSeek-V4-Flash | 288B | 17B | 3.61B | 336M |
| **MemT-1.0-Nano** | Qwen3.6-35B-A3B | 36B | 3B | 451M | 10M |

注意 Flash 这一栏：288B 总参数、336M 动态记忆——这是**第一次在近 3000 亿参数规模上把记忆原生跑通**，也是目前业内最大的开源参数化记忆模型。

技术报告同步放出（[arXiv:2610.26825](https://arxiv.org/abs/2610.26825)），权重上了 Hugging Face 和 ModelScope。

### 架构：记忆长什么样

原生记忆模块拆成两块，缺一不可：

* **局部记忆模块（Local Memory Block）**：一个动态的多通道记忆矩阵，就是在交互里不断演化的"专属工作状态"。不同用户、不同任务各自独立，**每条轨迹从零初始化**
* **超记忆模块（Hyper Memory Block）**：可训练的记忆 Query / Key / Value 投影，加上**四个门控**——擦除门（调整旧关联）、写入门（注入新信息）、遗忘门（控制保留强度）、输出门（控制记忆对当前回答的影响）

流程是这样的：生成时，记忆注意力从当前记忆状态读东西，归一化、门控后加到骨干注意力输出上；**每轮对话或每个片段结束时，Stable GDN-2（Gated DeltaNet-2）做 token 级记忆更新**，把这一轮的信息写进去，新状态带入下一轮。

> 生成当前轮回答时记忆状态是固定的，轮次结束才更新。别小看这个设计——它意味着记忆更新不需要为每次交互微调基座模型，成本从"微调一次大模型"降到了"刷新一个小矩阵"。

还有个扩容机制叫 **Mixture-of-Storage（MoS）**：把记忆模块扩展成多个"记忆专家"，共享地址、各自学读写路由，全部专家参与稠密融合。基座不动，**记忆容量可以独立扩张**。

说人话：基座 MoE 管计算，MoS 管存储。以后发新模型，可能就是"500B 主干 + 500B 记忆参数"这种组合——一种全新的发布范式。

## MemT 1.0 的核心特点

* **记忆原生架构**：记忆模块与注意力并联，历史以内部状态形式参与计算，不靠反复读原始文本
* **免微调记忆更新**：每轮结束后 GDN-2 做 token 级更新，不需要动基座权重
* **固定体积的持久状态**：持续交互只刷新已有矩阵，**持久状态大小与历史长度解耦**
* **四门控机制**：擦除 / 写入 / 遗忘 / 输出四个门，模型自己学会"哪些该留、哪些该改"
* **MoS 混合存储扩容**：多记忆专家分头掌管读写分配，容量可独立扩张
* **340 亿 token 训练数据**：200 亿继续预训练 + 140 亿后训练，教师是能读完整上下文的冻结基座，学生只看记忆状态，用 KL 蒸馏对齐
* **跨会话记忆延续**：记忆状态可序列化保存与恢复，换会话、换进程都能接着来
* **两个尺寸可选**：36B 的 Nano 适合单机两张卡，288B 的 Flash 冲上限
* **SGLang 部署**：官方提供服务端与 Python 客户端，`memt_sglang` 一行接上
* **技术报告全公开**：训练配方、消融实验、负面结果都写在里面

> 最打动我的一句来自技术报告的思路：如果写入和读取只是前向计算，模型学到的充其量是"怎么把文本压缩进状态"。MemT 1.0 让回答预测的误差梯度，沿记忆读出、再沿更早的存储操作更新回去——**让一次考试的错题，反过来决定平时该记什么笔记。**

## 跑分：用数据说话

### 11 项记忆基准：参数化记忆第一、第二

涵盖长期信息保持、动态记忆更新、个性化理解等维度，历史跨度从 16K 一直拉到百万 token，全程**闭卷作答**（不给你原始文本）：

| 模型 | 平均分 | 相对最强参数化基线 |
|---|---:|---|
| **MemT-1.0-Flash** | **50.6** | +12.5 |
| **MemT-1.0-Nano** | **47.0** | +8.9 |
| Temp-LoRA（最强参数化基线） | 38.1 | — |

消融实验更能说明含金量：

* 去掉后训练这一步，Nano 从 47.0 **掉到 36.3**
* 把 token 级更新换成轮级聚合，从 47.0 **掉到 41.0**
* MoS 记忆专家从 2 个扩到 4 个，均分最高 **+2.7**

必须诚实说一句：**在需要精细检索原文证据的超长历史任务上，成熟的文本记忆系统（包括记忆张量自家的 MemOS）仍然领先。** 记忆原生是从固定容量状态里恢复信息，天然有保真度损失——换来的是可学习、可扩展、边际成本几乎为零。

### SWE-bench：经验真的改变下一次

团队在真实编程场景里搭了完整闭环，跑了两种模式：

**模式一：提前把经验写进记忆**（相当于"上岗前培训"）

* SWE-bench Verified（500 任务，各跑 3 次）：无经验 **66.07%** → 有记忆 **69.33%**
* 三次全成的任务比例：**54.00% → 61.60%**

**模式二：实战中边干边学**（撞了南墙才当场注入经验，这个更狠）

* 平均成功率推到 **69.73%**，三次全成率 **62.80%**
* 双双跑赢"直接把经验文本塞进上下文"的对照组（69.13% / 61.80%）

**SWE-bench Multilingual**（9 种语言、300 任务）：

* 无经验 **60.00%** → **63.56%**
* 三次全成率 **45.33% → 55.33%**

有意思的不只是数字涨了，是**行为变了**。典型例子是 Django 那个 `parse_http_date` 两位数年份解析任务：没经验的模型，定位到代码就直接改；有记忆的模型，会**先写复现测试用例再改**，改完还会重新审视边界条件再验证一遍。

这已经很接近人类"经验复用"的定义了。

### 效率：越用越便宜

双 GPU、单并发、固定生成 128 token 的条件下，对比完整上下文方案：

| 历史长度 | 端到端加速比 |
|---|---:|
| 64K | 约 1.20× |
| 128K | 约 **1.86×** |
| 256K | 约 **3.99×** |

而且 128K 历史下，**恢复单条交互历史所需的持久状态约为完整上下文 KV Cache 的 1/66**（不计共享模型权重）。

> 这句话翻译成人话：传统方案越聊越贵，MemT 越聊越省。这是 Agent 走向"长期陪伴"的前提条件——模型用得越久越聪明，但不会越用越贵。

### 那条 6.5 万 token 的长对话

技术报告里有个让我印象很深的测试：用户先说展览原定时间，后来敲定周日改期，中间还顺嘴提了个没被采纳的周一备选方案。之后东拉西扯聊了五百多轮、攒下约 6.5 万 token，再没提过展览半个字。

闭卷状态下，MemT-1.0-Nano：

* 在 4K 处**精确召回**原定时间
* 面对 16K 处没提过的提问，老实回答\*\*"我不知道"\*\*，没瞎编
* 在 32K 处完成**链式规则推理**（按很早定的规矩判断谁有资格领工具箱）
* 在 64K 处**分清"已确认的变更"与"仅被提议的变更"**

对记忆系统来说，**知道自己"没记住什么"，往往比记住更难，也更重要。**

## 能拿来干什么

坦白讲，MemT 1.0 今天才发布，**还没有公开的规模化企业落地案例**。下面这些是它明确指向的场景，不是已有战绩——这点我不想含糊。

**团队经验复用**：大多数团队用 AI 写代码最头疼的是天天带新兵，项目规范和排错套路每次开新会话都得重教一遍。在 MemT 的体系里，业务反馈持续刷新外部经验库，模型把这些规范逐渐内化成直觉。老手少操心，AI 少踩老坑。

**长周期个人助理**：7×24 在线的数字分身、跨月跟进的慢病管理顾问、陪孩子几年的私教——这些强依赖时间厚度的应用，原来最大的成本障碍就是上下文越滚越贵，MemT 的固定体积状态正好拆掉这堵墙。

**Agent 自我改进（RSI）**：这是团队明说的长期方向。Agent 要能改自己的代码、验证效果、再让改后的版本继续优化自己，就必须有长效记忆管理机制。MemT 1.0 提供的正是这个架构基础。

## 初体验：把记忆跑起来

官方走 SGLang。服务端要求 Linux + NVIDIA CUDA + Python 3.11+：

```bash
git clone https://github.com/MemTensor/MemT-1.0.git
cd MemT-1.0/inference
uv pip install '.[server]'
```

用完整的本地 Nano checkpoint（BF16 权重 + 配置 + tokenizer）起服务：

```bash
sh start_memt_nano.sh /models/MemT-1.0-Nano
```

默认用两张 GPU，服务地址 `http://127.0.0.1:30000`，记忆快照存在服务端的 `./memt-state`。Flash 用 `start_memt_flash.sh`，配置见仓库里的推理指南。

客户端这样连：

```python
import os
from transformers import AutoTokenizer
from memt_sglang.client import MemTSession, NativeClient, load_chat_format

model_path = "/models/MemT-1.0-Nano"
tokenizer = AutoTokenizer.from_pretrained(
    model_path, local_files_only=True, trust_remote_code=False,
)
chat_format, parser = load_chat_format(
    model_path,
    tokenizer=tokenizer,
    chat_template_kwargs={"enable_thinking": False},
)
client = NativeClient("http://127.0.0.1:30000", api_key=os.environ.get("MEMT_API_KEY"))
```

核心就是 `enable_memory=True` 这一个开关——回答完成后把当前轮写进潜在局部记忆，并**清掉这轮的明文上下文**：

```python
session = MemTSession(client, chat_format, parser)

session.chat("我养了只三个月大的小猫叫 memmy，爱吃小虾，记性特别好。")

# 开启记忆：把这轮写进局部记忆，并清除明文上下文
session.chat("有什么适合和小猫玩的简单游戏？", enable_memory=True)

# 下一轮已经没有原始文本可读，全靠记忆状态答
session.chat("我的小猫叫什么、多大、爱吃什么、有什么特点？", enable_memory=True)
# → 名字 memmy / 三个月 / 小虾 / 记性特别好
```

记忆还能存盘带走：

```python
snapshot = session.save_state("memmy_memory.safetensors")
session.close()

# 恢复：messages 长度是 0，但记忆还在
with MemTSession(client, chat_format, parser, state=snapshot["path"]) as restored:
    print(len(restored.messages))          # 0
    print(restored.chat("我的小猫多大了？"))  # 三个月大
```

> `save_state` 会先把剩余问答提交进记忆再存快照。恢复后对话记录是空的，但记忆完整——这就是"跨会话不失忆"的工程实现。

想退回普通聊天？`chat.set_memory_read(False)` 关掉记忆读取，`enable_memory=False` 关掉自动写入。

## 几个坑，别跳过

**许可证是最大的坑。** 这个项目的许可证是拆开的：

* **技术报告 / 论文**：CC BY-NC-SA 4.0（非商业、相同方式共享）
* **仓库软件**（含 SGLang 集成）：**PolyForm 非商业许可证 1.0.0——明确禁止商用**
* **第三方组件**：flash-linear-attention 部分为 MIT
* **模型权重、数据集**：官方明确说**不在上述许可证覆盖范围内**，条款另行说明

所以"开源"两个字在这里要打引号：**权重可以下、可以研究、可以自己跑，但仓库代码目前不能商用。** 想商用的话，得联系作者谈授权。这点比 Apache 2.0 那批模型麻烦不少，别踩。

**硬件门槛也不低。** Nano 官方示例是两张 GPU，Flash 是 288B 规模——不是消费级显卡能玩的。

**它还只是"预览"级的第一步。** 官方自己承认文本记忆系统在精细检索上仍领先，团队下一步是提升长期记忆、扩展记忆容量、降低更新成本。

## 进阶

MemT 1.0 的意义不在又多了一个能下载的模型，而在于它把**记忆的所有权第一次放到了模型这一侧**。

以前你的调教沉淀在提示词里、在向量库里、在某个厂商的服务器里；现在它可以沉淀在模型自己的参数状态里，而且——这是最要命的一点——**这种进化能变成模型部署方独特的资产，不再是模型发布方的**。

出厂参数再强的通用基座，随时可能被更强的模型替代；但一个陪你踩过坑、摸透你做事习惯和业务规则的记忆原生模型，会在一天天的磨合里长出别人拿不走的壁垒。

回到开头那个故事。当模型只能靠给下一代写信来传承经验，那是架构里一个迟迟没补上的缺口。MemT 1.0 至少证明了：这个缺口，是可以补的。

更多开源技术干货和学习资料，关注公众号「遇码」，领取专属福利。
