大模型---Reflexion
目录
1.Reflexion的定义
2.Reflexion
3.论文的优/缺点
4.与ReAct,Self-Refine,LATS的关系
参考论文1:[2303.11366] Reflexion: Language Agents with Verbal Reinforcement Learning
参考论文2:1b44b878bb782e6954cd888628510e90-Paper-Conference.pdf
1.Reflexion的定义
很多 LLM agent 虽然能调用工具、与环境交互,但通常只会依赖 few-shot 提示或单条生成轨迹;而传统 RL 又很贵、样本需求高、微调成本大。作者想找一个折中方案:不训练新权重,但让 agent 能从试错中快速积累经验。所以他们把环境给的 binary/scalar feedback 放大成可操作的自然语言经验总结,相当于给模型一个“语义梯度”。
Reflexion的主张不是通过梯度更新模型权重来学,而是把环境反馈转成自然语言反思,写入记忆,作为下一轮尝试的上下文,也就是在每轮失败后写出一段“我哪里错了、下次该怎么改”的文字,再把这段文字塞回上下文,影响下一轮行为。从而让agent在推理时“越试越会”。论文明确说,这种做法的优势包括:不需要微调、能表达比标量 reward 更细腻的反馈、带来更显式更可解释的 episodic memory;但它也依赖 LLM 的自评/反思能力,而且没有形式化成功保证。为什么论文中把它叫做“verbal reinforcement learning”,传统RL是:① 轨迹,② reward,③ 参数更新;Reflexion 则变成:① 轨迹,② reward,③ 语言化总结,④ 记忆注入。也就是论文会将反馈最后都会被“放大”为自然语言经验总结,供下一轮使用。
2.Reflexion
Reflexion由4个模块组成:
(1)Actor
Actor 是真正执行任务的 LLM,负责生成文本和动作。论文里用过两类 Actor:CoT和ReAct。如果是推理题,Actor 更像CoT;如果是交互环境、API、检索、代码执行,它更像ReAct。
(2)Memory
Reflexion同时用短期记忆和长期记忆。短期记忆:trajectory,即当前轨迹本身。长期记忆:每轮self-reflection生成的经验总结。Actor在下一轮会同时读取这两种记忆。论文里长期记忆通常只保留一个滑动窗口,上限一般是1-3条经验,这是为了适配上下文长度限制。
(3)Evaluator
Evaluator 负责打分。它输入当前trial的trajectory,然后输出reward。不同任务用的evaluator不同:推理任务用exact match;决策任务可用手工heuristic或另一个LLM做分类/评分;编程任务则依赖 unit tests/compiler/ execution feedback。
(4)Self-Refle
