大模型ReAct:思考与工具协同完成复杂任务推理

什么是ReAct框架

在使用langchain的过程中,大模型给人留下最深刻的印象无疑是Agent功能。大模型会自己分析问题,选择合适的工具,最终解决问题。这个功能背后的原理就是来自ReAct框架。

ReAct是Reasoning and Acting(也有一说是Reason Act)缩写,意思是LLM可以根据逻辑推理(Reason),构建完整系列行动(Act),从而达成期望目标。LLM灵感来源是人类行为和推理之间的协同关系。人类根据这种协同关系学习新知识,做出决策,然后执行。LLM模型在逻辑推理上有着非常优秀的表现,因此有理由相信LLM模型也可以像人类一样进行逻辑推理,学习知识,做出决策,并执行。在实际使用中,LLM会发生幻觉和错误判断的情况。这是因为LLM在训练的时候接触到的知识有限。因此对超出训练过程中使用的数据进行逻辑分析时,LLM就会开始不懂装懂地编造一些理由。因此对于解决这个问题最好的办法是,可以保证LLM模型在做出分析决策时,必须将应该有的知识提供给LLM。

ReAct方式的作用就是协调LLM模型和外部的信息获取,与其他功能交互。如果说LLM模型是大脑,那ReAct框架就是这个大脑的手脚和五官。同时具备帮助LLM模型获取信息、输出内容与执行决策的能力。对于一个指定的任务目标,ReAct框架会自动补齐LLM应该具备的知识和相关信息,然后再让LLM模型做出决策,并执行LLM的决策。

它是如何运作的

### ReAct框架在语言模型中的协同推理行动 ReAct 是一种旨在增强语言模型能力的框架,它通过允许模型执行动态推理来创建、维护并调整行动计划,从而实现更高效的决策过程[^2]。具体来说,在 ReAct 的设计中,模型被赋予了两种核心功能:**推理(Reasoning)** 和 **行动(Action-taking)**。 #### 推理模块的功能 推理模块负责分析当前环境状态以及历史交互数据,生成高层次的战略规划或中间目标。这种推理可以基于输入上下文进行复杂逻辑推导,并预测可能的结果。例如,当面对复杂的多步任务时,推理部分会分解整个流程为若干子任务,并制定初步方案。 #### 行动模块的作用 一旦制定了策略或者明确了下一步方向之后,就需要采取实际行动去改变外部世界的状态或者是获取更多信息以便进一步优化后续步骤的选择。因此,行动模块依据来自推理层给出的具体指示完成实际操作——这可能是查询数据库、调用API接口亦或是物理机器人移动等不同类型的动作表现形式。 #### 动态反馈机制 值得注意的是,ReAct 并不是一次性地决定所有的行为序列;相反,它是持续监控每一步的效果并通过观察新产生的结果来进行自我修正的过程。这意味着即使最初的假设存在偏差甚至完全错误的情况下,该系统也能够及时发现这些问题所在之处并对原定计划作出相应修改直至达成最终目的为止。 ```python def react_framework(environment_state, history): while not goal_achieved(): reasoning_output = perform_reasoning(environment_state, history) action_to_take = determine_action(reasoning_output) new_environment_state, feedback = execute_and_observe(action_to_take) update_history(history, reasoning_output, action_to_take, feedback) def perform_reasoning(state, hist): # Complex logic to derive insights from state & history. pass def determine_action(insights): # Map derived insights into actionable steps. pass def execute_and_observe(action): # Execute an action and observe its effects on environment. pass def update_history(hist, r_out, a_taken, fbk): # Update internal records with latest information. pass ``` 上述伪代码展示了 ReAct 框架的一个简化版本工作流。其中包含了循环结构用于不断迭代直到满足终止条件即达到预定的目标位置;每次循环内部先做思考再付诸实践最后收集经验教训准备下一轮尝试。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

越哥聊AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值