23年5月来自CMU、AI2、U Washington、Nvidia、UCSD和谷歌的论文 “SELF-REFINE: Iterative Refinement with Self-Feedback”。
与人类一样,大语言模型 (LLM) 并不总是在第一次尝试时就能产生最佳输出。受人类改进书面文本的方式的启发,引入 SELF-REFINE,一种通过迭代反馈和改进来改进 LLM 初始输出的方法。主要思想是使用 LLM 生成初始输出;然后,相同的 LLM 为其输出提供反馈,并使用它迭代地改进自身。SELF-REFINE 不需要任何监督训练数据、额外训练或强化学习,而是使用单个 LLM 作为生成器、改进器和反馈提供。用先进的 (GPT-3.5 和 GPT-4) LLM,在 7 个不同的任务中评估 SELF-REFINE,从对话响应生成到数学推理。
迭代自我改进
是人类解决问题的基本特征(Simon,1962;Flower & Hayes,1981;Amabile,1983)。迭代自我改进是一个过程,包括创建初稿,然后根据自我提供的反馈对其进行改进。例如,在起草一封电子邮件向同事请求文档时,个人最初可能会写一个直接请求,例如“尽快将数据发送给我”。然而,经过深思熟虑,作者意识到这种措辞可能有些不礼貌,于是将其修改为“嗨,阿什利,你能尽快把数据发给我吗?”。在编写代码时,程序员可能会实现一个初始的“快速而粗糙”的实现,然后经过深思熟虑,将他们的代码重构为一个更高效、更易读的解决方案。
SELF-REFINE
是一种迭代自改进算法,在两个生成步骤(反馈和改进)之间交替进行。这些步骤协同工作以生成高质量的输出。给定由模型 M 生成的初始输出,将其传回同一模型 M 以获得反馈。然后,将反馈传回同一模型以改进先前生成的草稿。此过程重复指定次数的迭代或直到 M 确定不需要进一步改进。如图所示:给定一个输入 (0),SELF-REFINE 首先生成一个输出并将其传回同一模型 M 以获得反馈 (1)。反馈被传回 M,M 会细化先前生成的输出 (2)。步骤 (1) 和 (2) 不断迭代,直到满足停止条件。SELF-REFINE 使用 GPT-3.5 等语言模型实例化,不需要人工协助。
SELF-REFINE 的算法如下所示。
本文在 7 个不同的任务上对 SELF-REFINE 进行评估:
对话响应生成(Mehri & Eskenazi,2020)、代码优化(Madaan,2023)、代码可读性改进(Puri,2021)、数学推理(Cobbe,2021)、情绪逆转(Zhang,2015),并且引入了两个新任务:
首字母缩略词生成和约束生成,注: