大模型提示工程进阶:思维链与思维树技术解析
本文主要探讨了大模型在逻辑推理方面的局限性及相应的提示工程解决方案。重点介绍了零样本、少样本提示方法,以及提升推理能力的思维链(CoT)和最少到最多(LtM)提示策略。通过分解问题和分步引导,显著提高了模型在处理复杂数学和逻辑任务时的准确率。文章详细阐述了各方法的原理、适用场景及具体实施步骤,为大模型应用开发提供了实用的技术指导。

本文主要探讨了大模型在逻辑推理方面的局限性及相应的提示工程解决方案。重点介绍了零样本、少样本提示方法,以及提升推理能力的思维链(CoT)和最少到最多(LtM)提示策略。通过分解问题和分步引导,显著提高了模型在处理复杂数学和逻辑任务时的准确率。文章详细阐述了各方法的原理、适用场景及具体实施步骤,为大模型应用开发提供了实用的技术指导。

在使用 ChatGPT 等大语言模型(LLM)应用时,如何编写高质量的 Prompt(提示词)是获取理想回答的关键。掌握大模型提示词的基本原则并善用模板,能显著提升生产力。
在面对逻辑推理、数学计算和算术等应用场景中,基础的大模型表现往往无法满足需求。这是因为大模型本质上是基于概率的文本预测系统,而非显式的逻辑推理引擎。
为了解决上述问题,需要理解'涌现能力'。大模型(LLM)的涌现能力指的是模型未经过特定任务数据的训练,但在某些技术手段下,仍然能够解决特定领域问题的能力。
目前引导和优化这种涌现能力的方法主要分为两类:提示工程(Prompt Engineering)和微调(Fine-tuning)。相比微调,提示工程成本更低、使用更加灵活,且对于提升模型在小语义空间内的复杂语义理解效果更好。这也是提示词工程兴起的根本原因。
One-shot 和 Few-shot 最早由 OpenAI 研究团队在相关论文中率先提出,这篇论文被视为提示工程方法的开山之作,不仅介绍了两大核心方法,也详细阐述了背后的原理。
Zero-shot(零样本)Prompt 提示词技术使得我们在无需做特定训练或提供额外数据的情况下,依然可以让大模型完成一些简单任务。这种方式非常快速便捷,适合验证新想法或在简单场景中优先使用。
然而,在复杂的逻辑推理和数学算术问题等场景下,Zero-shot 的表现往往不佳。例如,面对经典的逻辑推理题,模型可能只能正确回答简单的线性运算问题,而对于多步推理问题则容易出错。
Few-shot(少样本)提示方法的核心思想是将一些类似的问题及其答案作为 Prompt 的一部分进行输入。具体的编写格式通常以 Q(问题)开头、A(答案)开头,不同的问答对话之间通过换行符分隔,以便于模型清晰识别上下文。
示例的作用在于为模型提供推理的范式。在不带示例的情况下,模型可能无法输出期望的结构化结果;而在加入示例后,模型能够模仿示例的逻辑路径,从而得到更准确的结果。
思维链(Chain of Thought, CoT)是一种用于帮助语言模型进行复杂推理和思考过程的提示工具。它通过引导模型逐步解决问题,以一系列连贯的步骤展示推理的思路和逻辑关系。
Zero-shot-CoT 是在零样本情况下,通过修改提示词后缀来激发模型的思维链。一种非常简单而有效的方式是在提示词尾部追加一句 "Let's think step by step"(请一步步进行推理并得出结论)。
经过大量测试,在中文语境下,指令'请一步步进行推理并得出结论'的效果要远远好于'请让我们一步步进行思考'等类似的提示词语句。这种方法能够大幅提高模型在处理复杂推理任务时的准确率。
Zero-shot-CoT 是通过修改提示词后缀激发思维链,而 Few-shot-CoT 则是通过编写包含思维链推导过程的样本作为提示词,让模型学会这种推导方式,从而更好地完成推导任务。这相当于给模型提供了带有中间推理步骤的示范。
在 CoT 被验证能大幅提升推理能力后,谷歌大脑团队提出了 Least-to-Most(LtM)提示方法。该方法旨在解决 CoT 泛化能力不足的问题——即人工编写的思维链样本可能无法很好地迁移到新问题中。LtM 能够将模型在 GSM8K 等基准测试上的表现提高至 62%,甚至在某些特殊语义解读场景下达到 3 倍于 CoT 的效果。
LtM 的核心思想是让大模型自己找到解决当前问题的思维链。整个提示过程分为两个阶段:
这种由少变多的过程被称为 Least-to-Most。整个过程其实可以看作是动态生成的 CoT 过程,模型根据每个不同问题单独生成解决链路,从而更精准地解决复杂推理问题。
以一个经典问题为例:'艾米需要 4 分钟能爬到滑梯顶部,然后需要花费 1 分钟滑下来,现在水滑梯将在 15 分钟后关闭,请问在关闭之前她能滑多少次?'
使用 LtM 提示流程:
这种提示模板'为了解决''这个问题,我们首先要解决的问题是'是经过验证的、最为恰当且能得到准确回答的提示词模板,建议在实际开发中经常使用并验证其功能。
本文梳理了针对大模型不擅长领域的提示方法。从基础的 Zero-shot/Few-shot,到进阶的 CoT,再到复杂的 LtM,这些技巧能帮助开发者理解和掌握更进阶的提示工程方法,以便在大模型开发中实现更高效的应用和优化。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online