先这样答
我会把记忆分成工作记忆、情景记忆和长期画像三层。工作记忆保存当前窗口内的对话。窗口超限时,我会截断内容,或者先做摘要。这样可以控制当前输入的长度。
情景记忆保存历史会话。系统把历史会话向量化,在当前问题需要时按语义检索。长期画像保存用户较稳定的偏好。它采用结构化方式存入数据库,并在会话开始时注入上下文。三层记忆分别服务当前对话、历史经历和用户偏好,避免把所有历史内容都放进当前窗口。
写入发生在会话结束时。系统提炼本次对话中的关键事实。新信息和旧信息冲突时,以新信息覆盖旧信息,同时保留审计记录。检索时,我会把语义相似度和时间衰减结合起来加权。评测时,我会看记忆命中率,也会做任务增益对照实验,比较使用记忆和不使用记忆时的任务结果。
面试官会怎么追问
-
「三层记忆为什么不能合并成一个存储?」 工作记忆服务当前窗口,内容会随对话推进变化。情景记忆按需检索历史会话。长期画像保存结构化偏好,并在会话开始注入。三者的保存方式和使用时机不同,合并后不利于控制上下文内容。
-
「如果新旧记忆发生冲突,你怎么处理?」 我会让新信息覆盖旧信息。旧信息不直接删除,而是保留审计记录。这样当前使用的画像保持最新,也能追踪记忆发生过怎样的变化。
-
「你怎么证明记忆真的有用?」 我会先统计记忆命中率,确认系统是否检索到了需要的内容。再做任务增益对照实验,比较使用记忆和不使用记忆时的任务结果。两个指标需要一起看。
回答的坑
- 只说把历史对话全部保存并塞进上下文,没有区分三层记忆和窗口限制。
- 只讲记忆如何存取,没有说明冲突处理和任务增益对照实验。
同系列的题
—— 本题完 ——