大模型的记忆和上下文有什么区别?为什么不能把历史一直塞进窗口?
简化版
上下文是本次推理可见的 token;记忆通常是系统在外部存储中保存、检索并注入的历史信息。一直塞历史会增加成本、稀释注意力、带来隐私风险,也可能让旧信息覆盖新指令。
详细版
- 模型权重里的知识不是用户会话记忆,推理时不会自动保存新事实。
- 短期上下文适合当前任务,长期记忆适合偏好、身份、项目事实等可复用信息。
- 长期记忆需要写入策略、检索策略、过期机制和用户可控性。
- 历史消息应摘要、筛选或检索,而不是无限追加。
- 敏感数据要有权限、脱敏和删除能力。
完整版教学
这道题考察候选人是否能区分模型能力、上下文管理和产品记忆系统。
一、这题真正考什么
这道题考察候选人是否能区分模型能力、上下文管理和产品记忆系统。
面试官通常不是想听一个孤立定义,而是想看你能不能把概念、工程约束、质量风险和排查方法串起来。回答时先给边界,再讲机制,最后落到评估指标。
二、核心机制怎么工作
LLM 每次生成只基于当前输入上下文和模型参数。产品里说的“记忆”通常是数据库、向量库或用户画像,在下一次请求前被检索出来放回上下文。它提升连续性,但也引入召回错误、隐私合规和冲突处理问题。
需要特别注意的是,这类问题通常有“模型侧”和“系统侧”两层含义。模型侧解释原理,系统侧解释为什么上线后会遇到成本、延迟、质量或安全问题。
三、带数字的拆解
一个客服会话积累了 60000 token 历史,但当前模型有效预算只有 16000 token。系统可以保留最近 3000 token、检索 5 条相关长期记忆、再加一段 800 token 摘要,而不是原样塞入全部对话。
这个数字例子在面试里很有用,因为它能把抽象概念变成可估算的工程量。候选人如果能主动算出量级,通常比只背定义更有说服力。
可用上下文 = 窗口上限 - 系统提示 - 工具描述 - 当前问题 - 输出预算
记忆命中率 = 被正确检索的有用记忆数 / 应被使用的记忆数
历史压缩率 = 摘要 token 数 / 原始历史 token 数
四、流程图和工程落点
可以把它拆成下面这条链路来讲:
用户新请求
|
读取短期对话
|
检索长期记忆
|
冲突与权限过滤
|
拼装上下文
|
模型回答并按策略写回记忆
工程落点通常包括三件事:第一是输入输出边界,第二是运行时成本,第三是质量验收。只要这三件事没有闭环,原理讲得再漂亮也很难变成可靠系统。
五、和相近方案怎么区分
| 概念 | 存放位置 | 生命周期 |
|---|---|---|
| 上下文 | 本次请求 token | 一次推理 |
| 权重知识 | 模型参数 | 训练后长期存在 |
| 长期记忆 | 外部存储 | 按产品策略保留 |
| 摘要历史 | 会话状态 | 随对话更新 |
面试时不要只说“看场景”。更好的回答是先给出区分维度,再说明每个方案为什么适合或不适合某类约束。
六、上线或训练时最容易踩的坑
- 旧记忆可能过期,使用前要允许新信息覆盖旧信息。
- 不要把敏感信息默认写入长期记忆,尤其是身份、财务和健康数据。
- 只在 demo 样本上验证会低估真实风险,尤其是长文本、多轮、结构化输出和安全边界。
- 指标要和业务目标绑定,否则可能出现离线分数提升、线上体验下降的情况。
七、常见误区与追问
- 误区:模型聊过一次就会永久记住。 面试中要主动补上边界条件和工程后果,避免把概念讲成绝对结论。
- 误区:把所有历史塞进上下文最可靠。 面试中要主动补上边界条件和工程后果,避免把概念讲成绝对结论。
- 误区:向量检索出来的记忆一定相关。 面试中要主动补上边界条件和工程后果,避免把概念讲成绝对结论。
- 追问:长期记忆应该什么时候写入? 可以从数据、算法、系统和评测四个角度展开,先说判断标准,再说取舍。
- 追问:如何处理用户要求删除记忆? 可以从数据、算法、系统和评测四个角度展开,先说判断标准,再说取舍。
- 追问:记忆和 RAG 知识库有什么区别? 可以从数据、算法、系统和评测四个角度展开,先说判断标准,再说取舍。
八、加强记忆
记住“上下文是桌面,记忆是档案柜”。回答前从档案柜取必要材料放到桌面,桌面大小有限,档案也要能更新和清理。
复习时建议按“定义、机制、数字、流程、对比、风险”六步默写一遍。能把这六步讲顺,就能覆盖大多数追问。