AI代理的语义记忆搜索

AI代理的语义记忆搜索

💡 原文英文,约1900词,阅读约需7分钟。
📝

内容提要

Redis 通过向量嵌入实现语义记忆搜索,存储和检索事实,使AI代理能跨会话记住用户偏好,避免重复提问。相比关键词搜索,它更擅长处理同义表达,但需结合混合搜索弥补盲区。快速检索和新鲜度至关重要,Redis 提供低延迟和更新机制,减少推理成本,提升用户体验。

🔎

延伸解读

为什么关键词搜索会漏掉同义表达

文章指出,基于词项重叠的BM25等关键词搜索方法,在面对同义表达时可能产生零匹配。例如,用户先说“我因为钱紧张”,几周后说“担心财务状况”,两者没有关键词重叠,但语义搜索能通过向量位置相近而检索到之前的记忆。因此,生产系统常采用混合搜索,结合向量相似度与全文排名,以覆盖彼此的盲区。

记忆新鲜度:被忽视的隐患

文章强调,记忆的时效性比检索速度更关键。一项诊断发现,召回的前三条记忆中,60.5%包含过时证据,但只有3.3%被标记为需要更新。模型在识别记忆失效方面表现不佳,最佳模型在STALE基准上的准确率仅55.2%。因此,新鲜度必须在记忆层处理,而非依赖模型在推理时判断,否则过时事实会误导当前响应。

检索延迟的放大效应

文章指出,若系统在每轮对话都查询记忆,检索延迟会被多次叠加。交互界面中,0.1秒响应近乎即时,而接近1秒的延迟会打断用户流畅度。语音代理要求更严,部分评估目标为低于200毫秒。Redis通过子毫秒级核心操作和混合搜索支持,旨在满足这种高频检索需求,但向量搜索延迟取决于索引、数据集和部署。

Q&A

什么是语义记忆搜索?

语义记忆搜索是一种通过向量嵌入按意义而非精确措辞从长期存储中检索事实的方法。它由两部分组成:语义记忆(存储)和搜索过程(检索)。

为什么关键词搜索在AI代理记忆中常常不够用?

关键词搜索(如BM25)基于词项重叠评分,因此当用户用不同词语表达相同意思时(例如“我担心钱”和“担心财务”),可能产生零匹配。语义搜索通过将相似含义映射到相近的向量位置来克服这一局限。

AI代理如何实现跨会话记住用户偏好?

AI代理通过将事实存储在外部语义记忆库中,并在需要时通过向量相似性检索来实现跨会话记忆。写入时,从对话中提取事实并嵌入为向量存储;读取时,嵌入查询并检索最相似的向量作为上下文。

为什么记忆的新鲜度对AI代理很重要?

记忆的新鲜度很重要,因为过时的信息可能导致错误响应。例如,用户可能已更改订单状态,但代理仍使用上周的数据。研究表明,模型自身难以识别记忆是否过时,因此必须在记忆层处理新鲜度。

Redis如何支持语义记忆搜索?

Redis通过Redis Search提供向量搜索和混合搜索(结合全文和向量),并通过Redis Agent Memory提供两层记忆设计:会话记忆和长期记忆。Redis还提供语义缓存(LangCache)以减少推理成本。

语义记忆搜索相比重新发送完整历史有什么优势?

相比重新发送完整历史,语义记忆搜索通过选择性检索相关事实,避免上下文过长导致的注意力分散和混淆,同时减少推理成本。

混合搜索在语义记忆中的作用是什么?

混合搜索结合向量相似性和全文排名,以覆盖彼此的盲点。例如,向量搜索擅长同义表达,而关键词搜索擅长精确标识符和罕见术语。混合搜索确保单一方法失败时仍能检索到正确记忆。

语义记忆搜索如何降低推理成本?

通过语义缓存,当新查询与已回答的查询含义相同时,可以直接返回缓存结果,避免调用LLM。Redis LangCache报告在高重复工作负载下可降低高达73%的推理成本。

🏷️

标签

➡️

继续阅读