大型语言模型能够识别并纠正其错误吗?

OS@L0287%FBF]VMUHJK4~LW.png

LLM 在推理任务(例如多轮问答、任务完成、代码生成或数学)中越来越受欢迎。然而,就像人一样,它们并不总是能在第一次尝试时就正确解决问题,尤其是在它们没有受过训练的任务上。因此,要使此类系统发挥最大作用,它们应该能够 1) 识别推理错误的位置,2) 回溯以找到另一个解决方案。

这导致了与自我纠正相关的方法的激增,其中 LLM 用于识别其自身输出中的问题,然后根据反馈产生改进的结果。自我纠正通常被认为是一个单一的过程,但我们决定将其分解为两个部分,即错误发现 和输出纠正。

在“ LLM 无法发现推理错误,但可以纠正它们! ”中,我们分别测试了最先进的 LLM 的错误发现和输出纠正。我们提出了BIG-Bench Mistake,这是一个用于错误识别的评估基准数据集,我们用它来解决以下问题:

LLM 能否发现思路链(CoT) 式推理 中的逻辑错误?

错误发现可以作为正确性的代理吗?

知道错误在哪里之后,法学硕士们是否可以回溯并得出正确答案?

错误发现作为一种技能是否可以推广到法学硕士从未见过的任务?

关于我们的数据集

错误查找是自然语言处理中尚未得到充分探索的问题,尤其缺乏该领域的评估任务。为了最好地评估 LLM 查找错误的能力,评估任务应展示非歧义性错误。据我们所知,出于这个原因,大多数当前的错误查找数据集并未超出数学范围。

为了评估 LLM 推理数学领域之外的错误的能力,我们制作了一个新的数据集供研究界使用,称为BIG-Bench Mistake 。该数据集由使用PaLM 2在BIG-Bench中的五个任务上生成的思路链轨迹组成。每个轨迹都标注了第一个逻辑错误的位置。

为了最大限度地增加数据集中的错误数量,我们抽样了 255 条答案不正确的轨迹(因此我们知道肯定存在错误),以及 45 条答案正确的轨迹(因此可能有错误也可能没有错误)。然后,我们要求人工标记员检查每条轨迹并找出第一个错误步骤。每条轨迹都由至少三名标记员注释,他们的答案的评分者间信度水平 >0.98(使用Krippendorff 的 α )。除Dyck 语言任务外,所有任务都进行了标记,该任务涉及预测给定输入序列的右括号序列。我们通过算法标记此任务。

该数据集中的逻辑错误简单且明确,为测试法学硕士在使用其完成更难、更模糊的任务之前发现自己的错误的能力提供了良好的基准。

错误识别的核心问题

1. LLM 能否发现思路链式推理中的逻辑错误?

首先,我们想了解 LLM 是否能够独立于其纠正错误的能力来识别错误。我们尝试了多种提示方法来测试GPT系列模型定位错误(此处提示)的能力,假设它们通常代表现代 LLM 的表现。

总体而言,我们发现这些最先进的模型表现不佳,最好的模型总体准确率也只有 52.9%。因此,需要提高 LLM 在这一推理领域的能力。

在我们的实验中,我们尝试了三种不同的提示方法:直接(跟踪)、直接(步骤)和 CoT(步骤)。在直接(跟踪)中,我们向 LLM 提供跟踪,并要求其提供错误或无错误的位置步骤。在直接(步骤)中,我们提示 LLM 在采取的每个步骤中都问自己这个问题。在 CoT(步骤)中,我们提示 LLM 给出其对每个步骤是否是错误的理由。

展示三种提示方法:直接(跟踪)、直接(步骤)和 CoT(步骤)的图表。

我们的发现与之前的结果一致,并建立在之前结果的基础上,但进一步表明 LLM 甚至难以处理简单且明确的错误(相比之下,我们的人类评分员没有先前的专业知识,但解决问题的一致性很高)。我们假设这是 LLM 无法自我纠正推理错误的一个重要原因。请参阅论文以了解完整结果。

2. 发现错误可以作为答案正确性的衡量标准吗?

当人们遇到不确定答案的问题时,我们可以逐步解决问题。如果没有发现错误,我们可以假设我们做了正确的事。

虽然我们假设这种方法对 LLM 也同样有效,但我们发现这是一种糟糕的策略。在我们的数据集中,85% 的轨迹为错误,15% 的轨迹为正确,使用这种方法并不比总是将轨迹标记为错误的简单策略好多少,后者的加权平均F1为 78。

该图表显示了使用 LLM 查找错误的能力如何作为每个数据集上答案正确性的代理。

3. LLM 可以在知道错误所在之后再回溯吗?

由于我们已经证明 LLM 在查找 CoT 轨迹中的推理错误方面表现不佳,我们想知道 LLM 是否能够纠正所有错误,即使它们知道错误在哪里。

请注意,知道错误位置与知道正确答案是不同的:即使最终答案是正确的,CoT 踪迹也可能包含逻辑错误,反之亦然。在大多数现实世界中,我们不知道正确答案是什么,但我们可能能够识别中间步骤中的逻辑错误。

我们提出以下回溯方法:

在温度 = 0 时照常生成 CoT 轨迹。(温度是控制生成响应的随机性的参数,温度越高,输出就越多样化、越有创意,但通常会以牺牲质量为代价。)

确定第一个逻辑错误的位置(例如使用分类器,或者这里我们仅使用来自数据集的标签)。

在温度 = 1 时重新生成错误步骤并产生一组八个输出。由于已知原始输出会导致错误结果,因此目标是在此步骤中找到与原始输出明显不同的替代生成。

从这八个输出中,选择一个与原始错误步骤不同的输出。(我们在这里只使用精确匹配,但将来可能会使用更复杂的方法。)

使用新的步骤,在温度 = 0 时正常生成其余轨迹。

这是一种非常简单的方法,不需要任何额外的提示制作,也避免了必须重新生成整个跟踪。我们使用来自 BIG-Bench Mistake 的错误位置数据对其进行了测试,发现它可以纠正 CoT 错误。

最近的研究表明,自我纠正方法(如Reflexion和RCI)会导致准确率下降,因为正确答案变成错误答案的概率比错误答案变成正确答案的概率要大。而我们的方法(通过纠正错误答案)带来的收益大于损失(通过将正确答案改为错误答案)。

我们还将我们的方法与随机基线进行了比较,在随机基线中我们随机假设某个步骤是错误的。我们的结果表明,这种随机基线确实产生了一些收益,但不如正确错误位置的回溯那么多,而且损失更大。

该图表显示了我们的方法的准确性的增益和损失以及每个数据集的随机基线。

4. 错误发现是否可以推广到 LLM 从未见过的任务?

为了回答这个问题,我们在四个 BIG-Bench 任务上微调了一个小模型,并在第五个保留任务上对其进行了测试。我们对每个任务都这样做,总共生成了五个微调模型。然后,我们将结果与零样本提示的PaLM 2-L-Unicorn(一个更大的模型)进行比较。

条形图显示了使用 PaLM 2-L-Unicorn 进行微调的小模型与零样本提示相比准确度的提高。

我们的结果表明,即使奖励模型从未见过测试集中的任务数据,规模小得多的微调奖励模型通常表现优于零样本提示大型模型。唯一的例外是逻辑推理,其表现与零样本提示相当。

这是一个非常有希望的结果,因为我们可能只使用一个小型微调奖励模型来执行回溯并提高任何任务的准确性,即使我们没有相关数据。这个较小的奖励模型完全独立于生成器 LLM,并且可以针对个别用例进行更新和进一步微调。

该图示显示了我们的回溯方法如何工作。

结论

在这项工作中,我们创建了一个评估基准数据集,更广泛的学术界可以使用它来评估未来的 LLM。我们进一步表明,LLM 目前很难发现逻辑错误。但是,如果可以,我们将展示回溯作为一种可以在任务上带来收益的策略的有效性。最后,可以在一般的错误查找任务上训练一个较小的奖励模型,并用它来改进领域外的错误查找,表明错误查找可以推广。

致谢

感谢 Peter Chen、Tony Mak、Hassan Mansoor 和 Victor Cărbune 贡献想法并帮助进行实验和数据收集。我们还要感谢 Sian Gooding 和 Vicky Zayats 对本文的评论和建议。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论