AssisTRAG通过集成一个智能信息助手 来提升LLMs处理复杂推理任务的能力。该框架由两个主要组件构成:一个冻结的主语言模型 和一个可训练的助手语言模型 。
AssisTRAG与之前的RAG对比
- 组件
- 主语言模型(Main LLM) :负责根据提供的信息生成答案。这个模型是固定的,不进行训练。
- 助手语言模型(Assistant LLM) :负责信息管理,包括记忆管理和知识管理。这个模型是可训练的。
可以看出,相比之前的RAG,该框架主要创新点是引入一个Assistant LLM,下面详细看下助手语言模型功能。
- AssisTRAG
AssisTRAG主要分为两个类别来处理复杂任务:记忆管理和知识管理。记忆管理涉及整合和分析来自内部内存的内容,而知识管理则侧重于利用外部知识。这两个主要功能由AssisTRAG的四个核心能力支持:
- 工具使用(Tool Usage) :从内部记忆和外部知识库中检索相关信息。
- 动作执行(Action Execution) :进行推理、分析信息需求并提取知识。
- 记忆构建(Memory Building) :记录从历史交互中提取的关键知识和推理模式。
- 计划指定(Plan Specification) :确定在答案生成过程中每个步骤的必要性。
2.1 记忆管理
记忆管理模块通过存储和检索历史交互来提升主语言模型的性能。有效的记忆管理包括两个主要过程:捕获新见解和检索先前存储的信息 。这两个过程主要有以下三个能力:
- Action I: 笔记记录
笔记记录功能 负责记录每个历史交互中的关键信息和推理模式。具体来说,给定主语言模型的历史交互(包括问题 、参考答案 和生成的答案 ),助手的任务是将答案背后的关键推理过程记入记忆槽 中:
这样,所有先前问题的记忆槽累积起来形成助手的记忆 ,用于后续的记忆检索。
作用 :通过记录和存储历史交互中的关键推理过程,助手能够在面对类似问题时快速检索和应用这些推理模式,从而提高回答的质量和效率。
- Tool I: 记忆检索器
记忆检索器利用助手的记忆 ,根据当前问题 检索历史上相关的记忆。具体来说,记忆检索器会检索与当前问题相关的历史记忆,并将其表示为:
作用 :通过从记忆中检索相关历史记忆,助手可以为当前问题提供额外的上下文和信息,帮助主语言模型更好地理解和回答问题。
- Plan I: 评估检索记忆的有用性
如果问题是全新的,检索到的记忆可能不仅无助于回答,还可能负面影响主语言模型的响应。因此,助手需要评估检索到的记忆是否对当前问题有帮助。具体来说,助手使用一个提示来评估检索到的记忆是否有助于回答当前问题。只有当答案是肯定的时候,检索到的记忆才会被提供给主语言模型。
实现:通过一个提示,助手评估检索到的记忆是否对当前问题有益。如果评估结果是肯定的,这些记忆槽将被提供给主语言模型。
作用 :这一计划确保了只有相关的记忆会被提供给主语言模型,避免了无关或负面的记忆干扰回答的质量。
2.2 知识管理
知识管理涉及以下四个能力:
- 动作 II:问题分解
- 功能 :将当前问题分解为多个子查询,以便从不同方面检索知识。
- 实现 :给定一个问题 ,动作 将其分解为一系列子查询 。例如,问题“音乐家和讽刺作家Allie Goertz写了一首关于《辛普森一家》角色Milhouse的歌曲,Matt Groening是根据谁的名字命名的?”可以被分解为:
- 子查询1:Allie Goertz写了一首关于《辛普森一家》角色Milhouse的歌曲。
- 子查询2:Matt Groening是根据谁的名字命名了Milhouse?
- 工具 II:知识检索器
- 功能 :利用子查询 从外部知识库中检索相关文档。
- 实现 :使用子查询 ,知识检索器从外部知识库 中检索相关文档,表示为 。例如,子查询1和子查询2将被用来从维基百科等外部数据库中检索与Allie Goertz和Milhouse相关的文档。
- 动作 III:知识提取
- 功能 :从检索到的文档中提取关键知识。
- 实现 :给定问题 和检索到的文档 ,动作 负责从中提取相关知识 。例如,从检索到的文档中提取出:
- Allie Goertz 是一位美国音乐家和讽刺作家。
- Milhouse 是《辛普森一家》中的一个虚构角色,由Matt Groening创造,并以意大利独裁者Benito Mussolini命名。
- 计划 II:评估提取知识的相关性
- 功能 :确保提供给主语言模型的信息准确且相关。
- 实现 :助手通过提示评估提取的知识是否与当前问题相关。只有当提取的知识被认为对回答问题有帮助时,才会将其提供给主语言模型。
2.3 AssisTRAG 训练
AssisTRAG 的训练过程分为课程助理学习和强化偏好优化 两个阶段。课程学习阶段通过逐步增加任务复杂性来提升助手在 RAG 过程中的技能。强化偏好优化阶段则通过根据主 LLM 的反馈调整助手的输出,确保助手提供的帮助更加贴合主 LLM 的需求。
2.4 AssisTRAG 推理
AssisTRAG 通过三个步骤启动其推理过程:
- 信息检索与整合
在这个初始阶段,AssisTRAG 首先激活 Action II 来理解主 LLM 的信息需求。然后,它使用 Tool I 和 Tool II 分别从内部记忆和外部知识库中检索相关信息。接着,它调用 Action III 从检索到的文档中提取关键知识。
- 决策
在这一阶段,AssisTRAG 决定是否将检索到的记忆和提取的知识提供给主 LLM。它激活 Plan I 和 Plan II 来评估这些检索到的记忆和知识对当前问题的相关性和有用性。如果助手认为这些信息有帮助,它们将被提供给主 LLM 以辅助回答生成。
- 回答生成与记忆更新
在最后阶段,AssisTRAG 提示主 LLM 根据问题、其内部知识和助手提供的信息生成答案。之后,AssisTRAG 激活 Action I,利用其笔记功能,捕捉交互中的关键推理步骤并将其纳入其记忆中。这确保了助手的知识库保持最新。
实验效果
参考文献
Boosting the Potential of Large Language Models with an Intelligent Information Assistant,https://arxiv.org/pdf/2411.06805v1