思维与记忆的双RAG引擎
- ASSISTRAG:思维和记忆的双RAG引擎
- 训练代码和数据:https://github.com/smallporridge/AssistRAG
生动解读
ASSISTRAG就像一位贴心助手,帮你整理工作资料,还时刻留意重要事项。遇上难题时,它会把问题拆解成一个个小的、容易解决的部分,再帮你找到所需信息。
下面,我们深入了解一下。
背景
早期的RAG方法,像“检索-读取”框架,处理复杂推理任务时不太给力。后来,基于提示的RAG策略和监督微调(SFT)方法虽然提升了性能,但需要频繁重新训练,还可能会改变基础大语言模型(LLM)的能力。
ASSISTRAG引入了集成内存和知识管理的智能信息助手,弥补了LLM在信息准确性和推理深度上的不足。如图1所示,该方法由一个可训练的信息管理助手和一个负责执行任务的静态主LLM组成。
概述
图2展示了ASSISTRAG的整体架构。ASSISTRAG通过提供智能信息助手来强化LLM。它具备工具使用、动作执行、内存构建和计划制定的能力,能实现高效的内存和知识管理。(资料来源:ASSISTRAG)
从图2可见,ASSISTRAG主要处理两项关键任务:用于存储和检索过往交互信息的内存管理,以及用于获取外部信息以辅助回复的知识管理。它有四大功能:
- 工具使用:从内存和知识库中检索信息。
- 动作执行:进行推理和知识分析。
- 记忆构建:记录过去交互中的关键知识。
- 计划规范:判断何时需要提供帮助。
训练
图4呈现了ASSISTRAG的训练框架。它通过课程助理学习和强化偏好优化,分两个阶段进行训练。(资料来源:ASSISTRAG)
ASSISTRAG采用两阶段训练策略,在不修改核心LLM的前提下,提升检索效率,优化生成内容的质量。
- 课程助理学习:借助结构化课程逐步训练系统,课程从简单任务逐步过渡到复杂任务,注重让系统随着时间深入掌握知识。
- 强化偏好优化:基于主LLM的反馈,运用直接偏好优化(DPO)方法调整ASSISTRAG的输出,确保与LLM的特定需求相契合。
实施与案例研究
关于具体实施,详细信息见图5。
图6通过“丹尼·格林(Danny Green)和詹姆斯·沃西(James Worthy)谁年纪更大?”这一案例研究,展示了AssistRAG对比较类问题的处理方式。
系统会把这个问题拆解成有关出生日期的子问题,检索并筛选相关信息,同时从记忆中获取相似的过往问题及其答案。通过整合提取的知识和记忆检索结果,AssistRAG得出结论:詹姆斯·沃西(生于1961年2月27日)比丹尼·格林(生于1987年6月22日)年纪更大。
评论
ASSISTRAG采用了一种创新方式,将主LLM和辅助系统分离。这种分离,再加上更出色的信息查找和问题解决方法,使其成为一项意义重大的新进展。
在我看来,辅助系统在训练和推理过程中会增加额外的计算量,这可能是个挑战。研究能降低延迟且不明显牺牲准确性的轻量级实施方案或混合模型,将提升其吸引力。
此外,目前系统的决策过程对用户并不透明,这在一些高风险领域(如医疗、金融等)可能引发信任问题。为解决这一问题,我们可以让内存检索和知识整合的流程更加透明。比如,通过交互式界面展示检索到的信息及其来源,让用户能够干预或调整决策。
而且,我们如何确保内存系统只保留最有用、最新的信息呢?如果系统内存中留存旧信息或错误信息,可能会导致错误决策和推理失误。可能的改进措施包括实施内存衰减策略、依据用户反馈确定保留哪些记忆,以及构建区分短期、长期和关键记忆的分层内存结构。
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。