【Chain-of-Thought】开创 AI 模型推理新纪元

文章介绍了如何通过思维链提示来提高大型语言模型的推理能力,尤其是算术、常识和符号推理。通过在提示中包含中间推理步骤的示例,模型如PaLM在数学问题解决上表现出显著提升,甚至超越了微调过的GPT-3。这种方法强调了大模型在少量自然语言数据示例下的学习能力。
摘要由CSDN通过智能技术生成

Introduction💥

我们探讨了如何生成一系列中间推理步骤——思维链Chain-of-Thought),如何显著提高大型语言模型执行复杂推理的能力。特别是,我们展示了这样的推理能力如何通过一个称为“思维链提示(Chain-of-Thought Prompting)”的简单方法自然地在足够大的语言模型中出现,其中在提示中提供了几个思维链演示作为示例。

针对三个大型语言模型的实验表明,思维链提示可以提高一系列算术、常识和符号推理任务的性能。实证效果可能非常显著。例如,仅用八个思维链示例提示 PaLM 540B,就可以在 GSM8K 数学文字问题基准测试中实现最先进的准确性,甚至超过经过微调的 GPT-3 及其验证器。

最近,语言模型已经彻底改变了 NLP 领域。扩大语言模型的规模已被证明可以带来一系列好处,例如提高性能和样本效率。然而,仅扩大模型规模还不足以在具有挑战性的任务上取得高性能,如算术、常识和符号推理。

这项工作探索了一种简单的方法,通过两个思路来开启大型语言模型的推理能力。首先,算术推理技术可以从生成导致最终答案的自然语言推理中受益。以往的工作通过从头开始训练模型或微调预训练模型,以及使用形式语言而不是自然语言的神经符号方法赋予模型生成自然语言中间步骤的能力。其次,大型语言模型通过提示(prompting)提供了在上下文中进行少样本学习的激动人心的前景(in-context few-shot learning)。也就是说,不是为每个新任务微调单独的语言模型检查点,而是可以简单地向模型“提示”一些输入输出示例来展示任务。值得注意的是,这已经成功应用于一系列简单的问答任务(Brown等人,2020)。

What is prompting❓

在自然语言处理(NLP)中,prompting 是指为了完成特定任务而向预训练语言模型(如 GPT,BERT 等)提供一组输入-输出示例。这些示例可以是文本段落,问题-答案对,甚至是指令。这些示例被用作提示,以帮助模型理解要完成的任务,从而生成所需的输出。通过使用 prompting,可以实现在少量样本的情况下对预训练语言模型进行快速微调,并且往往能够在新的任务和数据集上获得非常好的表现。

然而,以上两个思路都存在关键限制。对于推理增强训练和微调方法,创建大量高质量的理由成本很高,远比普通机器学习中使用的简单的输入-输出对复杂得多。对于 Brown(GPT-3 作者之一)等人(2020)使用的传统的少样本提示方法(few-shot prompting ),它在需要推理能力的任务上表现不佳,并且通常随着语言模型规模的增大改进不大。在本文中,我们以避免它们的限制的方式结合了这两个思路的优点。具体来说,我们探索语言模型在推理任务中执行少量样本提示的能力,给定由三元组组成的提示:输入,思路链,输出(input, chain of thought, output)。思路链是导致最终输出的中间自然语言推理步骤序列,我们将这种方法称为思路链提示。示例提示下图所示。

这里是本文的关键之处

在上图中,左边是以往工作中的标准提示,即先给一些示例问题,直接给出相应的答案作为提示,最后再抛出一个相似的问题一起作为模型的输入。这样模型在这些问题-答案对中学习到一定的知识,最后输出相似的回答,但是回答的结果是错误的,并且这个回答,直截了当,没有数学问题的推理过程,当然是因为模型的输入示例的答案也没有相应的推理过程,而是直接告诉模型,没错,你就像我这么回答就行了。

我们都知道,数学的应用题是有步骤分的,有的时候我们做数学题,可能不能一下子得到问题的最终答案,但是我们可以一步一步链式的计算,逐步得到答案,即使我们结果不对,但是正确的推理过程也会有不错的得分。

没错,Chain-of-Thought Prompting 就是这样,在模型的输入中,如上图右边的蓝色高亮部分,给出问题的推理过程和答案作为输入,这是以往的工作没有的。最后模型也奇迹般的、有模有样的先输出推理过程,并且最终的答案是正确的。是不是很简单。

我们在算术、常识和符号推理基准测试上进行了实证评估,结果显示思路链提示在某些情况下明显优于标准提示。下图展示了一个这样的结果——在数学词问题 GSM8K 基准测试上,使用 PaLM 540B(GoogleLLM) 的思路链提示大大优于标准提示,并实现了新的最先进性能(SOTA)。仅使用提示的方法非常重要,因为它不需要大量的训练数据集,并且一个单独的模型检查点可以执行许多任务而不会丧失一般性。本研究强调了大型语言模型如何通过少量的自然语言数据示例学习任务(例如通过大量的训练数据集自动学习输入和输出之间的模式)。

Chain-of-Thought Prompting🎃

当解决一个复杂的推理任务,例如一个多步骤的数学文字问题时,请考虑自己的思考过程。通常将问题分解为中间步骤,并在给出最终答案之前解决每个步骤:“Jane 给她妈妈 2 朵花后,她还有 10 朵……然后她给爸爸 3 朵花后她就有 7 朵……所以答案是 7。”本文的目标是赋予语言模型类似的思维链能力——一系列连贯的中间推理步骤,导致问题的最终答案。我们将展示,如果在少量提示的示例中提供了思维链推理的演示,则足够大的语言模型可以生成思维链。

最开始的那张图展示了一个模型生成的思维链,用于解决一道数学文字问题,而该模型原本会得到错误答案。在这种情况下,思维链类似于解决方案,并且可以被解释为一个解决方案,但我们仍然选择称其为思维链,以更好地概述它模仿一种逐步思考过程以达到答案的思想(并且通常,解决方案/解释通常在最终答案之后提供)。

对于促进语言模型推理的方法,思维链提示具有几个有吸引力的特点。

首先,思想链原则上允许模型将多步问题分解为中间步骤,这意味着可以将额外的计算分配给需要更多推理步骤的问题。

其次,一个思维链为模型的行为提供了一个可解释的窗口,表明它是如何得到一个特定的答案的,并提供了调试推理路径错误的机会(尽管完全描述支持一个答案的模型计算仍然是一个悬而未决的问题)。模型推理的可解释型增强。

第三,思维链推理可用于数学文字问题、常识推理和符号操作等任务,并且可能(至少原则上)适用于任何人类可以通过语言解决的任务。

最后,思维链推理可以很容易地在足够大的现成语言模型中得到,只需将思维链序列的示例包含到 few-shot prompting 中去。

Supplement🎁

Zero-Shot-CoT:语言模型的输入还是一道数学题连接一个字符串 “Let's think step by step”,然后让语言模型进行续写。这种情况下,语言模型会续写出中间推理步骤,并最终生成答案。没错,输入加了一句话。

Manual-CoT:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models(CoT 开山之作)。这种情况下使用到了 few-shot learning,在输入问题之前,手动设计一些问题和答案的样例(样例的答案给出中间推理步骤),这些问题和答案都需要手动构造,所以叫 Manual-CoT,语言模型的输入是一些手动设计的问题和答案的参考样例连接一个真正需要求解的问题,然后让语言模型进行续写,这里少样本训练中的问题和答案的样例都需要人为构造并手动设计,因此为了和第四种自动 CoT 做区分,这里称为 Manual-CoT。Manual-CoT 比 Zero-Shot-CoT 的性能要好,因为它采用的是 few-shot ,在输入中提供了一些问题、中间推理步骤以及答案的样例给语言模型进行参考。但是,提供这些样例需要进行人工设计,这就需要一定的人工成本。

Auto-CoT:Automatic Chain of thought Prompting in Large Language Models(李沐老师团队的工作)。Auto-CoT 其实也是受到了 Manual-CoT 的启发,既然 Manual-CoT 比 Zero-Shot-CoT 的性能要好,而且性能好的关键就在于人工设计的问题、中间推理步骤和答案的样例,那么就可以考虑将这部分进行自动化,从而节省人工成本。

Auto-CoT 包括两个主要阶段:(i)问题聚类:将给定数据集中的问题划分为几个聚类;(ii)演示抽样:从每个聚类中选择一个代表性问题,并使用简单的启发式方法使用 Zero-Shot-CoT 生成其推理链。总体过程如上图所示。

通过多样性选取有代表性的问题,对于每一个采样的问题拼接上“Let’s think step by step”(类似于 Zero-Shot-CoT )输入到语言模型,让语言模型生成中间推理步骤和答案,然后把这些所有采样的问题以及语言模型生成的中间推理步骤和答案全部拼接在一起,构成少样本学习的样例,最后再拼接上需要求解的问题一起输入到语言模型中进行续写。最终模型续写出了中间的推理步骤以及答案,并且质量非常高。

值得一提的是,在十个数据集上 Auto-CoT 是可以匹配甚至超越 Manual-CoT 的性能,也就说明自动构造的 CoT 的问题、中间推理步骤和答案样例比人工设计的还要好,而且还节省了人工成本。在 Auto-CoT 中,其实也是用到了很多个“Let’s think step by step”对每个采样的问题分别触发中间推理步骤和答案,这也是为什么叫它 “Let's think not just step by step but also one by one”

Conclusion💝

CoT(Chain-of-Thought) 是 NLP 领域目前比较新颖和值得挖掘的方向,对提升大语言模型的推理能力有很大的促进作用。

CoT 原理很简单,但效果却非常不错,其中的简单美就是我们在深度学习领域一直要追求的东西,就像 ResNet 一样可以打破大模型存在的某些瓶颈(个人观点)。

References👍

[1] Wei J, Wang X, Schuurmans D, et al. Chain of thought prompting elicits reasoning in large language models[J]. arXiv preprint arXiv:2201.11903, 2022.
[2] Zhang Z, Zhang A, Li M, et al. Automatic chain of thought prompting in large language models[J]. arXiv preprint arXiv:2210.03493, 2022.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉淀体育生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值