引入
随着大模型的快速发展,作为一名程序员,切身感受到了日常工作方式正在发生巨大变化。拥抱 AI 已经成为不可逆转的趋势,然而学习RAG、Agent这类技术,不能及时反馈到日常工作中,有一定的滞后性。
在应用侧,有一个更直接、有效的切入点 -- 提示词(prompt)。提示词的质量直接决定了大模型输出的质量,对于开发人员来说,学习完成后就能够快速上手、即时获益,是开启大模型学习之路性价比之选。
然而,编写提示词并不是一件容易的事情,以下方面可能会影响prompt的效果:
- 使用的模型;
- 模型的训练数据;
- 模型配置;
- 选用的词、风格、语气、结构、上下文。
以上诸多因素都会影响最终的输出,因此编写提示词不能仅仅看作是简单的提问技巧,而应该当作一个系统工程来看待。提示工程应运而生,本文主要介绍提示工程、提示词的编写技巧等。
1. 什么是提示工程?
LLM本质上是一个预测 引擎,基于训练的数据,获取序列化的文本作为输入,然后预测接下来的token(分词)应该是什么。而下一个 token 是基于前一个 token 和训练时 LLM 看到了什么决定的。
当编写 prompt ,实际上在为 LLM 设置预测 token 序列的参数。
Prompt Engineering(提示工程):通过设计高质量的提示词来引导 LLM 精准输出的过程,包括:反复调试找到最佳的 prompt ,优化 prompt 长度,评估 prompt 的写作风格和结构是否符合任务要求。
在自然语言处理和LLM的情境下,prompt 就是提供给模型的输入,用来产生预测的回答。
提示词能用来实现不同种类的理解和生成任务,如:
- 文本总结
- 信息提取
- 问答
- 文本分类
- 语言或者代码翻译
- 代码生成
- 代码文档或推理
提示工程第一步,就是先选择模型 。针对具体的模型需要做优化,无关通过什么方式调用模型。除了prompt,同样需要调整LLM的配置。
2. LLM输出配置
选择模型后,需要确定模型的配置。大多数LLM都提供多种输出配置选项。有效的提示工程需要根据任务对配置设置进行优化。
2.1 输出长度
2.1.1 什么是Token?
Token是LLM处理文本的基本单位 ,可以是单个单词、单词的一部分(例如子词)、字符或标点符号。LLM在训练和推理时,不是直接处理整段文字,而是将文本拆分成一系列的 Token,再进行分析和生成。


2.1.2 如何设置输出长度?
Max tokens :决定模型在一次生成中最多可以输出的token数量。
【注】缩短 LLM 的输出长度并不会使其在生成文本时风格或表达上更简洁,只是让模型在达到长度限制后停止继续预测 token。
2.1.3 为什么需要设置输出长度?
生成更多的 token 要 LLM 进行更多计算,这会导致更高的能耗 、更慢的响应速度 以及更高的成本。
对于 LLM 的某些提示技术(如:ReAct)来说,模型在生成出所需响应后仍会持续输出无用的 token,针对这种情况,限制输出长度尤为重要。
2.1.4 如何根据场景设置参数?
较小的 token 数值适用于聊天机器人对话和摘要生成等快速任务。
较大的 token 数值则更适合需要较长输出 的场景,例如使用大语言模型进行氛围式编程(vibe coding)时。
原则:够用即可,宁短勿长
2.2 采样控制配置
LLM 并不会直接预测单个 token。相反,它们会为下一个可能的 token 预测概率 ,词汇表中的每个 token 都会被赋予一个相应的概率 。然后通过对这些 token 概率进行采样,来确定下一个实际输出的 token。
温度(temperature)、top-K 和 top-P 是最常见的采样配置参数,用于决定如何处理预测出的token概率,从而选择一个单一的输出token。
2.2.1 温度(Temperature)
温度 (Temperature):控制token选择的随机程度。
- 较低 的温度适用于期望输出更确定性结果的提示;
- 较高 的温度则可能导致更多样化或出人意料的结果。
温度为 0 (贪心解码)是完全确定 的:总是选择概率最高 的 token。温度值越接近最大值,生成的输出越随机。
【注】温度为 0 时也可能不总是得到完全相同的输出 。如果两个 token 的预测概率相同,则根据具体实现中的平局处理机制 (
tiebreaking)处理。
2.2.2 Top-P
Top-P (核采样):从概率最高 的候选词开始筛选,直到所选词条的累积概率超过设定阈值P。
P的取值范围:0-1。
- P = 0 :等价于贪心编码;
- p = 1:包含LLM词汇表中的所有token
P值越高,候选的单词就越多,可以提高多样性和创意。
2.2.3 Top-K
Top-K :从模型预测的概率分布中选择概率最高的前K个token。
- Top-K越高,模型的输出越有创造性、多样性;
- Top-K越低,模型的输出越保守和注重事实。
Top-K为1等同于贪心编码
2.2.4 如何根据场景合理设置采样参数值?
2.2.4.1 参数协同工作机制
- 如果温度、Top-K、Top-P同时可用,系统首先筛选同时满足Top-K、Top-P 的token作为候选token,然后应用温度从候选token中选择最终结果。
- 如果仅使用Top-K或者Top-P,机制相同,但只使用一个参数设置。
- 如果温度不可用,则从满足Top-K或者Top-P标准的token中随机选择。
2.2.4.2 极端设置影响
| 参数设置 | 影响 |
|---|---|
| 温度设为0 | top-K和top-P失效,始终选择最高概率标记 |
| 温度设得极高(>1,通常达到几十) | 温度失效,从通过top-K/P筛选的标记中随机选择 |
| top-K设为1 | 温度和top-P失效,仅选择最高概率标记 |
| top-K设得极高(如:词汇表大小) | 所有非零概率标记均符合条件 |
| top-P设为0 | 仅考虑最高概率标记,使温度和top-K失效 |
| top-P设为1 | 所有非零概率标记均符合条件 |
2.2.4.3 实践推荐配置
| 场景 | 温度 | Top-P | Top-K | 效果 |
|---|---|---|---|---|
| 平衡输出 | 0.2 | 0.95 | 30 | 相对连贯且适度创意 |
| 高创造性 | 0.9 | 0.99 | 40 | 增强创意表现 |
| 保守输出 | 0.1 | 0.9 | 20 | 减少随机性 |
| 确定性任务(如:数学解题) | 0 | -- | -- | 确保结果一致 |
【注】
- 更高的自由度(温度、top-K、top-P和输出标记数)可能导致生成内容相关性下降;
- LLM常见问题是陷入重复生成相同填充词的循环 ,这通常由不恰当的温度和top-K/P设置加剧:
- 低温时:模型过于确定性,固守高概率路径导致循环。
- 高温时:输出过度随机,可能偶然返回先前状态形成循环。
2.3 频率惩罚(Frequency Penalty)
频率惩罚 (frequency penalty):用于防止模型在单次输出 中过度使用某些词语。
惩罚高频出现的 token,减轻重复用词问题,比存在惩罚关注频次 。当 token 每次出现时施加惩罚,降低重复出现的概率,提高多样性,作用于高频token。
2.4 存在惩罚(Presence Penalty)
存在惩罚 (presence penalty):抑制已出现过 的 token 再次出现,鼓励引入新话题或词汇,作用于已出现token。
例如:如果词语bear在输出中出现了10次,而词语fox只出现了一次,那么bear的频率惩罚会高于fox。但是,bear和fox的存在惩罚却是相同的。
在不确定的情况下,"存在惩罚"和"频率惩罚"建议都设置为 0,这是一个最安全的选择。如果发现模型的输出内容乏味,缺乏创意和多样性,再适当调整。
2.5 停止序列(Stop Sequences)
停止序列 (stop sequence):定义一个或多个字符串,当模型生成到该序列时立即停止输出。例如,如果一个模型被设计为一次只输出一个句子,那么停止序列可能就是一个句号。
停止序列能够在不影响模型在停止前生成内容方式的前提下,保持回复的简洁性 。由于它们会截断模型的响应,因此在通过 API 调用大语言模型时,使用停止序列还有助于节省 token 的消耗成本。
2.6 上下文窗口(Context Window)
上下文窗口 (Context Window): 模型在生成回答时考虑的 Token 数量,决定了模型能够捕捉信息的范围。上下文窗口越大,模型能够考虑的信息就越多,生成的回答也就越相关和连贯。
更大的上下文窗口能带来更高的准确性、更少的幻觉现象,并具备处理更长文档或进行更长对话的能力。然而,较大的上下文窗口也需要更多的计算资源,并可能导致生成回复所需的处理时间延长。
上下文窗口通常是模型的固有属性,由训练决定,无法由用户直接配置。
3. 提示词技巧
LLM经过基于海量数据的训练,能够理解和遵循prompt,从而理解prompt并生成相应的回答。但是,LLM并不完美。prompt越清晰、具体,模型就越能准确预测出符合预期的下一个词或句子。
除此之外,如果能够运用一些专门的技术,充分利用LLM的训练机制和工作原理,能够更有效地引导模型输出相关、准确且高质量的结果。
接下来介绍最重要、最实用的提示技术及其实际示例。
3.1 通用提示词/zero-shot
3.1.1 什么是zero-shot ?
zero-shot(零样本):不提供示例。
zero-shot prompt:仅提供一项任务的描述,以及一段供LLM开始处理的文本。这种输入可以是任何形式:一个问题、一个故事的开头,或一组指令。
3.1.2 Prompt示例

当zero-shot提示效果不佳时,可以在prompt中提供示范或示例,这就引出了one-shot(单样本)和few-shot(少样本)提示方法。
3.2 one-shot & few-shot
3.2.1 什么是one-shot、few-shot?
-
one-shot prompt(单样本提示 ):向模型提供一个示例。核心思想:模型模仿这个唯一的示例,从而更好地完成任务。 -
few-shot prompt(少样本提示 ):向模型提供多个 示例,展示了一个需要遵循的模式。基本理念与one-shot类似,但提供更多示例,模型更有可能有样学样。
3.2.2 如何确定few-shot的示例数量?
示例的数量取决于多个因素,包括任务的复杂程度、示例的质量,以及使用的生成式AI(gen AI)模型的能力。
通常来说,进行few-shot时应至少提供三到五个示例。然而,对于更复杂的任务,可能需要更多示例;或者由于模型输入长度的限制,也可能不得不减少示例的数量。
3.2.3 Prompt 示例


3.2.4 选择示例注意事项
选择示例时,要遵循以下原则:
- 示例要与任务相关。
- 具有多样性 、高质量 且表述清晰。一个微小的错误就可能误导模型,导致产生不符合预期的输出。
- 示例中包含边缘情况 (
edge cases),这样生成的输出能够应对各种不同的输入
边缘情况:不常见或出乎意料的输入,但模型仍然应该能够正确处理它们。
markdown
请将以下评论分类为 positive、negative 或 neutral。
示例 1: 评论: 这部电影太棒了!演员演技出色,剧情扣人心弦。
分类: positive
示例 2: 评论: 浪费时间,特效差,故事无聊。
分类: negative
示例 3(边缘情况 - 模糊表达): 评论: 挺一般吧,没什么特别的。
分类: neutral
现在请分类: 评论: 嗯...说不上好,也说不上坏,还行。
分类:
3.3 系统,上下文与角色提示
系统、上下文、角色提示词都是用来指导LLM如何生成文本,但是关注的点不同:
-
系统 提示词(
System prompting):设定了语言模型的整体背景和目的。定义了模型宏观层面的任务,如:翻译语言、分类评论等。 -
上下文 提示词(
Contextual prompting):提供与当前对话或任务相关的具体细节或背景信息。帮助模型理解问题的细微差别,并据此调整回应内容。 -
角色 提示词(
Role prompting):为语言模型分配一个特定的角色或身份(如:"你是一位资深医生")。有助于模型生成符合该角色知识水平和行为方式的回应。
这三种提示之间可能存在显著的重叠。例如,一个为系统分配角色的提示,也可能包含具体的上下文信息。
但是,每种提示类型的主要目的略有不同:
- 系统 提示词:定义模型的基本能力和总体目标。
- 上下文提示词:提供即时的、与任务相关的信息来指导响应。与当前任务高度相关。
- 角色提示词:设置模型的输出风格和语气,为回应增加特定的个性和表达方式。
3.3.1 系统提示词(System prompting)
系统提示词实际上意味为系统赋予一个额外的任务 ,对生成满足特定需求的输出很有用。如:
- 生成符合特定编程语言的代码片段;
- 要求模型以某种特定结构返回结果。
从用于提取数据的prompt中返回JSON对象有很多好处:
- 无需手动创建
JSON格式,直接让模型按排序顺序返回数据; - 通过明确要求
JSON格式,强制模型构建结构化输出,并有效减少幻觉(hallucinations)现象。
系统提示对于控制模型输出的安全性和避免有害内容也很有用。要控制输出,只需要在prompt添加一行:你的回答应该保持尊重 (You should be respectful in your answer)。
Prompt 示例


3.3.2 角色提示词(Role prompting)
模型可以根据所分配的角色来调整其回应方式,为模型指定一个特定的角色 。有助于模型生成更相关 、更具信息量的输出。
给模型指定一个特定的角色,相当于约束了模型回答的语气、风格和专业侧重,从而提升输出内容的质量、相关性和有效性。
以下是一些有效的表达风格,可以应用到prompt的编写中。如:对抗(Confrontational)、描述(Descriptive)、直接(Direct)、正式(Formal)、幽默(Humorous)、影响(Influential)、非正式(Informal)、启发(Inspirational)、说服(Persuasive)。
markdown
## Prompt
请以幽默风格写一段关于气候变化对极地影响的文字,适合发布在社交媒体上,字数控制在100字以内
## 模型输出
北极熊最近上线了新副业:冰屋短租转卖,生意惨淡------因为"房源"全化了。
以前是"冰雪霸主",现在是"泳坛健将"。
科学家说北极可能2035年无冰?
别慌,那是给企鹅腾地方------它们正考虑北上创业!
## Prompt
请以正式的风格写一段关于气候变化对极地影响的文字,适合书面文章,字数控制在100字以内
## 模型输出
气候变化正加速影响极地地区,北极变暖速率达全球平均水平的两倍以上。海冰持续消退、冰川融化、冻土解冻,不仅威胁生态系统,更通过反馈机制加剧全球变暖。极地变化已成为全球气候危机的重要标志,亟需采取协同行动应对。
Prompt示例


3.3.3 上下文提示词(Contextual prompting)
通过提供上下文提示,可以确保与AI的交互更加顺畅高效。模型能够更快地理解你的需求,并生成更准确、更相关的回应。
Prompt 示例

3.4 Step-back prompting
3.4.1 什么是Step-back prompting?
Step-back prompting(后退一步提示):先引导模型思考一个与当前具体任务相关的通用性问题 ,然后将该通用问题的答案作为上下文,输入到后续处理具体任务的prompt中,从而提升模型表现。
就像考试时先复习概念,再做题,而不是直接瞎猜。
3.4.2 好处
- 提升准确性:避免被表面细节误导,帮助模型抓住问题本质。
- 增强推理能力:激活背景知识,促进逻辑分析和批判性思维。
- 减少偏见:聚焦于一般原则而非具体表述,降低情绪化或刻板印象的影响。
- 提高泛化能力:适用于复杂、模糊或多义的任务场景。
3.4.3 Prompt 示例
-
直接提问

-
后退一步提问

-
后退一步问题的结果输入到Prompt中

3.5 思维链(CoT)
3.5.1 什么是CoT?
Chain of Thought(CoT,思维链 ):通过生成中间推理步骤 来提升大语言模型推理能力。可以将其与少样本提示结合使用,对于先推理再作答的复杂任务效果较好。

3.5.2 CoT优势有哪些?
- 成本低、效率高 :能与现成的
LLM兼容,无需微调; - 推理过程透明:模型的响应展示推理过程,可以理解问题是如何被解决。如果答案出现错误,可以准确定位问题;
- 提示词在模型间切换,效果稳定 :不同的模型针对不含
CoT的提示词,回答可能不同,效果甚至变差,因为新模型对prompt的理解方式、内部知识都发生了变化。但推理过程 在不同模型之间的一致性 会高得多。因为数学逻辑、因果链条是普世的。使用CoT的prompt从一个模型迁移到另一个模型,准确率差异不会太大,效果不会暴跌,可能更加稳健。
3.5.3 CoT劣势是什么?
LLM的响应包含CoT推理过程,意味着需要输出更多token,导致预测成本更高、耗时更长。
3.5.4 Prompt示例
零样本CoT
可在prompt后面加上 让我们逐步思考 / Let's think step by step。


单样本CoT
给定的样本Q/A,样本回答Answer中写明推理过程。

3.5.5 应用场景
任何可以通过逐步分析 来解决的任务,都能使用CoT,只要能解释出解决问题的各个步骤,就可以尝试使用CoT。
3.6 自我一致性(Self-Consistency)
3.6.1什么是Self-Consistency?
Self-Consistency(自我一致性):结合了采样 与多数投票 机制,生成多样的推理路径,并使用生成结选择最一致的答案作为最终结果。
3.6.2 为什么需要Self-Consistency?
LLM本质上是一个语言预测模型,推理能力是通过模仿训练数据中的模式实现的,和人基于理解的深层逻辑推理有本质区别,因此在复杂推理任务中可能不稳定。
CoT可以通过prompt让模型像人类解题一样生成推理步骤,但采用贪婪解码 (greedy decoding)策略限制了有效性,如:
- 追求当下最优,模型的推理路径确定且单一。一方面不会探索其他可能更好的推理路径,另一方面,如果最初的几步选择了错误的方向,会导致一错再错,最终得出错误答案;
- 容易局部最优而非全局最优;
- 只生成一条推理路径和答案,无法确定答案是否稳定,是否存在其他同样合理的答案。
贪婪解码:模型在生成每一个词(
token)时,都会计算出所有可能的下一个词的概率分布,选择概率最高的词作为输出。
3.6.3 Self-Consistency执行步骤
- 生成多样化 的推理路径 :将相同的
prompt多次输入给大语言模型。通过设置较高的temperature参数,促使模型对问题产生不同的推理路径和视角。 - 提取答案 :从每次生成的回答中提取最终答案。
- 投票:选择出现频率最高的答案作为最终结果。
3.6.4 优、劣势
-
优势 :提升
LLM输出结果的准确性和连贯性。 -
劣势 :能为某个答案的正确性提供一种伪概率评估,但显然这种方法计算成本较高。
3.6.5 Prompt示例


通过对temperature参数设置不同的值,LLM的回答结果可能为 IMPORTANT or NOT IMPORTANT ,基于上述例子,投票 选择出现次数最多的结果 IMPORTANT 作为最终输出。
3.7 思维树(ToT)
3.7.1 什么是ToT?
Tree of Thoughts(思维树,ToT):允许LLM同时探索多条不同的推理路径 ,而不仅仅是沿着单一的线性思维链条前进。适合处理那些需要广泛探索的复杂任务。

工作原理 :维护一棵思维树 ,其中每个思维(thought)代表一个连贯的语言序列,作为解决问题的中间步骤。模型随后可以通过从树中的不同节点进行分支,来探索不同的推理路径。
3.7.2 Prompt示例
markdown
假设三位不同的专家来回答这个问题。
所有专家都写下他们思考这个问题的第一个步骤,然后与大家分享。
然后,所有专家都写下他们思考的下一个步骤并分享。
以此类推,直到所有专家写完他们思考的所有步骤。
只要大家发现有专家的步骤出错了,就让这位专家离开。
请问...
3.8 ReAct(reason & act)
3.8.1 什么是ReAct?
Reason and act(推理和行动 ,ReAct):让LLM不再仅根据已有的知识直接生成答案,而是像人一样,通过语言进行推理、通过行动获取信息。

3.8.2 核心机制 & 工作流程
ReAct 提示的核心机制是将推理 (Reasoning)与行动 (Action)结合起来,形成一个思考-行动循环。其工作流程如下:
- 思考 :
LLM首先对问题进行推理,并生成一个行动计划。 - 行动:执行该计划中的操作。
- 观察:观察执行结果,LLM 利用观察到的结果更新其推理,并生成新的行动计划。
- 重复循环:这个过程循环往复,直到 LLM 找到问题的解决方案。

3.8.3 示例


3.9 自动提示工程(APE)
3.9.1 什么是APE?
Automatic Prompt Engineering(自动提示工程,APE):用提示词来生成提示词。不仅能够减少人工输入的负担,还能提升模型在不同任务中的表现。
3.9.2 APE 核心流程
- 让模型生成多个提示候选 :先设计一个元提示 ,让
LLM自动生成多个用于特定任务的提示。 - 评估并筛选 :对生成的提示候选进行评估,可以基于某种指标打分,例如
BLEU(双语评估替代指标)或ROUGE(面向摘要评估的召回率指标)。 - 选择最优提示:选出得分最高的提示作为最终版本,用于软件应用或聊天机器人中。也可以在此基础上微调,再重新评估,持续优化。
3.9.3 Prompt示例

4. 最佳实践
4.1 提供示例
在prompt中加入少量示例是提升大模型输出质量的核心方法,如:单样本学习(one-shot)或少样本学习(few-shot)。通过提供参考范例来引导模型生成更符合预期的准确且风格匹配的内容。
4.2 设计要简洁
设计prompt应遵循简洁原则,使用清晰、直接的语言和明确的动词指令,避免冗余信息,以确保模型能准确理解并执行任务。
一个简单的判断标准是:如果连你自己都觉得prompt混乱,那么模型很可能也会感到困惑。尽量避免使用复杂的语言,也不要提供不必要的信息。
markdown
## 修改前:
我正在纽约旅游,想了解一下有哪些很棒的地方可以去。我带着两个3岁的孩子,我们在度假期间应该去哪里玩呢?
## 修改后:
扮演一名旅游向导,为游客推荐纽约曼哈顿适合3岁儿童游玩的景点。
4.3 明确输出要求
在prompt中明确指定输出的格式、长度、风格等具体要求,避免模糊指令,以引导模型生成更精确、更符合需求的内容。
markdown
## 推荐做法(DO):
生成一篇关于五大热门游戏主机的博客文章,共3段。文章应具有信息性且引人入胜,并以对话式的风格撰写。
## 不推荐做法(DO NOT):
生成一篇关于游戏主机的博客文章。
4.4 优先使用指令而非限制
- 指令:明确告知模型期望的回应格式、风格或内容,指导模型应该做什么或生成什么。
- 限制:对回应设定的一系列约束或边界,规定模型不应做什么或应避免什么。
设计prompt时应优先使用明确的正面指令 来引导模型该做什么,而非罗列不该做什么的限制;指令更高效、灵活且不易冲突,限制仅应在必要时作为补充,如:安全控制或严格格式。
markdown
## 正确做法
生成一篇关于五大热门游戏主机的博客文章(一段)。仅讨论主机名称、制造商公司、发布年份和总销量。
## 错误做法:
生成一篇关于五大热门游戏主机的博客文章(一段)。不要列出具体的游戏名称。
4.5 控制最大 token 长度
通过设置Max tokens(最大令牌数)或在prompt中指定长度来控制模型输出的篇幅,确保回复简洁且符合预期。
markdown
用一条推文的长度来解释量子物理。
4.6 在提示词中使用变量
在prompt中使用变量可实现动态输入和高效复用,便于在不同场景或应用程序中灵活替换内容,提升开发效率。

4.7 尝试不同的输入格式和写作风格
prompt的效果受格式、风格和措辞影响,应通过实验比较问题、陈述、指令等不同形式,以找到能为目标模型和任务生成最佳输出的表达方式。
不同的模型、模型配置、提示格式、用词选择以及提交方式都可能产生不同的结果。因此,有必要对提示词的属性进行实验,例如风格、用词以及提示类型(零样本、少样本、系统提示)。
4.8 分类任务建议
在分类任务的少样本提示中,应打乱示例的类别顺序,防止模型记忆顺序而忽略特征学习,从而提升其泛化能力;建议从6个示例起步进行测试和优化。
4.9 适应模型更新
应持续跟踪模型更新,及时调整提示策略,从而发挥新版本的优势,可以借助工具管理prompt的迭代与测试。
4.10 尝试不同的输出格式
对于结构化任务,优先尝试JSON、XML等标准化输出格式,不仅能提升输出一致性、减少幻觉,还能保留数据类型和关系,便于后续处理与集成。
4.11 JSON 修复
虽然JSON格式的输出结构清晰、利于程序处理,但大量token的消耗 和易被截断导致无效 的问题不容忽视;可以结合自动修复工具(如:json-repair ),从而提升可用性。
4.12 使用JSON模式
JSON Schema:可以理解为一份说明书或模板,用来规定一个JSON数据应该长什么样 ,定义了所提供的JSON输入所应具备的结构和数据类型。

使用JSON Schema结构化输入数据,可为LLM提供清晰的数据蓝图,提升其对关键信息的理解与关注度,减少歧义,并支持时间感知和数据关系建模。在大规模数据处理和复杂系统集成中效果显著。
4.13 和其他提示工程师共同实验
如果需要设计一个高质量的prompt,可以邀请多人共同尝试。当每位参与者都遵循本章所述的最佳实践时,仍会发现不同提示方案在性能上存在差异。这种多样性有助于识别更有效的提示策略,并通过比较和协作持续优化结果。
4.14 思维链(CoT)提示的最佳实践
使用思维链(CoT)提示时,必须将答案放在推理过程之后,,因为推理内容的生成会影响模型在预测最终答案时所接收到的tokens。
当结合CoT与self-consistency方法时,需要能够从模型输出中明确提取出最终答案,并将其与推理过程分离开来。
对于CoT提示,应将温度(temperature)参数设为 0。
4.15 详细记录各类提示尝试
务必完整、详细地记录每一次的提示尝试,以便长期积累经验,明确哪些做法有效、哪些无效。

提示工程是一个迭代过程:不断设计和测试不同提示,分析并记录结果,根据模型表现优化提示,持续实验直至获得理想输出。当更换模型或调整模型配置时,也应回到之前使用的提示,继续进行实验和调优。