逆向思维让LLM推理更强大:DeepMind提出RevThink框架

DeepMind提出RevThink框架,通过逆向思维显著提升LLM推理能力,适用于多种任务。

原文标题:人会逆向思维,LLM也可以?DeepMind研究表明还能提升推理能力

原文作者:机器之心

冷月清谈:

大型语言模型(LLM)的推理能力一直是研究的重点。DeepMind最新研究表明,逆向思维不仅适用于人类,也能够显著提升LLM的推理能力。研究人员提出了一个名为RevThink的框架,通过数据增强和新的学习目标,将逆向思维“灌输”给LLM。

RevThink分两个阶段:首先,利用更强大的教师模型对推理数据集进行增强,生成正向推理、逆向问题和逆向推理三种数据。然后,训练学生模型,使其能够基于问题生成正确的正向推理、基于原始问题生成逆向问题,以及基于逆向问题生成逆向推理。

实验结果表明,RevThink在多种推理任务中,包括常识推理、数学推理、表格数据推理、自然语言推理和逻辑推理,都取得了显著的提升。与零样本方法、知识蒸馏和数据增强等基线方法相比,RevThink的性能更优,并且在不同数据集和模型上表现稳定。此外,RevThink还具有样本效率高、泛化能力强等优势。

怜星夜思:

1、RevThink框架中提到的“教师模型”和“学生模型”具体指什么?它们是如何协同工作的?
2、除了文中提到的推理任务,逆向思维还能应用于哪些领域?
3、RevThink框架如何解决逆向思维在实际应用中的局限性,例如计算成本和效率问题?

原文内容

机器之心报道

编辑:Panda


人能逆向思维,LLM 也可以吗?北卡罗来纳大学教堂山分校与谷歌最近的一项研究表明,LLM 确实可以,并且逆向思维还能帮助提升 LLM 的正向推理能力!


论文一作 Justin Chih-Yao Chen 的推文

简单来说,正向思维就是从问题开始,一步步地得出答案;而逆向思维则是先从一个预测答案开始,逆推到原始问题。

组合使用正向和逆向思维可让我们验证解答的正确性并找到可能的错误。

举个简单例子,如果小明有 2 个苹果,小红有 3 个苹果,那么他们一共有多少个苹果?

使用正向推理,我们可以得出 2 + 3 = 5。再使用逆向推理,我们可以从共有 5 个苹果的结论开始,然后根据小明有 2 个来逆向得知小红有 3 个。这些数值与原始问题相符,故此可以验证 5 这个答案的正确性。如果正向推理出错了,比如答案是 6 个,那么逆向推理时就会得到与原始问题不一样的数值:小红有 4 个苹果。这种矛盾可让我们重新检视自己的推理过程哪里有误。

大型语言模型(LLM)的数学能力也能通过正向 - 逆向推理得到提升,原因有二:

  1. 数学本身是高度结构化的,因此正向和逆向推理之间存在明确的逆反关系;
  2. 只需替换名称或数值等变量,就可以创建出新的数学问题。

那么问题来了:逆向思维能否应用于更广泛、结构性较差的领域?

此外,这些方法通常是测试时使用,目的是验证:给定一个解,让 LLM 逆向思考并查看正向推理是否正确。虽然它们比其它测试时方法(例如自我一致性)的表现稍微好一点,但还是存在未解的疑问:我们能否训练一个本身就能逆向思维的模型,从而提升其正向推理效果,而不是在测试时使用逆向推理进行验证?

近日,北卡罗来纳大学教堂山分校、谷歌 Cloud AI Research、谷歌 DeepMind 的一个联合团队为上面两个问题提供了解答。他们发布的论文表明,逆向思维可以显著 LLM 的推理能力,并且不限于数学任务。他们还提出了一个名叫 RevThink 的框架,可将逆向思维「灌输」给语言模型。


  • 论文标题:Reverse Thinking Makes LLMs Stronger Reasoners
  • 论文地址:https://arxiv.org/pdf/2411.19865

论文发布后,吸引来不少称赞之声。



方法

RevThink 主要包含两个阶段:数据增强和全新的学习目标。


数据增强

首先,对于推理数据集,该团队使用了一个更大、能力更强的教师模型来对其进行增强。

我们知道,一般来说,推理基准数据由一个问题和一个答案构成。那么该如何增强它呢?该团队的方法是通过对教师模式使用少样本提示来(few-shot prompting)生成三种新数据:正向推理、逆向问题、逆向推理。其中正向和逆向推理都会使用思维链。

只有当数据点的正向推理准确(与 ground truth 相符)且逆向推理与原始问题一致(通过提示教师模型进行验证)时,该数据点才会被保留下来。

学习目标

完成数据集增强之后,该团队还提出了三个用于训练更小的学生模型的关键目标。


具体来说,学生模型需要学会:

  • 基于问题生成正确的正向推理;
  • 基于原始问题生成逆向问题;
  • 基于逆向问题生成逆向推理。

之所以要设置这三个目标,该团队说明了三点原因:

  • 基于问题生成正确的正向推理是知识蒸馏的标准方法;
  • 生成逆向问题会促使学生模型「思考」如何逆向一个问题并确定要问的正确问题;
  • 最后,解决这个逆向问题可以增强学生模型逆向推理的能力。

在测试时,首先会使用问题来询问该学生模型,而它只会生成前向推理 —— 类似于标准的零样本推理。

本质上讲,这个流程是在训练过程中内化了逆向推理的能力,同时还能保证测试时间计算与零样本方法一样高效。

如图 1 传统的监督式微调侧重于从问题到答案的单向推理。相比之下,RevThink 基于新提出的数据增强方法和目标,通过学习两个方向的推理而引入了双向思维。这能为模型带来更大的提升。


实验和评估

该团队通过实验验证了 RevThink 的有效性。具体来说,他们使用的教师模型是 Gemini-1.5-Pro-001,学生模型是 Mistral-7B-Instruct-v0.3 和 Gemma-7B-Instruct。训练中,他们使用了 LoRA 微调,秩设为 32。所有比较方法都使用了 vllm 和贪婪解码。

他们也选择了多种任务进行评估,包括常识推理(StrategyQA、CommonsenseQA、ARCchallenge),数学推理(MATH、GSM8K),表格数据推理(TabMWP)、自然语言推理(ANLI),逻辑推理(Date Understanding)。

参与比较的方法大致可分为三类:零样本方法、知识蒸馏(包含符号知识蒸馏和逐步蒸馏)和数据增强(包含问题重新表述、问题增强、答案增强)。更多实验设置请参阅原论文。

主要结果

表 1 给出了主要结果。


首先,RevThink 的平均性能表现很好,在不同数据集和模型上都优于基线。与学生模型的零样本性能相比,RevThink 使用 Mistral 时实现了 12.68% 的平均提升,使用 Gemma 时实现了 14.37% 的平均提升。


此外,相比于符号知识蒸馏(SKD)和逐步蒸馏(Distill Step-by-Step)—— 依赖于使用来自教师模型的正确推理链来执行监督式微调,RevThink 有 6.44% 至 7.15% 的显著提升。

与基于数据增强的基线方法相比,RevThink 带来的增益也更为显著,特别是在常识推理、表格推理和日期理解方面。虽然其中一些增强方法(例如答案增强 (AnsAug))对于数学推理很有效,但它们为其它领域带来的改进较少。这表明数学是一个更结构化的领域,会随着数据的增加而更好地扩展。

相比之下,RevThink 在各种推理任务上都能带来稳定的提升。并且表 3 表明,在留存数据集上进行评估时,RevThink 在领域外数学数据集上也能带来更大的增益,表现出了更好的泛化能力。


下面还列出了 RevThink 的更多优势,相关详情请访问原论文:

  • RevThink 表现出了很好的样本效率。
  • 逆向问题生成可提高性能,但充分利用新的数据集可获得最佳性能。
  • RevThink 的目标比使用指令调整的单独实例更有效。
  • 只需稍多一点 token,RevThink 就能获得更大提升。
  • RevThink 与模型大小呈正相关。
  • RevThink 可泛化至 OOD 数据集。
  • RevThink 可作为现有方法的补充。
  • RevThink 在可逆问题和中等难度问题上表现出了更大的提升。

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:[email protected]




关于“教师模型”和“学生模型”,可以理解为一种师徒关系。教师模型通常是一个更大、能力更强的LLM,例如文中提到的Gemini-1.5-Pro-001。学生模型则是一个较小、待训练的LLM,例如Mistral-7B-Instruct-v0.3 和 Gemma-7B-Instruct。教师模型负责生成增强数据,而学生模型则通过学习这些数据来提升推理能力。

补充一点,教师模型提供的数据并非简单的答案,而是包含了正向推理、逆向问题、逆向推理等多种信息,相当于给学生模型提供了更全面的学习资料,使其能够更好地理解推理过程。

可以理解为“磨刀不误砍柴工”。训练阶段的逆向思维就像磨刀,让模型更锋利;测试阶段的正向推理就像砍柴,效率更高。

在程序调试中,逆向思维也很常用。程序出现bug,可以从bug的表现出发,反向追踪代码执行过程,找到bug的根源。

用个比喻,就像老司机教新手开车。老司机(教师模型)演示各种路况下的操作,新手(学生模型)观察学习,最终掌握驾驶技巧。在这个框架里,教师模型的“演示”就是生成各种推理数据,学生模型的“学习”就是训练自己的推理能力。

医学诊断也可以用到逆向思维。医生根据病人的症状,反推可能的病因,然后进行 targeted testing 来确诊。

关于RevThink如何解决实际应用问题,文中提到了它只在训练过程中使用逆向思维,测试时只进行正向推理,这就避免了测试时的额外计算开销,保证了效率。