当企业尝试将大语言模型用于长期、多会话的AI代理部署时,传统的RAG(检索增强生成)管道往往会失效。伦敦国王学院和艾伦图灵研究所的研究人员提出了一种名为xMemory的新技术,通过将对话组织成可搜索的语义主题层次结构,成功将AI代理的token使用量从9000多个降低到约4700个。
为什么传统RAG不适用
在企业LLM应用中,系统通常需要跨长时多会话交互保持连贯性和个性化。常见做法是使用标准RAG:存储过去的对话和事件,基于嵌入相似性检索固定数量的匹配项,拼接后输入上下文窗口生成答案。
但传统RAG是为大规模多样化文档数据库设计的,主要挑战是过滤不相关信息。而AI代理的记忆是一个有界的连续对话流,存储的数据块高度相关且经常包含近似重复内容。
论文合著者Lin Gui解释:”如果检索坍缩到嵌入空间中最密集的集群,代理可能会获取大量关于偏好的相似段落,而错过回答实际问题所需的分类事实。”
四级层次结构设计
xMemory将原始对话流持续组织成一个结构化的四级层次:
- 基础层:原始消息
- 剧集层:将连续消息摘要为相邻块
- 语义层:从剧集中提炼可复用的独立事实,从重复聊天日志中分离核心长期知识
- 主题层:将相关语义分组为高层主题,便于搜索
xMemory使用特殊的目标函数持续优化分组,防止类别过于臃肿(减慢搜索)或过于碎片化(削弱模型聚合证据和回答问题的能力)。
不确定性门控机制
当收到提示时,xMemory在层次结构中执行自上而下的检索。它从主题和语义层开始,选择多样化、紧凑的相关事实集。这对用户查询经常需要跨多个主题收集描述或链接相关事实进行复杂多跳推理的实际应用至关重要。
获得高级事实骨架后,系统通过”不确定性门控”控制冗余:只有当具体细节能够显著降低模型不确定性时,才深入到剧集或消息层拉取原始证据。
Gui解释:”语义相似性是候选生成信号;不确定性是决策信号。相似性告诉你附近有什么。不确定性告诉你什么真正值得在提示预算中付费。”当检测到添加更多细节不再有助于回答问题时,系统停止扩展。
实验效果显著
在长上下文任务的实验中,配备xMemory的开源和闭源模型都超过了其他基线,使用了显著更少的token同时提高了任务准确性。
不过,这种高效检索也带来了前期成本。与廉价地将原始文本嵌入转储到数据库的标准RAG管道不同,xMemory需要执行多个辅助LLM调用来检测对话边界、摘要剧集、提取长期语义事实、合成高层主题。此外,xMemory的重构过程还会增加额外的计算需求。
适用场景指南
Gui建议:”xMemory在系统需要跨越数周或数月交互保持连贯性时最具说服力。”客服代理是理想用例,因为需要记住稳定的用户偏好、历史事件和账户特定上下文,而无需反复拉取近似重复的支持工单。个性化辅导是另一个理想场景,需要AI将持久用户特征与日常细节分离。
相反,如果企业构建与文档库(如政策手册或技术文档)聊天的AI,”更简单的RAG栈仍是更好的工程选择”。在这些静态、以文档为中心的场景中,语料库足够多样化,标准最近邻检索就能良好工作。
开源可用
xMemory代码已在GitHub上以MIT许可证公开发布,支持商业用途。对于开发者,Gui建议:”首先要构建的最重要东西不是更花哨的检索提示。而是记忆分解层。如果只能做好一件事,先做好索引和分解逻辑。”
发表回复