查看原文
其他

GPT-4写代码能力提升21%!MIT新方法让LLM学会反思,网友:和人类的思考方式一样

猿大侠 2023-05-02
编辑:Pine
转自:量子位 | 公众号 QbitAI

GPT-4再度进化!

加上一个简单方法,就能让GPT-4这类大语言模型学会自我反思,性能直接提升30%

在此之前,大语言模型回答出错,经常是二话不说,直接先道歉,然后emmmmmm,继续乱猜。

现在,它不会这样了,有了新方法的加成,GPT-4不仅会反思自己哪里错了,还会给出改进策略。

比如说它会自动分析为什么“陷入循环”:

或者说反思一下自己有缺陷的搜索策略:

这是美国东北大学联合MIT发表的最新论文中的方法:Reflexion

不仅适用于GPT-4,也适用于其他大语言模型,让它们学会人类特有的反思能力。

目前该论文已经发表在预印平台arxiv上。

这把直接让网友直呼“AI进化的速度已经超过我们适应的能力了,我们要被毁灭了。”

甚至有网友为开发人员发来“饭碗警告”:

用这种方法写代码的时薪是要比普通开发人员便宜的。

利用二元奖励机制实现反思

正如网友所言,Reflexion赋予GPT-4的反思能力和人类的思考过程差不多:

可以简单用两个字来概括:反馈

在这个反馈过程中,又可以分为三大步:

  • 1、评估:测试当前生成答案的准确性

  • 2、自我反省的产生:错误识别——实现修正

  • 3、执行一个迭代反馈循环

在第一步评估的过程中,首先要经历的是LLM(大语言模型)自我评估

也就是说LLM在还没有外部反馈时,首先要自己对答案进行反思。

那如何进行自我反思?

研究团队使用了一个二元奖励机制,为LLM在当前状态下执行的操作赋值:

1代表生成的结果OK,0则表示生成的结果不太行。

而之所以采用二元而非多值或连续输出这类更具描述性的奖励机制,原因和没有外部输入有关。

要在没有外部反馈的条件下进行自我反思,必须将答案限制在二元状态下,只有这样,才能迫使LLM做出有意义的推断。

在自我评估结束之后,如果二元奖励机制输出为1,则不启动自我反思装置,若为0,LLM则会开启反思模式。

在反思的过程中,模型会触发一个启发性函数h(如下),类比人类思考过程,h起到的作用就像是监督一样。

不过,同人类思考一样,LLM在反思的过程中同样也有局限性,这在函数中的Ω和ε中就能体现。

Ω表示重复连续动作的次数,一般会将这个数值设置为3,这表示反思过程中若重复一个步骤三次,会直接跳到下一个步骤。

而ε则表示在反思的过程中允许执行的最大操作数量。

既然有监督,那修正也必须执行,修正过程的函数是这样子的:

其中,自我反思模型是通过“特定领域的失败轨迹和理想反射对”训练而来的,并不允许访问数据集中给定问题的特定领域的解决方案。

这样一来,LLM在反思的过程中便能够迸发出更多有“创新性”的东西。

反思之后性能提升近30%

既然GPT-4这类LLM都能够进行自我反思了,那具体效果究竟如何?

研究团队在ALFWorld和HotpotQA基准上对这种方法进行了评估。

在HotpotQA的100个问答对测试中,使用Reflexion这种方法的LLM显示出了巨大的优势,再经过多轮反思重复提问之后,LLM的性能提升了接近30%。

而没有使用Reflexion,在重复问答之后,性能没有任何变化。

在HotpotQA的134个问答对测试中,可以看出在Reflexion的加持下,LLM经过多轮反思后,准确率一度达到97%。

在另外一篇博客中,团队成员也晒出了他们这种方法在GPT-4上的效果,测试范围是编写代码。

结果也显而易见,用了Reflexion,GPT-4的编程能力直接提升了21%。

关于GPT-4已经会“思考”了,你怎(huang)(le)(ma)

论文地址:
https://arxiv.org/abs/2303.11366
参考链接:
[1] 
https://nanothoughts.substack.com/p/reflecting-on-reflexion
[2] https://www.reddit.com/r/MachineLearning/comments/1215dbl/r_reflexion_an_autonomous_agent_with_dynamic/

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存