大语言模型自动思维链提示

摘要:大型语言模型(LLMs)可以通过生成中间推理步骤来执行复杂推理。为提示演示提供这些步骤被称为思维链(CoT)提示。CoT提示有两种主要范式。一种利用简单的提示,如“让我们一步一步地思考”,以促进在回答问题之前逐步思考。另一种使用一些手动演示,每个演示由一个问题和一个推理链组成,该链导致一个答案。第二种范式的优越性能依赖于逐个手工制作任务特定的演示。我们展示了通过利用LLMs使用“让我们一步一步地思考”的提示来生成推理链,以逐个生成演示,即,让我们不仅一步一步地思考,还要逐个思考。然而,这些生成的链经常伴随着错误。为了减轻这些错误的影响,我们发现多样性对于自动构建演示至关重要。我们提出了一种自动CoT提示方法:Auto-CoT。它以多样性采样问题,并生成推理链来构建演示。在GPT-3的十个公共基准推理任务中,Auto-CoT始终匹配或超过了需要手动设计演示的CoT范式的性能。代码可在https://github.com/amazon-research/auto-cot 上获取。

1 引言

大型语言模型(LLMs)[Brown等人,2020年,Thoppilan等人,2022年,Rae等人,2021年,Chowdhery等人,2022年]通过将多步骤问题分解为中间步骤,然后产生答案,在复杂推理任务上表现出色。这种推理过程是通过一种非常新的技术激发的:思维链(CoT)提示[Wei等人,2022a]。

CoT提示可以分为两大范式。一种是在测试问题后添加一个简单的提示,如“让我们一步一步地思考”,以促进LLMs中的推理链[Kojima等人,2022年]。由于这种提示范式是任务不可知的,不需要输入输出演示,因此被称为零样本CoT(图1左侧)。有了零样本CoT,LLMs已经显示出是不错的零样本推理者。另一种范式是使用手动推理演示的少量提示[Wei等人,2022a]。每个演示都有一个问题和一个推理链。推理链由理由(一系列中间推理步骤)和预期答案组成。所有演示都是手工设计的,这种范式被称为手动CoT(图1右侧)。

图1:零样本CoT [Kojima等人,2022年](使用“让我们一步一步地思考”的提示)和手动CoT [Wei等人,2022a](逐个使用手动设计的演示)以及LLM的示例输入和输出。

在实践中,手动CoT的性能比零样本CoT更强[Wei等人,2022a,Kojima等人,2022年]。然而,这种优越的性能依赖于手工起草有效演示的努力。具体来说,手工起草涉及在设计问题及其推理链的演示方面的非平凡努力。此外,设计任务特定演示的人力工作甚至更多:不同的任务,如算术[Roy和Roth,2015年]和常识推理[Talmor等人,2019年],需要不同的演示方式。

为了消除这种手工设计,我们提倡另一种自动CoT范式,以自动构建带有问题和推理链的演示。具体来说,自动CoT利用LLMs使用“让我们一步一步地思考”的提示,逐个生成推理链,即,让我们不仅一步一步地思考,还要逐个思考。

然而,我们发现这个挑战不能通过简单的解决方案有效解决。例如,给定数据集的测试问题,检索语义相似的问题并调用零样本CoT生成推理链将会失败。尽管LLMs是不错的零样本推理者,但它们并不完美:零样本CoT在推理链中仍然可能出错。

为了减轻零样本CoT推理链错误的影响,我们的分析表明,演示问题的多样性是关键。基于这一洞见,我们提出了一种自动CoT方法来自动构建演示。自动CoT由两个主要步骤组成。首先,将给定数据集的问题划分为几个簇。其次,从每个簇中选择一个代表性问题,并使用简单的启发式方法使用零样本CoT生成其推理链。

我们在十个基准推理任务上评估了自动CoT,包括:(i)算术推理(MultiArith[Roy和Roth,2015年],GSM8K[Cobbe等人,2021年],AQUA-RAT[Ling等人,2017年],SVAMP[Patel等人,2021年]);(ii)常识推理(CSQA[Talmor等人,2019年],StrategyQA[Geva等人,2021年]);(iii)符号推理(最后字母串联,硬币翻转)[Wei等人,2022a]。实验结果表明,使用GPT-3,自动CoT始终匹配或超过需要手工设计的手动CoT的性能。这表明LLMs可以通过自动构建演示来执行CoT推理。

2 相关工作

本节回顾了构成这项工作基础的两条研究线:用于多步推理的思维链(CoT)提示和通过示例引导LLMs学习的上下文学习。

2.1 思维链提示

CoT提示是一种无需梯度的技术,用于引导LLMs产生导致最终答案的中间推理步骤。Wei等人[2022a]正式研究了语言模型中的CoT提示主题。这项技术激发了LLMs生成一系列连贯的中间推理步骤,这些步骤导致问题最终的答案。研究表明,LLMs可以通过零样本提示(Zero-Shot-CoT)[Kojima等人,2022年]或手动编写的少量示例(Manual-CoT)[Wei等人,2022a]执行CoT推理。

零样本CoT。Kojima等人[2022年]表明,LLMs是不错的零样本推理者,其生成的理由已经反映了CoT推理。这一发现激发了我们的工作,利用自生成的理由进行演示。在最近的一项工作中,LLMs生成理由被证明是实用的[Zelikman等人,2022年]。在他们的工作中,LLMs被提示生成理由,并选择那些导致正确答案的理由。

选择需要一个带有注释答案的问题的训练数据集。相比之下,我们的工作考虑了一个更具挑战性的场景,即只给定一组测试问题(没有训练数据集),遵循Wei等人[2022a]和Kojima等人[2022年]的CoT提示研究。

手动CoT。通过有效的手动演示,手动CoT通过激发CoT推理能力实现了更强的性能。推理过程的演示是手动设计的。然而,设计问题及其推理链的人力工作并非易事。与解决这一限制不同,最近的研究主要关注手工制作更复杂的演示或利用类似集成的方法。一种趋势是问题分解。在最少到最多的提示[Zhou等人,2022年]中,复杂问题被简化为子问题,然后按顺序解决子问题。另一种趋势是为测试问题投票多个推理路径。Wang等人[2022a]引入了一种自我一致性解码策略,以采样LLMs的多个输出,然后对最终答案进行多数投票。Wang等人[2022b]和Li等人[2022年]在输入空间引入了随机性,以产生更多样化的输出进行投票。他们使用手动设计的演示作为种子集,并生成额外的理由:留下种子集中的一个问题,并使用其余的演示通过LLMs为这个问题生成理由。与依赖手动设计演示的前述研究线不同,我们的工作旨在以竞争性能消除手动设计。

2.2 上下文学习

CoT提示与上下文学习(ICL)[Radford等人,2019年,Brown等人,2020年]密切相关。ICL通过将一些提示示例作为输入的一部分,使LLMs能够执行目标任务。ICL不进行梯度更新,允许单一模型普遍执行各种任务。有各种研究线来提高ICL的性能:(i)检索与测试实例相关的演示,其中流行的实践是动态检索给定测试输入的相关训练示例[Rubin等人,2022年,Su等人,2022年];(ii)通过添加细粒度信息进行增强,例如整合任务指令[Mishra等人,2022年,Wei等人,2022b,Sanh等人,2022年];(iii)操作LLMs的输出概率而不是直接计算目标标签的可能性[Holtzman等人,2021年,Zhao等人,2021年,Min等人,2022a]。

(注释:为了提高上下文学习的效果,研究人员采取了几种策略:

1.检索相关演示:这种方法类似于我们在准备考试时,会查找和当前题目类似的过往题目来帮助理解。在机器学习中,这意味着动态地找到与当前测试输入相关的训练示例,以帮助模型更好地理解和解决问题。

2.添加细粒度信息:这就像是在解题时,除了题目本身,我们还会提供一些额外的指导信息,比如题目的解题步骤或者注意事项,帮助模型更精确地完成任务。

3.操作输出概率:这涉及到调整模型输出的概率,而不是直接计算目标标签的可能性。可以类比为在投票选举中,不是简单地计算每个候选人的得票数,而是通过一些策略来影响最终的投票结果。)

尽管ICL取得了成功,但研究[Liu等人,2022a,Lu等人,2022年]表明,ICL的强度可能会因上下文演示的选择而大相径庭[Liu等人,2022b]。具体来说,提示的格式,如措辞或演示的顺序,可能导致性能波动[Webson和Pavlick,2022年,Zhao等人,2021年]。最近的一项工作[Min等人,2022b]甚至质疑了真实输入输出映射的必要性:在示例中使用错误的标签只会略微降低性能。然而,现有的ICL分析主要基于具有简单<input→output>映射的标准分类和多项选择数据集。我们发现,这些发现可能不适用于具有更复杂<input→rationale→output>映射的CoT提示场景。例如,无论是<input→rationale>映射还是<rationale→output>映射中的错误都会导致性能急剧下降(附录A.1)。

3 自动CoT的挑战

正如刚刚讨论的,ICL的性能依赖于手工制作的示例演示。如在手动CoT [Wei等人,2022a]中报告的,使用不同注释者编写的演示在符号推理任务中带来了高达28.2%的准确度差异,而改变演示的顺序在大多数任务中导致不到2%的变化。这表明自动CoT的关键挑战在于自动构建具有好问题及其推理链的演示。

回想一下,手动CoT手工制作了一些(例如,8个)演示中的问题。基于相似性的检索方法被广泛采用来提示LLMs [Rubin等人,2022年,Su等人,2022年],一个有希望的候选解决方案是使用基于相似性的检索来采样演示问题。我们遵循CoT研究中更具挑战性的假设[Wei等人,2022a,Kojima等人,2022年],即只给定一组测试问题(没有训练数据集)。

按照Liu等人[2022a]的做法,我们使用Sentence-BERT [Reimers和Gurevych,2019]对问题进行编码。对于测试数据集中的每个问题qtest,我们从其余问题中采样演示问题qidemo(i = 1,…,k)。

我们设计了一个检索Q-CoT方法,根据余弦相似度检索top-k(例如,k = 8)相似的问题。

为了与这种基于相似性的方法进行比较,我们还测试了一个相对更基于多样性的方法:随机Q-CoT,它为每个测试问题随机采样k个其他测试问题。

检索Q-CoT和随机Q-CoT都调用零样本CoT [Kojima等人,2022年]为每个采样的问题qidemo生成推理链cdemoi(理由和答案),因为LLMs是不错的零样本推理者[Kojima等人,2022年]。除非另有说明,我们使用具有175B参数的GPT-3 [Brown等人,2020](text-davinci-002)作为LLM。

在高层次上,检索Q-CoT和随机Q-CoT都以qidemo,cdemoi对(i = 1,…,k)和qtest的串联作为输入,以预测qtest的推理链,该链最终包含答案(如图1右侧所示)。令我们惊讶的是,检索Q-CoT在算术数据集MultiArith [Roy和Roth,2015](表1)上的表现不如随机Q-CoT。请注意,检索方法最初是在有注释标签的任务中提出的[Rubin等人,2022年,Su等人,2022年],然而,调用零样本CoT并不能保证完全正确的推理链。因此,我们假设检索Q-CoT的较差性能是由零样本CoT的错误推理链引起的。为了测试这个假设,我们在另外两个有带注释推理链的训练集的数据集GSM8K [Cobbe等人,2021]和AQuA [Ling等人,2017]上进行了检索Q-CoT的实验。结果在表1中用†显示。在有注释推理链的设置下,检索Q-CoT甚至超过了手动CoT。结果表明,当有人工注释可用时,检索Q-CoT是有效的。

表1:不同抽样方法的准确率(%)。符号†表示使用带有标注推理链的训练集。

尽管人工注释很有用,但这种手工努力并非易事。然而,通过零样本CoT自动生成推理链的表现不如手动CoT,特别是当没有解决问题采样的挑战时。为了设计更有效的自动CoT,我们需要更好地理解其挑战。

3.1 检索-Q-CoT因相似性误导而失败

由于检索-Q-CoT使用像手册-CoT中那样的少量提示性示例,检索-Q-CoT预期也将表现出竞争力。然而,在检索-Q-CoT中,推理链(包括理由和答案)是由零样本-CoT生成的:它们可能存在错误,导致错误的答案。让我们简单地将带有错误答案的示例称为错误示例。直观地说,在检索到与测试问题相似的问题后,由零样本-CoT引起的错误示例可能会误导相同的大型语言模型(LLM)以错误的答案(例如,复制错误)进行类似的推理。我们将这种现象称为相似性误导。我们将研究相似性误导是否导致检索-Q-CoT性能不佳的原因。

首先,我们在MultiArith数据集的所有600个问题上调用零样本-CoT。其中,我们收集了128个问题(记为Q),在这些问题上零样本-CoT生成了错误的答案(错误率:21.3% = 128/600)。正如我们提到的,有了额外的示例,检索-Q-CoT和随机-Q-CoT预期会比零样本-CoT表现得更有竞争力。在零样本-CoT失败的Q中,我们称检索-Q-CoT或随机-Q-CoT仍然失败的那些问题为它们的未解决的问题。我们将未解决的问题数量除以128(Q中问题的数量)来计算未解决率。更高的未解决率意味着一种方法更可能像零样本-CoT一样仍然犯错误。

图2显示,检索-Q-CoT(46.9%)的未解决率远高于随机-Q-CoT(25.8%)。这表明,在为测试问题抽样相似问题时,检索-Q-CoT受到相似性误导的负面影响。

为了证明检索-Q-CoT的未解决问题倾向于相似,我们在表2中展示了一个案例研究。在左侧部分,检索到的示例问题与测试问题相似,并询问“他还需要多长时间才能煮熟剩下的?”由零样本-CoT生成的推理链产生的答案涉及“总数”而不是“剩下的”。遵循示例,检索-Q-CoT也因误解“剩下的”的含义而失败。相比之下,随机-Q-CoT在没有在示例中犯类似错误的情况下,更好地正确理解了“剩下的”,这得益于相对多样化(随机)的示例。

3.2 错误频繁出现在同一个簇中

受表2观察结果的启发,我们使用k-means将所有600个测试问题分成k=8个簇,每个簇包含相似的问题。有了这些簇和零样本-CoT(在3.1节中)生成的推理链,现在我们好奇某些簇是否包含零样本-CoT经常失败的问题。因此,我们计算每个簇的错误率(零样本-CoT答案错误的问题数/总问题数)。

表2:检索-Q-CoT和随机-Q-CoT构建示例和预测的示例。上半部分包含自动构建的示例,下半部分包含测试问题以及预测的推理链。

如图3所示,存在一个簇(簇2)零样本-CoT错误频繁(52.3%)。这种现象可能是普遍的,因为零样本-CoT可能缺乏解决目标任务中某些常见问题的技能。为了方便描述,让我们将错误率最高的簇称为频繁错误簇(例如,图3中的簇2)。因此,以零样本方式生成的推理链的不完美性质,使用基于相似性的方法检索多个频繁错误簇内的类似问题存在风险。对于频繁错误簇中的测试问题,检索-Q-CoT更容易构建包含多个类似错误的示例。结果,检索-Q-CoT经常像零样本-CoT一样犯类似的错误,这一点在图2中的更高未解决率中得到了重申。

3.3 多样性可能减轻相似性误导

到目前为止的分析有力地表明,LLMs(大型语言模型)仍然不是完美的零样本推理器;因此,我们的目标是减轻它们的零样本-CoT错误的影响,特别是减轻Auto-CoT设计中的相似性误导。

正如我们稍后将展示的(第5.5节),展示一小部分错误(例如,8个中的1或2个错误示例)不会损害测试问题的整体推理性能。假设所有错误示例的问题都落入同一个频繁错误簇;那么从每个不同的簇中抽取一个问题将导致构建所有8个正确示例的机会超过7/8 = 87.5%。由于不同的簇反映了问题的多样性语义,这种基于聚类的抽样方法可以被视为基于多样性的,与基于相似性的检索-Q-CoT形成鲜明对比。一方面,以多样性抽样问题可能减轻相似性误导的影响(第3.1节)。另一方面,如果我们将每个示例视为一种技能,多样化的示例似乎涵盖了更多解决目标问题的替代技能:即使示例中仍然存在一小部分(例如,1/8)的错误,性能也不会受到负面影响(将在图6中展示)。

尽管如此,基于聚类的抽样方法可能仍然会构建一小部分错误的示例,例如来自频繁错误簇中的问题。正如我们稍后将展示的,这些错误示例中的一些可能通过启发式方法被排除。例如,错误的示例通常伴随着长问题和长理由。使用简单通用的启发式方法,例如只考虑带有较短理由的较短问题,进一步帮助减轻零样本-CoT能力的不完美(附录C.2)。

4 自动CoT:自动构建思维链提示

基于第3节中的观察和考虑,我们提出了一种自动CoT(Auto-CoT)方法,用于自动构建包含问题和推理链的示例。自动CoT由两个主要阶段组成:(i)问题聚类:将给定数据集的问题划分为几个簇;(ii)示例抽样:从每个簇中选择一个代表性问题,并使用简单的启发式方法通过零样本CoT生成其推理链。整个过程在图4中进行了说明。

图4:自动CoT方法的概览。与图1中的手动CoT不同,示例(右侧)是使用带有“让我们一步一步思考”提示的LLM逐个自动构建的(总数:k)。

4.1 问题聚类

因为基于多样性的聚类可能减轻相似性误导(第3.3节),我们对给定的问题集Q执行聚类分析。我们首先通过Sentence-BERT[Reimers和Gurevych,2019]为Q中的每个问题计算一个向量表示。上下文化的向量被平均化以形成一个固定大小的问题表示。然后,通过k-means聚类算法处理问题表示,以产生k个问题簇。对于每个簇i中的问题,将它们按距离簇i中心的升序排列成一个列表q(i) = [q(i)1, q(i)2, …]。这个问题聚类阶段在算法1中进行了总结。

4.2 示例抽样

在第二阶段,我们需要为这些抽样问题生成推理链,然后抽样满足我们选择标准的示例。

更具体地说,我们为每个簇i(i = 1, …, k)构建一个示例d(i)(问题的串联,一个理由和答案)。对于簇i,我们在排序列表q(i) = [q(i)1, q(i)2, …](由算法1获得)中迭代问题,直到满足我们的选择标准。换句话说,更靠近簇i中心的问题会被更早地考虑。假设正在考虑第j个最近的问题qj(i)。一个提示输入被制定为:[Q: qj(i). A: [P]],其中[P]是一个单一提示“让我们一步一步地思考”。这个形成的输入被输入到LLM中,使用零样本CoT[Kojima等人,2022]输出由理由rj(i)和提取的答案aj(i)组成的推理链。然后,通过串联问题、理由和答案构建第i个簇的候选示例dj(i):[Q: qj(i), A: rj(i)◦aj(i)]。

类似于Wei等人[2022a]中手工制作示例的标准,我们的选择标准遵循简单的启发式方法,以鼓励抽样更简单的问题和理由:如果它有一个问题qj(i),不超过60个token和一个理由rj(i),不超过5个推理步骤,则将选定的示例d(i)设置为dj(i)。

正如算法2所总结的,在对所有k个簇进行示例抽样后,将构建k个示例[d(1), …, d(k)]。构建的示例用于增强测试问题qtest的上下文学习。具体来说,输入是所有示例[d(1), …, d(k)]的串联,然后是[Q: qtest. A: [P]]。这个输入被输入到LLM中,以获得qtest的最终答案的推理链(图4右侧)。

5 实验

我们简要描述实验设置,并展示主要的实验结果。更多的实验细节和结果可以在附录中找到。

5.1 实验设置

任务和数据集。我们的方法在来自三个推理任务类别的十个基准数据集上进行了评估:

(i)算术推理(MultiArith [Roy和Roth, 2015], GSM8K [Cobbe等人, 2021], AddSub [Hosseini等人, 2014], AQUA-RAT [Ling等人, 2017], SingleEq [Koncel-Kedziorski等人, 2015], SVAMP [Patel等人, 2021]);(ii)常识推理(CSQA [Talmor等人, 2019], StrategyQA [Geva等人, 2021]);(iii)符号推理(最后字母串联,硬币翻转)[Wei等人, 2022a]。

实现。我们使用公共的GPT-3 [Brown等人, 2020] 文本davinci-002版本,拥有175B参数作为LLM [Ouyang等人, 2022],除非另有说明。我们选择这个LLM是因为它在公共LLM中拥有最强的CoT推理性能,如Kojima等人 [2022] 和Wei等人 [2022a] 报告的。我们还评估了Codex模型 [Chen等人, 2021] (code-davinci-002) 作为LLM。按照Wei等人 [2022a],示例的数量k是8,除了AQuA和Letter (4),CSQA (7),和StrategyQA (6)。

基线。我们将我们的方法与四种基线方法进行比较:零样本 [Kojima等人, 2022],零样本CoT [Kojima等人, 2022],少样本 [Wei等人, 2022a],和手动CoT [Wei等人, 2022a]。零样本CoT和手动CoT在图1中进行了说明。零样本基线将测试问题与提示“答案是”串联作为LLM输入。少样本基线与手动CoT的LLM输入相同,除了从所有示例中移除了理由。

5.2 自动CoT在十个数据集上的竞争性能

表3比较了来自三个推理任务类别的十个数据集上的准确性。零样本和零样本CoT的结果取自Kojima等人[2022],少样本和手动CoT的结果取自Wei等人[2022a],自动CoT的结果是在三次随机运行中平均得出的。总体而言,自动CoT始终匹配或超过了需要手动设计示例的CoT范式的表现。由于手动设计的成本,手动CoT可能会为多个数据集设计相同的示例(例如,5/6的算术数据集)。相比之下,自动CoT更加灵活和任务适应性:每个单独的数据集都获得了自动构建的自己的示例。

表3:来自三个推理任务类别的十个数据集上的准确性

5.3 问题聚类的可视化

图5通过PCA投影可视化了十个数据集上的问题聚类。图示表明存在通用模式,不同的模式可能由不同簇中的问题所特征化。我们在附录D中展示了自动CoT构建的示例。

图5:在十个推理任务数据集上的问题聚类。星号表示簇中心。

5.4 使用Codex LLM的普遍有效性

为了评估使用不同LLM的自动CoT的普遍有效性,这里我们将LLM更改为Codex模型[Chen等人, 2021]。如表4所示,与使用GPT-3(text-davinci-002)LLM的表3相比,Codex LLM在手动CoT上带来了性能提升。尽管如此,使用Codex LLM,自动CoT的整体性能与手动CoT相比仍然具有竞争力,为自动CoT的有效性提供了额外的经验证据。

5.5 错误示例的影响

回想我们在第3.3节中的讨论,可能会有错误的示例(其答案是错误的)。为了看看多样性是否减轻了这种影响,我们设计了一个In-Cluster Sampling基线,它通过从包含测试问题的同一簇中随机抽样问题来构建示例。图6比较了在MultiArith上不同错误示例数量下的准确性。与In-Cluster Sampling相比,auto-CoT(使用基于多样性的聚类)受错误示例的影响较小:即使在呈现50%错误示例时,其性能仍然没有显著下降。

5.6 更具挑战性的流式设置

CoT(Chain of Thought,思维链)研究通常假设给定了一个带有测试问题的完整数据集[Wei等人, 2022a, Kojima等人, 2022]。基于给定的数据集,自动CoT会抽样问题来构建示例。尽管如此,现在我们考虑一个更具挑战性的流式设置,其中一小批测试问题(比如说m个问题)一次到来,就像在数据流中一样。

为了应对这一挑战,我们将自动CoT扩展为自举版本自动CoT*:(i)初始化一个空集M0;(ii)当第一批问题q1(1), …, qm(1)到达时,调用零样本CoT(由于m很小,不进行聚类)为每个qi(1)获得其推理链c(1)i。将问题-推理链对(q1(1), c(1)1), …, (qm(1), c(1)m)添加到M0中,并称新集合为M1;(iii)当第b批(b > 1)问题q(b)1, …, q(b)m到达时,在Mb−1中使用现有问题和推理链构建示例(像自动CoT一样),并使用这些示例对每个qi(b)进行上下文推理。将问题-推理链对(q(b)1, c(b)1), …, (q(b)m, c(b)m)添加到Mb−1中,并称新集合为Mb。

图7比较了在这个流式设置中每个批次(m = 30)在MultiArith上的准确性(扩展版本:附录中的图11)。正如预期的那样,对于第一批,自动CoT*和零样本CoT获得相同的准确性。从第二批开始,自动CoT*的表现与手动CoT相当。这一结果表明,我们的方法在更具挑战性的流式设置中仍然有效。

6 结论

LLMs(大型语言模型)已经通过CoT(思维链)提示显示出推理能力。手动CoT的优越性能依赖于手工制作的示例。为了消除这种手工设计,我们提出了自动CoT来自动构建示例。它通过抽样多样性的问题并生成推理链来构建示例。在十个公共基准推理数据集上的实验结果表明,使用GPT-3,自动CoT始终匹配或超过了需要手工设计示例的CoT范式的表现。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

<think>好的,我现在要解释一下大模型中的思维是什么。首先,我需要确保自己正确理解这个概念。思维(Chain of Thought,CoT)应该和大型语言模型(比如GPT系列)如何生成回答有关吧。可能是指模型在处理复杂问题时,通过中间步骤的推理来逐步得出答案,而不仅仅是直接输出结果。不过我需要进一步确认。 记得之前读过的资料里提到,思维是一种让模型展示其推理过程的方法,尤其是在解决需要多步推理的问题时。比如数学题或者逻辑推理题,模型不仅给出答案,还展示中间的思考步骤。这样做的好处可能包括提高答案的准确性和可解释性。但具体机制是怎样的呢? 可能涉及到在训练或提示prompt)设计时,引导模型分解问题,逐步解决。例如,当用户问一个复杂的问题,模型会被设计成先生成第一个步骤,然后基于此生成下一步,直到最终答案。这种方法可能模仿人类的思考方式,逐步分析,减少错误。 另外,思维可能有两种实现方式:一种是显式地在生成的文本中包含推理步骤,比如在回答数学题时先列出已知条件,再写出方程式,最后求解;另一种可能是模型内部在处理时的隐式步骤,但用户看到的是显式的步骤。不过通常用户提到的思维应该是指显式的、可观察到的中间推理过程。 需要验证是否正确。比如,在原始论文中,作者可能提出通过在输入中提供示例,展示如何逐步推理,从而让模型学会在生成时模仿这种分步过程。例如,在few-shot learning中,给出几个带有详细步骤的问题和答案,模型在遇到新问题时也会生成类似的步骤。 另外,思维可能帮助模型处理那些需要多步逻辑推理的问题,而不仅仅是依赖模式匹配或记忆。例如,直接问模型“如果小明有5个苹果,吃了2个,又买了3个,现在有多少个?”模型如果仅给出答案5,但使用思维的话,模型会输出中间计算过程:5-2=3,3+3=5,因此答案是5。这样用户可以看到推理是否正确,同时模型可能更少犯计算错误。 不过,思维是否仅适用于数学问题?可能还包括其他需要推理的领域,比如常识推理、逻辑谜题等。例如,解决时间安排问题,模型需要分步骤考虑每个人的可用时间,排除冲突时段,最后确定合适的时间。 但还需要考虑技术细节,比如是否依赖于特定的训练方法,或者仅仅通过提示工程(prompt engineering)就能实现。根据已有的知识,思维更多是通过提示设计,即在输入中给出带有分步推理的例子,激发模型生成类似的结构,而不需要改变模型架构或重新训练。这属于一种引导生成策略,让模型学会在回答时展示其“思考”过程。 不过,可能还有其他变体,比如自动生成思维,或者结合外部工具(如计算器、搜索引擎)来辅助推理步骤,确保中间步骤的正确性。这可能提升最终答案的准确性。 总结一下,思维的关键点包括:分步推理、显式中间步骤、提高复杂问题解答能力、通过提示工程实现、模仿人类逻辑流程。同时,可能存在的挑战包括步骤是否正确、是否会产生冗余或错误的中间步骤,以及如何有效引导模型生成高质量的思维。 接下来需要以清晰的结构将这些点组织起来,确保符合用户的要求,使用中文,结构清晰,分步骤解释。同时注意数学表达式的格式,使用$...$和$$...$$,但用户的问题中没有数学内容,可能不需要太多例子。需要确认是否有必要在解释中加入示例,比如举一个数学问题的思维过程,以帮助用户理解。 最后,确保回答准确,没有技术错误,比如不要混淆思维与自回归生成的区别。思维强调的是中间推理步骤的显式展示,而自回归是模型逐个生成token的过程。两者相关,但侧重点不同。</think>大模型中的**思维(Chain of Thought, CoT)**是一种引导模型通过分步推理解决复杂问题的技术,其核心是让模型显式展示中间思考步骤,而非直接输出最终答案。以下是逐步说明: --- ### **1. 核心概念** - **模仿人类推理**:人类在解决复杂问题时通常会分解为多步逻辑推导。思维通过提示设计,让模型以类似方式生成中间步骤。 - **显式中间过程**:模型在回答时需输出逐步推理(如数学运算、逻辑判断),增强答案的可解释性和可靠性。 --- ### **2. 实现原理** - **提示工程(Prompt Engineering)**: 通过在输入中提供带有分步推理的示例(few-shot learning),模型学习如何分解问题。 **示例输入**: ``` 问题:小明有5个苹果,吃了2个,又买了3个,现在有多少个? 推理:最初有5个,吃掉2个后剩下5-2=3个,再买3个得到3+3=6个。 答案:6 ``` 模型遇到新问题时,会模仿生成类似结构。 - **自回归生成的扩展**: 模型基于前文逐个生成token时,需主动构建逻辑条,而非跳跃式输出结果。 --- ### **3. 关键优势** - **提升复杂问题准确率**: 对于需多步推理的任务(如数学题、逻辑谜题),分步推理可减少错误。 例如直接提问: > “若1本书售价$10,买3本再打8折,总价多少?” **无思维**:模型可能直接输出$24(正确)或错误答案。 **有思维**:模型生成步骤: $$3 \times 10 = 30 \quad \rightarrow \quad 30 \times 0.8 = 24$$ - **增强可解释性**: 用户可验证中间步骤,判断模型是否合理。 --- ### **4. 典型应用场景** 1. **数学问题**: 解方程、应用题等需逐步计算的任务。 **示例**: $$x + 5 = 12 \quad \Rightarrow \quad x = 12 - 5 \quad \Rightarrow \quad x = 7$$ 2. **逻辑推理**: 如时间安排、因果关系推断等。 **示例**: “A比B早到10分钟,B比C早到5分钟,A何时到达?” 推理需分步比较时间差。 3. **常识问答**: 结合常识与多步推导,例如:“冰箱运行后房间温度会上升吗?” 模型需推理:冰箱释放热量 > 散热 > 室温升高。 --- ### **5. 技术挑战** - **错误传播风险**: 若中间步骤出错(如错误计算$5-2=4$),最终答案将受影响。 - **生成冗余步骤**: 模型可能添加无关推理,需设计提示约束逻辑。 - **依赖高质量示例**: Few-shot示例需精准反映推理过程,否则模型难以学习。 --- ### **6. 扩展技术** - **自动思维(Auto-CoT)**: 自动生成推理示例,减少人工设计成本。 - **工具辅助推理**: 结合计算器、知识库等验证中间步骤,如调用计算器执行$$(3 \times 10) \times 0.8$$。 --- ### **总结** 思维通过显式分步推理,显著提升大模型解决复杂问题的能力,是增强模型逻辑性和可解释性的重要技术。其效果高度依赖提示设计和示例质量,未来或进一步结合自动化工具与外部验证机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值