在 AI 领域,尤其是在自然语言处理的子领域中,链式思维提示 (Chain of Thought prompting) 已经成为了一种重要的工具。它不仅提高了大型语言模型(LLM)的逻辑推理能力,而且还提升了模型在处理复杂任务时的准确性和效率。
本文将从 CoT 的概念、优势、局限性以及与提示语链的对比多个方面,并结合一些具体的案例来详细讲解链式思维提示。
我们在上学的时候,都做过数学题。无论是考试也好,还是日常做题也好,老师教给我们的习惯是,先写「解」字,然后分析题目,随后一步一步地推理和解答问题,最后得出答案。这个思维方式,也同样可以应用在 AI 上。
链式思维提示 (Chain of Thought prompting) 作为一种提示语工程(Prompt Engineering)技术,其核心在于通过精心构建输入提示,以模仿人类的推理过程,从而提升语言模型在处理逻辑、计算和决策任务时的性能和效率,也让模型输出的内容更直观易懂。
为了构建有效的链式思维提示,我们通常会在查询的末尾附加一条指令,比如 请描述你的推理步骤
或 请逐步解释你的答案
,这样可以引导 LLM 进行深入的思考。这种方法要求 LLM 不能只是给出最终结果,还必须要详细阐述是如何形成这样的答案的,让 LLM 将中间步骤一并地回答出来。
Google Brain 研究团队有一篇论文展示了关于链式思维提示在多项算术、常识和符号推理的基准测试中,相较于标准提示技术,展现出了更优越的性能。
We explore how generating a chain of thought – a series of intermediate reasoning steps – significantly improves the ability of large language models to perform complex reasoning. In particular, we show how such reasoning abilities emerge naturally in sufficiently large language models via a simple method called chain of thought prompting, where a few chain of thought demonstrations are provided as exemplars in prompting. Experiments on three large language models show that chain of thought prompting improves performance on a range of arithmetic, commonsense, and symbolic reasoning tasks. The empirical gains can be striking. For instance, prompting a 540B-parameter language model with just eight chain of thought exemplars achieves state of the art accuracy on the GSM8K benchmark of math word problems, surpassing even finetuned GPT-3 with a verifier.
我们探索了生成思维链(一系列中间推理步骤)如何显著提升大型语言模型执行复杂推理的能力。具体而言,我们展示了一种名为“思维链提示”的简单方法,可以使足够大的语言模型自然地产生这种推理能力。这种方法通过在提示中提供少量思维链示例作为样例来实现。在三个大型语言模型上的实验表明,思维链提示可以在一系列算术、常识和符号推理任务上提高性能。 这种方法带来的性能提升是显著的。例如,使用仅有八个思维链示例对一个 540B 参数的语言模型进行提示,就可以在数学应用题基准测试 GSM8K 上实现最先进的精度,甚至超过了经过微调并带有验证器的 GPT-3 模型。(由 Google Gemini 翻译,论文链接可在文章底部找到)
无论是在实际生活还是在我们解决各类问题的场景下,当我们面对复杂问题时,我们倾向于将其分解为更小、更易管理的部分。比如,解决复杂的数学方程往往就会涉及多个子步骤,每个步骤都是用来推导出正确答案的关键。因此,链式思维提示要求 LLM 模仿这种分解问题并逐步解决问题的过程,本质上是要求模型 大声思考
,而不是只提供一个直接的解决方案。
我们来看一个案例:当用户向 LLM 提出一个经典的河流穿越逻辑谜题,并要求 逐步描述你的推理
时,模型会逐步解决问题,描述每次过河的过程,直至找到最终的解决方案。
一个男孩和两只绵羊、一头狼一起旅行,他们需要坐船穿越一条河流,但只有两只船可用,并且每只船都很小,只能容下一个人和一只小动物。如果单独留下两只绵羊中的其中一只,饿狼就会吃掉他们。要怎么样才能保证这个小男孩和绵羊、狼一起安全到达河对岸呢? 请逐步描述你的推理过程。
以下是小男孩和两只绵羊、一头狼安全到达河对岸的步骤:
男孩先将一只绵羊带到河对岸,留下狼和另一只绵羊在河边。
男孩独自返回河边,没有带任何动物。
男孩将另一只绵羊带到河对岸,留下狼在河边。
男孩将狼带到河对岸,留下第一只绵羊在河边。
男孩返回河边,将第一只绵羊带到河对岸,完成所有动物的运送。
推理过程:
这个方法利用了男孩和狼之间的时间差,确保了所有动物的安全。
这里还有一些其他的链式思维提示例子,它们展示了如何通过逐步推理来解决问题,你可以尝试着讲这些提示语放到对应的 LLM 中去,看看它会给出什么样的回答:
我有一块圆形蛋糕,切成了八等份。小黄吃了三片,他的朋友吃了两片。还剩下多少片?请逐步解释你的推理。
阿润在冬天的某个晚上把一杯水放在外面,室温是零下 20 度左右。第二天早上,他发现玻璃杯裂了。请逐步解释玻璃杯为什么会裂。
如果所有的玫瑰都是花,同时,又由于有些花很快就会凋谢,我们能否得出结论说有些玫瑰很快就会凋谢?请逐步解释你的推理。
一个教室里每三把红椅子就有两把蓝椅子。如果教室里总共有 30 把椅子,那么有多少把蓝椅子?逐步描述你的推理。
LLM 在其庞大的文本数据集上的训练过程中,接触到了大量的解释、定义和解决问题的例子,这些数据集包括书籍、文章和大部分开放的互联网信息。链式思维提示通过触发模型调用和应用这些信息,这样就可以从这个巨大的知识库中获取到有效的信息。
然而,我们依然必须认识到 LLM 在逻辑推理方面的局限性。尽管 LLM 擅长生成连贯、相关的文本(其实都还并不算完美,胡说八道不相关的内容的情况数不胜数),但它们目前在提供事实信息或解决问题方面,确实还差强人意上,它们会经常遇到困难,尤其是在更复杂的问题上。
链式思维提示的优势在于,它允许 LLM 一次只处理有限的信息量,将复杂问题分解成更简单的子问题,从而来提高模型响应的准确性和精确性。链式思维提示可以通过引导模型采取结构化的推理方法来解决这一限制,这样就有助于减少逻辑失误和疏忽的可能性。
另外一个重要的优势就是,链式思维提示可以通过使模型得出答案的过程更加透明,帮助模型调试和改进。因为链式思维提示要求模型明确地描述一个推理过程,它们为模型测试者和开发者提供了更好的洞察力,了解模型是如何得出特定结论的。这反过来可以使在完善模型时更容易识别和纠正错误。
在未来的工作中,将链式思维提示与微调结合起来,可以增强 LLM 的推理能力。例如,在一个包含逐步推理和逻辑演绎的精选例子的训练数据集上对模型进行微调,可以进一步提高链式思维提示的有效性。
重要的是,正如 Google Brain 研究团队在他们的论文中强调的,链式思维提示从 LLM 中引出的类似推理的表现,并不意味着模型实际上在思考。使用 LLM 时,必须记住,模型是一个基于概率预测文本序列的神经网络,目前并没有证据表明 LLM 能像人类一样进行推理。这一区别对于我们解 LLM 的局限性和保持对其能力的现实期望至关重要。
LLM 缺乏意识和认知反思,它们的通用知识完全来自于训练数据,因此它们给出的内容很有可能会反映出该数据集的错误、缺陷和偏见。
尽管 LLM 可以准确地模仿逻辑推理的结构,但并不一定意味着其结论本身就是准确的。链式思维提示确实可以作为 LLM 输出的有价值的一个有效 Prompt 机制,LLM 可能呈现出连贯、结构良好的输出,但是其中可能会包含逻辑错误和疏漏,用一句我们中学老师的话说就是:按照正确的计算过程得出错误的答案。
当然,也不是说就没有更好的方案。像诸如检索增强生成(RAG)之类的技术有可能会在一定程度上解决问题。RAG 可以使 LLM 能够在实时请求提供事实信息时,访问外部来源的数据,比如经过审核的数据库或互联网上的信息。这样一来,RAG 就消除了大家对于 LLM 仅依赖其训练数据中获得的内部知识库的顾虑,毕竟,这些知识库可能存在缺陷或不完整。
然而,就算 RAG 可以提高 LLM 输出的准确性和时效性,但它并没有从根本上解决逻辑推理的问题。推理和逻辑推导不仅仅需要事实回忆,还涉及通过逻辑和分析得出结论的能力,这些方面的 AI 性能更密切地与 LLM 本身的算法架构和训练有关。
此外,链式思维提示的可扩展性仍然是一个问题。尽管顺序、逐步推理的基本原则在 AI 和机器学习中广泛适用,但由于思维连提示依赖于 LLM 在语言任务上的复杂表现,所以这项技术目前仅限于 LLM。
LLM 庞大的规模需要大量的数据、计算和基础设施,这会引发对于可访问性、效率和可持续性的问题。为了应对这些问题,现在市面上已经有部分小规模的 LLM 发布了出来(比如 Meta 的 Llama 3),虽然它们不如那些大型的 LLM 强大,但在各种细分领域上的表现极具竞争力,它们的最大优势就是只需要较少的计算资源。然而,链式思维提示的优势是否能完全转移到较小的模型上还有待观察,因为减少它们的能力可能会损害它们解决问题的有效性。
最后也是最重要的一点,链式思维提示是一种更有效使用现有模型的技术,而不是一种训练方法。虽然链式思维提示可以帮助我们从预训练的 LLM 中获得更好的结果,但 Prompt Engineering 也不是万能的,并不能解决那些应该在训练阶段就该处理的模型限制。
虽然链式思维提示和提示语链听起来相似,而且都是 Prompt Engineering 技术,但它们在一些重要方面也有所不同。
正如上文中讲到的那样,链式思维提示要求模型描述用于推理出最终答案的中间步骤,这一过程包含在一个回答中。这对于需要详细解释、规划和推理的问题非常有用,例如数学问题和逻辑谜题,解释思考过程有助于我们理解问题的解决方案。
相比之下,提示链涉及一系列迭代的提示语和回答,其中每个后续的提示语都是基于模型对前一个提示语的输出来制定的。这使得提示语链成为更具创造性、探索性任务的有用技术,这些任务涉及逐步细化,如生成详细叙述和头脑风暴想法。
链式思维提示和提示语链的根本区别在于迭代和互动性。链式思维提示旨在将推理过程封装在一个详细的、自包含的回答中。而提示语链则采取了更为动态的方法,通过多轮互动,让一个想法随着时间的推移而发展。这种迭代过程不仅促进了思想的深入发展,而且还为创新提供了更广阔的空间。
总结而言,链式思维提示和提示链都是强大的 Prompt Engineering 技术,它们通过不同的方式增强了 LLM 的能力。链式思维提示通过详细的推理步骤提高了透明度和理解性,而提示链则通过迭代互动促进了创意的发展。
选择哪种技术取决于特定任务的需求和目标。无论选择哪种方法,都要记住,这些技术都是工具,最终效果取决于你如何使用它们,正确应用这些技术可以显著提高 LLM 的性能和准确性,但也需要你对模型的局限性有清晰的认识。
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料
包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
保证100%免费
】😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓