从错误中学习,不只是人类可以做到。近日有研究发现,大模型其实也可以借鉴这种思路。
这段时间,大语言模型在各种 NLP 任务中取得了重大进展,尤其是在需要复杂的思维链(CoT)推理的数学问题方面。
比如在 GSM8K、MATH 这样的高难度数学任务的数据集中,包括 GPT-4 和 PaLM-2 在内的专有模型已取得显著成果。在这方面,开源大模型还有相当的提升空间。为了进一步提高开源大模型处理数学任务的 CoT 推理能力,一种常见的方法是使用注释 / 生成的问题 - 推理数据对( CoT 数据)对这些模型进行微调,这些数据对会直接教导模型如何在这些任务中执行 CoT 推理。
在最近的一篇论文,来自西安交大、微软、北大的研究者尝试探讨了另外一种提升思路:是否可以通过逆向学习过程(即从 LLM 犯过的错误中学习)进一步提高其推理能力?
就像是一个刚开始学习数学的学生,首先会从书本上的知识点和例题中学习,但也会进行练习。解题失败后,他便知道自己犯了什么错误、如何改正,形成一个「错题本」。正是通过从错误中学习,推理能力得到了进一步提高。
受这个过程的启发,这项工作探讨了 LLM 的推理能力如何从理解和纠正错误中受益。
具体来说,研究者首先生成错误 - 修正数据对(称为修正数据),然后利用修正数据对 LLM 进行微调。在生成修正数据时,他们使用了多个 LLM(包括 LLaMA 和 GPT 系列模型)来收集不准确的推理路径(即最终答案不正确),然后使用 GPT-4 作为 「修正器」,为这些不准确的推理路径生成修正。
生成的修正包含三条信息:(1) 原始解法中不正确的步骤;(2) 解释该步骤不正确的原因;(3) 如何修正原始解法以得出正确的最终答案。在过滤掉最终答案不正确的修正后,人工评估结果表明,修正数据在后续的微调阶段表现出了足够的质量。研究者使用 QLoRA 对 CoT 数据和修正数据微调了 LLM,从而执行了「从错误中学习」(LEMA)。
研究者指出,当前 LLM 能够在解决问题时采用循序渐进(step-by-step)的方法,然而这种多步骤生成过程并不意味着 LLM 本身就拥有强大的推理能力,因为它们可能只是模仿人类推理的表面行为,而没有真正理解精确推理所需的底层逻辑和规则。
这种不理解会导致在推理过程中出现错误,因此需要「世界模型」的帮助,因为「世界模型」对现实世界的逻辑 和规则具有先验意识。从这个角度来看,本文中 LEMA 框架可以看成是采用了 GPT-4 作为「世界模型」,教导更小的模型遵守这些逻辑和规则,而不仅仅是模仿 step-by-step 的行为。
接下来,我们看一下这项研究的具体方法。
方法概览
下图 1(左)为 LEMA 的整体流程,包括两个主要阶段,分别是生成修正数据和微调 LLM。图 1(右)为 LEMA 在 GSM8K 和 MATH 数据集上的性能表现。
生成修正数据
给定一个问答示例、一个修正器模型 M_c 和一个推理模型 M_r,研究者生成了错误修正数据对,其中表示问题 q_i 的不准确推理路径,c_i 表示对的修正。
修正不准确的推理路径。研究者首先使用推理模型 M_r,为每个问题 q_i 采样了多个推理路径,然后只保留那些最终得不出正确答案 a_i 的路径,如下公式(1)所示。
为错误生成修正 。对于问题 q_i 和不准确的推理路径,研究者使用修正器模型 M_c 来生成一个修正,然后在修正中检查正确答案,如下公式(2)所示。
这里 P_c 包含 4 个带注释的错误修正示例,以指导修正器模型应该在生成的修正中包含什么类型的信息。
具体来讲,带注释的修正包含以下三类信息:
- 错误步骤:原始推理路径中哪一步出错了。
- 解释:该步骤中出现了什么类型的错误;
- 正确解决方案:如何修正不准确的推理路径以更好地解决原始问题。
下图示例 1 简要地展示了生成修正所用的 prompt。
生成修正的人工评估。在生成更大规模的数据之前,研究者首先手动评估了生成修正的质量。他们以 LLaMA-2-70B 为 M_r、以 GPT-4 为 M_c,并基于 GSM8K 训练集生成了 50 个错误修正数据对。
研究者将修正划分为了三个质量等级,分别为优秀(Excellent)、良好(Good)和糟糕(Poor)。三者的示例分别如下所示。
评估结果发现,50 个生成修正中有 35 个达到了优秀质量、11 个为良好、4 个为糟糕。根据这一评估结果,研究者推断使用 GPT-4 生成修正的整体质量足以进行进一步的微调阶段。因此,他们生成了更多大规模的修正,并将所有最终得出正确答案的修正用于微调 LLM。
微调 LLM
在生成修正数据之后,研究者微调了 LLM,从而评估这些模型是否可以从错误中学习。他们主要在以下两种微调设置下进行性能比较。
一是在思维链(CoT)数据上微调。研究者仅在问题原理(question-rationale)数据上微调模型。尽管每个任务中有带注释的数据,但他们额外采用了 CoT 数据增强。研究者使用 GPT-4 为训练集中的每个问题生成了更多推理路径,并过滤掉最终答案错误的路径。他们利用 CoT 数据增强来构建一个强大的微调基线,该基线仅使用 CoT 数据,并有助于对控制微调的数据大小进行消融研究。
二是在 CoT 数据 + 修正数据上微调。除了 CoT 数据,研究者还将生成的错误修正数据用于微调(即 LEMA)。他们同样进行了控制数据大小的消融实验,以减少增量对数据大小的影响。
下图附录 A 中的示例 5 和示例 6 分别展示了用于微调的 CoT 数据和修正数据的输入 - 输出格式。
实验结果
研究者在五个开源 LLM 和两个具有挑战性的数学推理任务上的实验结果证明了 LEMA 的有效性。
与仅在 CoT 数据上进行微调相比,LEMA 在各种 LLM 和任务中都能起到持续提升性能的作用。例如,使用 LLaMA-2-70B 的 LEMA 在 GSM8K 和 MATH 上分别取得了 83.5% 和 25.0% 的成绩,而仅在 CoT 数据上进行微调则分别取得了 81.4% 和 23.6% 的成绩。
此外,LEMA 与专有 LLM 兼容:带有 WizardMath-70B /MetaMath-70B 的 LEMA 在 GSM8K 上实现了 84.2%/85.4% 的 pass@1 准确率 ,在 MATH 上实现了 27.1%/26.9% 的 pass@1 准确率,超过了众多开源模型在这些挑战性任务上取得的 SOTA 性能。
随后的消融研究表明,在相同的数据量下,LEMA 仍然优于 CoT-alone 微调。这表明,CoT 数据和校正数据的有效性并不相同,因为两种数据源的结合比使用单一数据源能产生更多的改进。这些实验结果和分析强调了从错误中学习在增强 LLM 推理能力方面的潜力。
更多研究细节,可参考原论文。