反思和自我纠正剂
反思是一种技术,人工智能代理以书面形式反思自己的失败,并将这些教训反馈到下一次尝试中。
概述
它很重要,因为它让代理能够在不重新训练底层模型的情况下改进任务。
深入探讨
Shinn 及其同事在 2023 年发表的一篇论文中介绍了反射,它为智能体提供了一个循环:它尝试一项任务,接收有关其表现的信号(测试结果、奖励或批评),然后编写一个简短的自然语言“反射”,解释出了什么问题以及下一步要尝试什么。该反射被存储在内存中并添加到下一次尝试的提示中。至关重要的是,模型的权重永远不会改变;学习完全以文本形式发生在上下文窗口中。这种“语言强化学习”让智能体能够迭代编码问题、网络导航和推理任务。在 HumanEval 编码基准上,反射式的自我纠正通过让代理在几次尝试中调试自己的错误,使通过率大大高于单次尝试。
技术洞察
反思分为三个角色:生成动作的参与者、对结果进行评分的评估者(单元测试、精确匹配检查或法学硕士法官)以及将分数转化为文本课程的自我反思模型。该课程存放在情景记忆缓冲区中,可在下一次试验中重复使用。由于反馈是语言而不是梯度,因此不需要 GPU 训练,但它在很大程度上依赖于可靠的评估信号,以避免强化自信但错误的反射。
战略影响
构建选择
应用级设计决定了人工智能是否能改善实际结果。
团队与工作流程
良好的工作流程集成可以创造用户值得信赖的生产力收益。
风险与安全
范围明确的用例可以减少变更疲劳和实施风险。
反思和自我纠正代理的未来
自我修正正在成为代理框架中的默认层,而不是一种研究技巧。期望与自动验证器更紧密地集成,例如代码沙箱、形式检查器和确认事实的检索,因此反射基于客观信号,而不是模型事后猜测本身。公开的挑战是避免代理无休止地“修复”工作输出的循环,决定何时停止迭代,并防止反思陷入听起来合理但未经验证的合理化。
现实世界的实施
一个编码代理,运行单元测试,读取失败的断言,在错误上写下注释,并在重新运行套件之前编辑其代码。
当检索检查失败时,研究助理发现了幻觉引文,然后修改答案以仅使用经过验证的来源。
网络导航代理(例如,在 AlfWorld 或 WebShop 基准测试中)记录“我点击了错误的过滤器”并避免重试时出现错误。
数学问题解决程序根据约束检查其最终答案,注意到符号错误,并重新执行相关步骤。
风险与防护栏
将损坏的流程自动化可能会加剧现有问题。
团队可能会过度自动化并消除所需的人工判断。
如果不持续评估输出,质量可能会出现偏差。
实施路线图
绘制当前工作流程并确定摩擦最大的步骤。
在完全自动化之前定义人工检查点。
对用户进行提示、升级路径和质量标准方面的培训。
跟踪任务级结果以确认持续价值。
不断探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Reflexion and Self-Correcting Agents quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常见问题
什么是反射和自我修正剂?
反思是一种技术,人工智能代理以书面形式反思自己的失败,并将这些教训反馈到下一次尝试中。这很重要,因为它可以让代理改进任务,而无需重新训练底层模型。
反射代理如何“学习”的定义特征是什么?
反射有时被称为“言语强化学习”,因为课程以自然语言文本的形式存储在内存中,而不是编码到模型的参数中。
在 Reflexion 框架中,Evaluator 做什么?
评估器(单元测试、精确匹配检查或法学硕士评判)产生信号,将自我反思步骤转变为文本课程。
为什么评估信号的质量在 Reflexion 中如此重要?
如果评估者不可靠,代理可能会根据不良反馈编写自信的反思,从而将未来的尝试引向错误的方向。
在哪个基准测试中,反射式自我修正显着提高了编码通过率?
HumanEval 是一个代码生成基准,让代理在多次尝试中进行调试可以提高通过率,远高于单次性能。
哪一个是自我纠正代理真正的开放风险?
如果没有良好的停止规则,代理可能会不断修改正确答案,浪费计算,有时还会降低良好的输出。