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


