拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

记忆张量-把上下文与显存当作可管理资源

记忆张量-把上下文与显存当作可管理资源

摘要

智能体的记忆系统常被当成应用层功能,实际瓶颈在张量层:写入、检索、淘汰都要与显存和算力争资源。本文拆解记忆张量的三层结构(原始张量、索引、摘要)、读写路径的延迟构成、淘汰与压缩策略,以及记忆管理与推理调度的协同设计。2026 奇点智能技术大会(11 月 20-21 日 · 北京万达文华酒店)的智能体与 AI Infra 专题会讨论这类交叉问题。

一、记忆不是数据库,是张量

把记忆当数据库做的团队,很快会遇到两个问题:检索延迟随规模上升,以及记忆与推理争抢显存。原因是记忆的载体并不是行记录,而是张量——嵌入、KV、激活都属于此类。

应用层:记忆条目(文本 + 元数据) 张量层:嵌入向量 / KV 片段 / 压缩表示 存储层:显存 / 主机内存 / 本地盘 / 远端

三层各管一段:应用层决定记什么,张量层决定怎么存,存储层决定放哪里。混淆层次会导致优化方向错位。

二、三层结构与各自职责

层级内容主要操作常见瓶颈
原始张量嵌入、KV 片段读写、压缩显存带宽
索引近似最近邻及其元信息检索、过滤检索延迟
摘要压缩后的语义表示生成、更新生成成本

摘要层最容易被忽略:它决定"记忆能不能被压缩后仍然可用"。没有摘要层时,淘汰只能整条丢弃。

三、写入路径的三个成本

写入 = 编码(嵌入) + 落盘 + 建索引 + 可能的摘要生成 │ │ │ │ 可批量 可异步 可延迟 最贵,应抽样

实用建议:摘要在后台抽样生成,不要跟着写入同步做。同步生成会让写入路径的延迟成倍上升,而摘要的价值只在淘汰与长程检索时才体现,不需要实时。

四、检索路径的延迟构成

  • 候选生成:向量检索给出候选集,延迟与索引结构相关。
  • 精排:对候选做更精确的相似度或交叉编码打分,成本最高。
  • 拼接:把记忆与当前上下文组装,受限于上下文窗口。
  • 回捞:命中分层存储时按层级恢复。

四段中最容易被低估的是拼接:记忆条目越多,上下文被挤占得越厉害,最终表现为"记了很多但用不上"。

五、淘汰与压缩策略

策略依据优点风险
时间衰减最后访问时间实现简单误删长期有效信息
访问频次命中次数保留热点新信息无机会
重要性标注显式标记精准依赖标注质量
摘要替换压缩后保留节省空间有损,需可回溯

推荐组合是时间衰减 + 显式重要性:默认按时间衰减,被显式标记的信息不参与衰减。单用任何一种都容易走偏。

六、与推理调度的协同

记忆与推理共享显存,就必须共享预算。

显存预算分配: 活跃请求 KV ─────── 60% 记忆张量 ─────── 20% 权重与激活 ─────── 15% 安全余量 ─────── 5%

比例不是固定的,但必须有明确划分。没有划分时,记忆增长会悄悄挤占请求缓存,表现为"并发莫名下降"。

七、几个常被问到的问题

问:记忆能不能只存在磁盘上?

答:可以,但检索延迟会成为体验瓶颈。可行的折中是热记忆放显存、冷记忆放磁盘,用访问模式驱动迁移。

问:记忆需要多长才能看出效果?

答:取决于任务。对话类任务几百条就有效果,跨项目知识积累类需要更长时间。判断标准不是条数,而是检索命中后是否真的改变了输出。

问:记忆冲突怎么办?

答:保留冲突并标注重量级,而不是强制合并。直接覆盖会让系统丢掉"信息曾经变化"这一事实,后续推理容易出错。

问:压缩会不会丢掉关键细节?

答:会,所以压缩必须可回溯——保留原始张量的指针,允许按需取回。不可回溯的压缩在有损场景下风险很高。

问:怎么衡量记忆系统是否有效?

答:看三个指标:检索命中率、命中后的任务成功率、以及记忆占用的资源成本。只看命中率会鼓励无差别多存。

八、写入要批量化与合并

记忆写入的延迟主要来自多次小写入。把同一会话的多条记忆合并成一次批量写入,能显著摊薄开销。

合并需要解决顺序问题:同一实体的多次更新应按时间顺序合并成最终状态,同时保留变更记录。只留最终状态会丢失过程信息,只留全部变更会让存储膨胀,折中做法是保留最终状态加一条变更摘要。

九、记忆的权限与隔离

记忆一旦跨用户共享,就会带来越权风险。工程上需要三层隔离:用户级(默认只能读自己的记忆)、会话级(同一用户的跨会话读取需要显式授权)、以及共享级(显式发布的公共记忆)。

权限检查必须发生在检索阶段而不是拼接阶段——先按权限过滤候选,再做相似度排序,避免无权访问的内容先命中再被过滤,造成信息泄漏。

十、冷启动:记忆从哪来

新用户的记忆为空,系统表现会明显低于老用户。可行的冷启动手段有三种:从显式资料导入(用户主动提交的背景信息)、从公共知识预热(行业常识类记忆)、以及从首次会话快速提炼(把前几轮对话压缩成少量初始记忆)。

三种手段的成本与收益不同,通常组合使用。关键是让冷启动的记忆可被用户查看与修改,否则错误记忆会长期影响输出。

十一、记忆系统的观测指标

需要长期采集四项:写入量与其构成的分布、检索命中率、命中后的任务成功率、以及记忆占用的资源。

其中第二与第三项必须成对观察:命中率高但任务成功率低,说明召回的记忆不相关,检索策略需要调整,而不是继续增加记忆量。

十二、记忆的分层写入

写入路径应按重要性分层:高重要性的记忆同步写入并立即建索引,普通记忆异步批量写入,低价值的交互记录只做采样保留。

同步写入的比例应控制在很小范围内,否则写入延迟会直接体现在响应时间上。分层的判据建议由规则给出,例如显式标记的内容、用户明确要求记住的内容,属于同步层。

十三、记忆的一致性

同一事实在记忆中存在多个版本时,需要明确的取舍规则。常见做法是按时间戳取最新,但这在事实本身反复变化时会丢失信息。

更稳妥的做法是保留多条并标注时间与来源,在检索阶段根据问题的时间指向选择。对于本来就有时效性的事实,保留多条比强行合并更符合实际。

十四、记忆与上下文的配比

记忆条数与上下文窗口是竞争关系。记忆塞得越多,留给当前对话与文档的空间越小。这个配比需要按任务设定,而不是全局固定。

一个可用的起点是给当前输入保留不低于一半的窗口,剩余部分按相关性分配给记忆。运行中观察"因上下文不足而被截断"的比例,据此调整配比。

十五、记忆的评测方式

记忆系统的评测不能只看检索指标。需要构造三类测试:跨会话召回(之前说过的事实能否被正确引用)、冲突处理(事实更新后是否采用新版本)、以及无干扰(无关记忆是否被误引入回答)。

三类测试都不通过复杂基础设施即可实现,但能有效区分"记忆存了"和"记忆有用"这两件常被混为一谈的事。

十六、再答几个问题

问:记忆会不会让模型变固执?

答:会,如果检索总是命中旧结论。缓解方式是让记忆带时间与来源,并在回答时区分事实与曾经的事实。系统需要能表达变化,而不只是表达当前状态。

问:记忆条目怎么定粒度?

答:以可独立检索为准。一条记忆应该表达一个可被单独使用的信息单元,过长会稀释相似度,过短会丢失上下文。实践中同一事实的不同侧面分开存,通常比合并成一条更好用。

问:要不要给用户看系统记住了什么?

答:建议可以查看。可见性是信任的前提,也是纠错的前提。用户能修正错误记忆时,系统会更快收敛到正确状态。

问:记忆规模增长带来的成本怎么控制?

答:靠淘汰与压缩两条路并行。淘汰解决数量,压缩解决体积。两条路都要有可观测指标,否则容易在某一侧堆积到不可控。

十七、补充说明

问:记忆系统的失败模式有哪些?

答:三类最常见:检索到不相关内容导致答非所问、记忆过时导致结论陈旧、以及记忆挤占上下文导致当前信息被截断。三类都需要独立指标才能及时发现。

问:要不要限制记忆总量?

答:建议设上限并做成可调参数。无上限的记忆增长会缓慢侵蚀性能,而这种侵蚀在早期很难被察觉,等到发现问题时往往已经积累了大量低价值内容。
问:记忆该不该跨设备同步?

答:建议同步,但只同步显式记忆与摘要,不同步原始会话张量。显式记忆体积小、语义清晰,跨设备价值高;原始张量体积大且依赖具体上下文,同步后反而容易引发不一致。

十八、衔接大会专题

11 月 20-21 日,北京万达文华酒店,2026 奇点智能技术大会的智能体应用创新与 AI Infra 专题会讨论记忆系统与资源调度;C++ 及系统软件技术大会则从内存布局、缓存策略角度给出系统实现视角。

带着"我们的记忆占了多少显存、挤掉了多少并发"这个问题去参会,答案通常比想象中更值得关注。


大会信息
2026 奇点智能技术大会 + C++ 及系统软件技术大会
时间:2026 年 11 月 20-21 日
地点:中国·北京万达文华酒店
大会报名:点击报名,领取大会PPT资料

立即报名,锁定 Lukasz Kaiser Keynote 与 70+ 场演讲完整资料!

返回列表