LightMem用3招重新设计了LLM的记忆,结果出乎意料
- LLM 的“记性”又贵又差【AI大模型教程】
在超长多轮对话里,LLM 面临两大痛点:
- 上下文窗口有限——“中间丢失”现象严重。
- 记忆系统昂贵——每轮都把原始对话塞进 LLM 做摘要/更新,Token 与 API 调用爆炸。
图 1 现有记忆系统 vs LightMem
如图 1 所示,现有系统要么“全量硬存”,要么“逐轮硬更新”,冗余信息 > 50%,实时推理被拖垮。
- 人类记忆的三把钥匙
Atkinson-Shiffrin 模型把记忆分为:
| 阶段 | 功能 | 对应 LLM 痛点 |
|---|---|---|
| 感觉记忆 | 毫秒级过滤无关刺激 | 冗余 Token |
| 短期记忆 | 秒-分钟级主题整合 | 语义混杂 |
| 长期记忆 | 睡眠时离线巩固 | 实时更新延迟 |
LightMem 直接把这套机制搬进了 Transformer 时代。
- LightMem 架构:三盏“灯”点亮高效记忆
图 3 整体架构
| 模块 | 昵称 | 关键设计 | 效果 |
|---|---|---|---|
| Light1 | 感觉记忆 | 预压缩 + 主题分段 | 砍掉 20-80% 冗余 Token |
| Light2 | 短期记忆 | 主题缓冲 + 到达阈值再摘要 | API 调用 ↓ 17-177× |
| Light3 | 长期记忆 | 在线“软更新”+ 睡眠离线并行合并 | 运行时 ↓ 1.7-12× |
- 核心技术拆解
4.1 Light1:预压缩 + 主题分段
图 4(a):不同压缩率下 QA 准确率几乎不变,token 先砍一半
做法:
- 用 LLMLingua-2 给每轮对话打“保留概率”。
- 动态阈值 τ = 百分位(r),只保留信息量最大的 token。
- 压缩率 r=0.6 时,输入 token ↓ 40 %,准确率不掉。
4.2 Light2:主题级短期记忆
- 缓冲结构:
{topic, [user_i, model_i]} - 到达 Token 阈值后,一次性调用 LLM 生成摘要 → 入库。
- 相比“逐轮摘要”,主题纯度↑ → 摘要幻觉↓,图 4(c) 显示去掉该模块 ACC 掉 6%。
4.3 Light3:睡眠期离线合并
- 在线阶段只做“追加写”,零延迟。
- 离线阶段并行执行“读-改-写”:
每条记忆维护一个更新队列 𝒬(e_i),仅与更高时间戳的条目合并,可批量并行,总延迟从 O(N) → O(1)。
- 实验结果:又快又准,全线 SOTA
表 1 在 LongMemEval-S(平均 110k Token)上与 6 个强基线Full-Text、Naive RAG、LangMem、A-MEM、MemoryOS、Mem0对比:
基于GPT和Qwen骨干网络在LongMemEval上的实验表明:LightMem在准确率上超越强劲基线(最高提升10.9%),同时显著降低token使用量达117倍,减少API调用达159倍,并将运行时间缩短超过12倍。
- 关键消融:参数怎么选?
表 2 给出压缩率 r 与缓冲阈值 th 的联合调参:
- th↑ → 摘要批次↑ → API/时间↓,但 ACC 非单调。
- r=0.6 + th=512 在 GPT 上取得最佳平衡点;Qwen 则偏好 r=0.6 + th=768。
- 案例:睡眠更新如何避免“误删”?
| 场景 | 硬更新 | LightMem 软更新 |
|---|---|---|
| 用户先去东京→再问京都 | 直接覆盖为“计划京都游”,东京信息丢失 | 追加写入,两地行程并存 |
离线合并时再做知识消歧,既保证实时性,又避免不可逆信息损失。
LightMem: Lightweight and Efficient Memory-Augmented Generation浙江大学 & 新加坡国立大学 https://arxiv.org/html/2510.18866https://github.com/zjunlp/LightMem