-
Notifications
You must be signed in to change notification settings - Fork 7
推理模式
ReAct模式是最早出现的Agent设计模式,目前也是应用最广泛的。从ReAct出发,有两条发展路线:一条更偏重Agent的规划能力,包括REWOO、Plan & Execute、LLM Compiler;另一条更偏重反思能力,包括Basic Reflection、Reflexion、Self Discover、LATS。
illufly中将实现所有这些推理模式。
ReAct的概念来自论文《ReAct: Synergizing Reasoning and Acting in Language Models》,提出了一种结合语言模型中的推理(reasoning)和行动(acting)来解决多样化语言推理和决策任务的方法。ReAct提供了一种更易于人类理解、诊断和控制的决策和推理过程。
ReAct的核心思想是模拟人类思考和行动的过程,通过Thought、Action、Observation的循环,一步步解决目标问题。
ReAct模式存在以下不足:
- LLM大模型的通病,即产出内容不稳定,对复杂问题的分析和解决存在波动。
- 成本高,无法控制输入内容,复杂任务可能导致Token过量消耗。
- 响应时间长,LLM响应时间是秒级以上,且在ReAct模式下更加不可控,需要采用异步方式,影响用户体验和应用场景选择。
REWOO的全称是Reason without Observation,旨在通过以下方式改进ReACT风格的Agent架构:
- 生成一次性使用的完整工具链,减少token消耗和执行时间。
- 简化微调过程,规划数据不依赖于工具的输出。
ReWOO架构主要包括三个部分:
- Planner:规划器,负责将任务分解并制定蓝图。
- Worker:执行器,根据蓝图使用外部工具获取更多证据或执行具体动作。
- Solver:合并器,将所有计划和证据结合,形成最终解决方案。
相比ReAct,ReWOO的创新点包括:
- 分离推理与观察,减少Token消耗。
- 模块化设计,提高系统扩展性和效率。
- 提升效率,实验结果表明REWOO不仅提升了准确率,还显著降低Token消耗。
- 工具调用的鲁棒性,即使工具失效,仍能提供有效解决方案。
REWOO的缺陷在于依赖于Planner的规划能力,复杂任务初始阶段难以制定合理计划。需要规划调整机制,根据环境反馈不断调整计划。
Plan-and-Execute在ReWOO基础上加入了Replan机制,即在计划执行过程中,根据实际条件和反馈重新调整计划。其架构包含:
- 规划器Planner:生成多步计划。
- 执行器:执行规划中的步骤,调用工具完成任务。
- 重规划器Replanner:根据执行情况和反馈调整计划。
Plan-and-Execute的优点是具备明确的长期规划,降低执行成本。局限性在于任务按顺序执行,可能导致总执行时间增加。改进办法是将任务表示为有向无环图DAG,实现并行执行。
LLM Compiler是伯克利大学SqueezeAILab于2023年12月提出的新项目,基于ReWOO引入的变量分配,进一步训练大语言模型生成DAG类的规划,实现任务并行执行,加速AI Agent完成任务的速度。
LLM Compiler设计模式主要组件:
- Planner:输出DAG任务,每个任务包含工具、参数和依赖项列表。
- Task Fetching Unit:调度并执行任务,满足依赖性后安排任务。
- Joiner:根据历史记录决定是否响应最终答案或将进度传递回Planner。
Basic Reflection类似于左右互搏,Generator生成结果,Reflector审查并给出建议。适合内容生成类工作,如文章写作、图片生成、代码生成。缺陷包括:
- 复杂问题需要更强推理能力。
- 生成结果可能过于发散。
- Generator和Reflector循环次数难以定义,次数太少效果不理想,次数太多消耗大。
优化方法包括Self Discover模式和Reflexion模式。
Self-Discover由Google研究人员提出,允许大型语言模型在没有明确标签情况下,自主选择并组合原子推理模块,生成推理结构。包含两个阶段:
- 自发现特定任务的推理结构:选择、适应和实施。
- 应用推理结构:模型遵循结构逐步填充JSON中的值,直到得出最终答案。
Reflexion是Basic Reflection的升级版,结合强化学习。架构包括Responder和Revisor,Responder自带批判式思考,Revisor以此为参考修改初始回答,并引入外部数据评估回答准确性。适合需要从尝试和错误中学习、传统强化学习方法失效、需要细致反馈的情况。限制包括依赖自我评估能力和长期记忆限制。
LATS(Language Model-Augmented Tree Search)结合树搜索和语言模型,通过逐步推理和反馈解决问题。LATS使用蒙特卡罗树搜索(MCTS)算法,工作流程包括选择、扩展、评估、模拟、回溯和反思。LATS适合处理复杂任务,但使用更多计算资源,完成任务时间更长。
illufly 的推理模式设计基于以下原则:
- 对话过程的自然性和流畅性:注重对话的自然性和流畅性,能够将中间过程作为流输出反馈到前端,并通过超时设定或人类介入来终止不必要的对话轮次。
- 多智能体协作:适用于整合到 illufly 的多智能体协作框架,确保智能体之间高效协作,完成复杂任务。
- 自我迭代的改进:自动收集智能体的反思能力和规划能力的评测依据和微调依据,确保智能体可以不断优化和提升。
- 安全性和隐私保护:内置多层次安全机制,确保用户数据安全和隐私保护。
在满足这些设计原则的基础上,illufly 将实现上述所有推理模式,致力于打造一个高效、灵活、安全且易用的智能体开发平台,满足各种复杂应用场景的需求。