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

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

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

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

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

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

那如何进行自我反思?

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

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

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

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

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

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

GPT-4学会反思,写代码能力提升21%_解决方案

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

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

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

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

GPT-4学会反思,写代码能力提升21%_解决方案_02

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

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

反思之后性能提升近30%

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

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

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

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