前言
在大型语言模型(LLM)的应用实践中,如何编写高质量的提示词(Prompt)是获取理想回答的关键。本文主要探讨在使用 ChatGPT 等大模型时,如何通过进阶的提示工程技巧来提升模型的推理能力,特别是针对逻辑、数学和算术等复杂场景。
深入探讨大模型提示工程中的高级推理技术,涵盖零样本、少样本提示法,重点解析思维链(CoT)、最少到最多(LtM)及思维树(ToT)等进阶方法。通过具体示例说明如何利用提示词引导模型进行复杂逻辑推理与问题解决,帮助开发者优化大模型应用效果,提升在数学、逻辑及算术场景下的回答质量。

在大型语言模型(LLM)的应用实践中,如何编写高质量的提示词(Prompt)是获取理想回答的关键。本文主要探讨在使用 ChatGPT 等大模型时,如何通过进阶的提示工程技巧来提升模型的推理能力,特别是针对逻辑、数学和算术等复杂场景。
了解了大模型提示词的基本原则并善用模板,能显著提升生产力。然而,面对复杂的推理任务,基础提示往往力不从心,需要引入更高级的策略。
在研究进阶 Prompt 的同时,社区中出现了许多所谓的'咒语'或自动化工具(如 Prompt Creator),旨在辅助完善提示词。虽然这些工具有一定参考价值,但理解底层原理才是掌握提示工程的核心。
在面对逻辑推理、数学计算和算术应用场景中,基础的大模型表现往往无法满足需求。这引出了另一个重要概念:大模型的涌现能力。
大模型(LLM)的涌现能力,指的是模型未经过特定任务数据的训练,但在某些技术手段下,仍然能够解决特定领域问题的能力。
提示工程和微调同属对模型涌现能力的引导和优化方法。相比微调,提示工程成本更低、使用更加灵活,且对于提升模型在小语义空间内的复杂语义理解效果更好。这也是提示词工程兴起的根本原因。
One-shot 和 Few-shot 最早由 OpenAI 研究团队提出,不仅介绍了提示工程的两大核心方法,也详细阐述了背后的原理。
Zero-shot Prompt 使得我们在无需做特定训练的情况下,依然可以让大模型完成一些简单任务。我们无需提供额外数据或微调,在很多情况下能得到不错的效果。这是一种快速便捷的方式,适合验证新想法。
在简单的场景中,优先考虑 Zero-shot。
在 Zero-shot 情况下,模型的逻辑推理能力较弱,通常只能处理线性运算过程。对于经典的四道推理题,模型往往只能正确回答第一个,其余答错。这说明模型的基础推理能力存在局限,需要进阶技术。
Few-shot 提示方法并不复杂,只需要将一些类似的问题 + 答案作为 prompt 的一部分进行输入即可。
Few-shot 的编写格式:
当需要输入多段问答作为提示词时,以 Q 作为问题的开头、A 作为回答的开头,
并且不同的问答对话需要换行以便于清晰展示。
示例的作用在于让模型模仿给定的模式。例如,在不带示例的情况下,模型可能无法输出期望结果;而在加入示例后,模型能明显得到预期的输出效果。
思维链(Chain of Thought)是一种提示工具,用于帮助语言模型进行复杂的推理和思考过程。它通过引导模型逐步解决问题,以一系列连贯的步骤展示推理的思路和逻辑关系。
基本思想是将推理过程分解为多个步骤,并在每个步骤中指导模型逐步进行推理。每个步骤都通过自然语言描述,使模型能够理解和执行每个推理阶段所需的操作。
具体而言,思维链提示通常由多个中间步骤组成,每个中间步骤解释了问题的一个方面或子问题。模型根据前一步的结果推断下一步。通过这种逐步推理,模型可以累积正确的推断。
Zero-shot-CoT 是在零样本提示下,通过修改提示词后缀激发模型的思维链。一种非常简单而有效的方式是在提示词尾部追加一句 "Let's think step by step"。
如果切换到中文语境,经过大量测试,结论表明:'请一步步进行推理并得出结论' 要远远好于 '请让我们一步步进行思考' 等类似的提示词语句。
Zero-shot-CoT 是通过修改后缀激发思维链,而 Few-shot-CoT 则是通过编写思维链样本作为提示词,让模型学会思维链的推导方式,从而更好地完成推导任务。
在谷歌大脑提出的 CoT 被验证能大幅提升推理能力后,另一团队发表了论文《LEAST-TO-MOST PROMPTING ENABLES COMPLEX REASONING IN LARGE LANGUAGE MODELS》,提出了 Least-to-Most (LtM) 提示方法。
该方法能将模型在 GSM8K 上的表现提高至 62%,甚至在某些特殊语义解读场景下能达到 3 倍于 CoT 的效果。这是截至目前围绕模型推理能力提升最为有效的提示学习方法之一。
LtM 提出的初衷是为了解决 CoT 泛化能力不足的问题——即人工编写的思维链提示样本可能无法很好地迁移到别的问题当中。
核心思想是让大模型自己找到解决当前问题的思维链。流程分为两个阶段:
整个依次回答问题的过程其实可以看成是 CoT 的过程,只不过 LtM 会要求模型根据每个不同的问题,单独生成解决问题的链路,从而更加精准地解决复杂推理问题。
按照这种方式尝试:
Q:'艾米需要 4 分钟能爬到滑梯顶部,然后需要花费 1 分钟滑下来,现在水滑梯将在 15 分钟后关闭,请问在关闭之前她能滑多少次?'
A:为了解决'在关闭之前她能滑多少次?'这个问题,首先需要解决的问题是...
通过提示模板 To solve __, we need to first solve: 来引导模型创建子问题。
LtM 提示过程能够非常好地解决这个推理问题。在实际测试中,模型不仅能够拆解任务,还能自动根据拆解的子问题答案回答原始问题,最终做到在一个提示语句中对原始问题进行准确回答。
为了解决'__'这个问题,我们首先要解决的问题是__ 也是经过验证的、最为恰当的提示词模板,建议经常使用。
除了思维链,思维树(Tree of Thoughts)是另一种进阶的推理框架。它允许模型在推理过程中探索多种可能性,并通过自我评估选择最佳路径。
思维链通常是线性的,而思维树则模拟了人类思考时的分支过程。模型可以在每一步生成多个可能的思考路径(Thoughts),然后对这些路径进行评估、剪枝或回溯。
ToT 特别适用于需要创造性、策略性或高难度规划的任务,例如解谜游戏、代码调试或复杂的决策制定。它允许模型在遇到死胡同时回退,尝试其他分支,从而提高最终解决方案的成功率。
实现 ToT 通常需要结合外部搜索算法(如广度优先搜索 BFS 或深度优先搜索 DFS)。模型生成若干候选思考,评分器对每个思考进行打分,保留高分路径继续扩展。
我们梳理了 ChatGPT 在不擅长领域的一些提示方法,包括:
这些深度的内容希望能帮助开发者理解和掌握进阶的提示工程技巧,以便在大模型开发中实现更高效的应用和优化。掌握这些方法,能让你在处理复杂逻辑问题时获得显著的性能提升。
随着 AI 技术的快速发展,最先掌握 AI 的人将拥有竞争优势。建议从基础提示开始,逐步深入 CoT、LtM 及 ToT 等高级技术,并结合实际业务场景进行练习。通过不断的迭代和优化,你将能够构建出更智能、更可靠的大模型应用。

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