https://www.promptingguide.ai/zh
模型设置说明
在使用大语言模型(LLM)时,可通过调整以下参数来控制生成结果的风格、长度和多样性。建议每次只调整一个参数,以便更清楚地观察效果。
- Temperature(温度)
控制生成文本的随机性,取值范围通常为 0.0 到 2.0。值越低(如 0.1),输出越确定、聚焦,适合事实性任务;值越高(如 0.8–1.5),输出越随机、富有创意;超过 1.5 可能导致语义混乱。值为 0 时等效于贪婪解码。 - Top_p(核采样)
动态选择累积概率不超过 p 的最小词集进行采样,取值范围为 0.0 到 1.0。较低值(如 0.5)限制候选词,输出更稳定;较高值(如 0.9–1.0)扩大选择范围,增强多样性。p \= 1.0 表示考虑全部词汇。 - Max Length(最大长度)
限制生成内容的最大 token 数量,取值范围取决于模型和 API,通常为 1 到数万(如 1–4096)。应结合输入长度预留输出空间,避免截断关键信息或浪费资源。 - Stop Sequences(停止序列)
无固定数值范围,为用户自定义的字符串列表(如 ["\n\n", "###"])。当生成内容包含任一序列时立即终止,用于控制格式或长度。 - Frequency Penalty(频率惩罚)
对重复词施加与出现频次成正比的惩罚,取值范围通常为 0.0 到 2.0。值为 0 表示无惩罚;正值(如 0.5–1.0)可有效减少重复;过高可能导致语义不连贯。 - Presence Penalty(存在惩罚)
对所有已出现过的词施加统一惩罚,取值范围通常为 0.0 到 2.0。值为 0 无影响;正值鼓励词汇多样性;过高可能影响连贯性。与 Frequency Penalty 功能相近,建议二选一使用。
总结
Temperature 与 Top_p 均影响输出多样性,但机制不同,通常只需调整其一,避免叠加导致不可控结果。同理,Frequency Penalty 与 Presence Penalty 功能重叠,建议仅启用一个。Max Length 和 Stop Sequences 用于控制输出长度与格式,可与其他参数配合使用。为便于调试,每次建议仅调整一个参数。
基本概念
一、什么是提示词(Prompt)?
提示词是你提供给大语言模型(LLM)的输入,用于引导其生成期望的输出。它可以包含:
- 指令
指令是提示词中明确告诉模型“要做什么”的部分,通常以动词开头,如“总结”“翻译”“生成”等。清晰、具体的指令能显著提升输出的相关性和准确性。例如,“用三句话概括以下文章”比“处理一下这段文字”更有效。避免模糊或多重目标的指令。 - 问题
问题用于直接向模型提问,可以是事实性、解释性或开放性的。好的问题应表述清晰、范围明确。例如,“量子计算的基本原理是什么?”比“说说量子的东西”更容易获得高质量回答。问题可单独使用,也可与上下文结合增强理解。 - 上下文
上下文提供任务相关的背景信息,帮助模型理解场景或约束条件。例如,在客服场景中说明“用户已订阅高级会员”,可避免模型给出基础服务建议。上下文应简洁相关,避免冗余干扰模型判断。 - 输入数据
输入数据是模型需要处理的具体内容,如一段文本、表格、代码或对话历史。它通常紧随指令之后,是生成输出的直接依据。确保输入数据格式清晰、无歧义,有助于模型准确执行任务。 - 示例
示例通过展示输入-输出对,示范期望的回答格式或风格,尤其适用于复杂或格式敏感的任务(如分类、结构化输出)。少量高质量示例(1–3个)即可显著提升模型表现,这种方式也称为“少样本提示”(few-shot prompting)。
提示质量直接影响输出质量:信息越清晰、结构越明确,模型表现越好。
二、提示的示例
示范提示词:
你是一名科技编辑。请将以下用户提供的技术博客摘要改写为面向普通读者的简明新闻稿(200字以内)。
# 指令:明确任务角色(科技编辑)、操作(改写)、目标受众(普通读者)、输出形式(新闻稿)及长度限制(200字以内)
输入数据:
“我们提出了一种基于注意力机制的新型神经网络架构,在ImageNet上达到92.1%准确率,推理速度提升30%。”
# 输入数据:模型需要处理的具体原始内容
示例:
输入:“新算法在语音识别WER指标上降低至3.2%。”
输出:“研究人员开发出更精准的语音识别技术,错误率降至3.2%,接近人类水平。”
# 示例:展示输入与期望输出的对应关系,引导模型模仿风格和简化术语
# 问题:隐含在任务中——“如何将这段技术性摘要转化为大众能理解的新闻稿?”
# 虽未以问句形式出现,但整个提示围绕解答这一问题展开;若需显式提问,也可加入如“这段摘要该如何改写?”但通常指令已足够清晰
三、提示格式建议
- 问答格式(Q&A)
问答格式通过明确区分“问题”与“回答”结构,帮助模型聚焦任务目标,尤其适用于知识问答、客服对话或教学场景。格式通常为“Q: …\nA: …”,清晰简洁,减少歧义。在少样本提示中,可提供多个 Q&A 对作为示例,引导模型模仿回答风格、长度和深度。该格式也便于后续解析或评估输出。 -
角色设定(system/user/assistant)
在支持对话结构的模型(如 GPT 系列)中,使用角色消息可更精细地控制交互行为。-
system
消息用于设定全局角色、语气或规则(如“你是一位耐心的小学教师”),对模型行为有持久影响; -
user
消息代表当前用户输入,是主要提示内容; -
assistant
消息可用于提供历史回复或示范期望输出(如在多轮对话或少样本场景中)。 - 虽然
system
非强制,但能显著提升输出的一致性与专业性。
-
示例:
[
{"role": "system", "content": "你是一位严谨的医学顾问,回答需基于科学证据,语言简洁准确。"},
{"role": "user", "content": "Q: 每天喝咖啡会影响睡眠吗?\nA:"}
]
四、关键原则:明确性与上下文
-
模型不会“读心”,必须明确告诉它要做什么。
对比:- 弱提示:
The sky is
→ 可能输出任意续写(如falling
) - 强提示:
Complete the sentence: The sky is
→ 更可能输出合理完成(如blue during the day...
)
- 弱提示:
- 提示工程的核心:通过精心设计提示,让模型准确理解任务意图,从而生成高质量、可靠的结果。
五、实用建议
- 从零样本开始,若效果不佳,再尝试加入示例(少样本)。
- 使用清晰、简洁的指令,避免模糊表述。
- 根据任务选择合适格式(Q&A、分类标签、代码模板等)。
- 在聊天模型中,善用
system
角色设定全局行为。
六、使用技巧
提示词设计六大技巧
- 从简单开始,逐步迭代
先用基础提示测试效果,再逐步添加上下文、指令或示例,通过实验不断优化。 - 使用清晰明确的指令
用动词明确任务,如“总结”“翻译”“分类”。可将指令放在开头,或用分隔符(如###
)突出。 - 越具体越好
明确说明任务目标、输出格式、受众或风格(如“用2-3句话向高中生解释”),避免模糊描述。 - 避免不明确或过度复杂
虽然要具体,但不要堆砌无关细节。保持简洁、相关、直接,像有效沟通一样传递意图。 - 说“要做什么”,而不是“不要做什么”
正向指令(如“推荐当前热门电影”)比负面限制(如“不要问兴趣”)更有效,能更好引导模型行为。 - 善用示例和格式
对复杂或格式敏感的任务,提供输入-输出示例(少样本提示)能显著提升准确性。
使用例子
1. 文本概括(Summarization)
目标:将一段文字压缩为简洁、准确的摘要。
技巧:
- 使用明确指令如 “用一句话解释上面的信息”。
- 可结合上下文 + 指令引导模型输出所需长度和风格。
示例:
[原文段落]
Explain the above in one sentence:
→ 模型输出一句精炼总结。
2. 信息提取(Information Extraction)
目标:从文本中提取特定实体或事实。
技巧:
- 明确指出要提取的内容类型(如产品名、人名、日期等)。
- 指令越具体,提取越准确。
示例:
Mention the large language model based product mentioned in the paragraph above:
→ 输出:ChatGPT
3. 问答(Question Answering)
目标:基于给定上下文回答问题。
技巧:
- 提供清晰的上下文(Context)+ 问题(Question)。
- 可加入输出约束,如“回答简短”或“不确定时回复‘Unsure about answer’”。
结构建议:
Answer the question based on the context below. Keep the answer short...
Context: ...
Question: ...
Answer:
4. 文本分类(Text Classification)
目标:对文本进行情感、主题等分类。
技巧:
- 明确列出可选标签(如 neutral/negative/positive)。
- ==使用====示例(few-shot prompting)== ==引导模型输出格式一致。==
- 注意拼写错误可能导致模型忽略自定义标签。
示例(带示例) :
Classify the text into neutral, negative or positive.
Text: I think the vacation is okay.
Sentiment: neutral
Text: I think the food was okay.
Sentiment:
→ 输出:neutral
(格式与示例一致)
5. 对话系统(Dialogue / Role Prompting)
目标:控制 AI 的语气、身份或知识领域。
技巧:
- 使用角色提示(Role Prompting) 设定 AI 身份(如“AI 研究助理”)。
- 指定回答风格(如“面向小学生”“技术性”“简洁”等)。
示例:
The following is a conversation with an AI research assistant.
The assistant answers should be easy to understand even by primary school students.
6. 代码生成(Code Generation)
目标:根据自然语言描述生成可运行代码。
技巧:
- 可不指定语言,模型通常能推断。
- 提供数据库结构、函数需求等上下文可显著提升准确性。
示例:
/*
Ask the user for their name and say "Hello"
*/
→ 输出 JavaScript 代码。
高级示例:
提供表结构后生成 SQL 查询,模型能正确关联表并过滤条件。
7. 推理任务(Reasoning)
目标:完成需要逻辑或数学推理的问题。
挑战:LLM 在复杂推理上仍可能出错。
改进方法:
- ==要求“分步思考”(Chain-of-Thought Prompting)。==
- ==明确指示解题步骤(如“先找出奇数,再求和,判断奇偶性”)==。
对比示例:
- 直接提问 → 可能出错。
- 分步指令 → 正确率显著提升。
提示技术
总结
提示技术 | 总结 |
---|---|
零样本提示(Zero-Shot Prompting) | 零样本提示通过仅提供自然语言指令而不给任何示例,利用大语言模型在预训练和指令微调中习得的泛化能力直接完成分类、问答或摘要等任务,但在面对复杂或模糊问题时效果有限。 |
少样本提示(Few-Shot Prompting) | 少样本提示通过在输入中嵌入少量格式一致的输入-输出示例,利用模型的上下文学习能力引导其理解任务意图,从而在分类或生成任务中显著提升性能,但对多步复杂推理仍显不足。 |
链式思考提示(Chain-of-Thought, CoT) | 链式思考提示通过在少样本示例中展示分步推理过程,或在零样本场景下仅添加“让我们逐步思考”等触发语,引导大模型模仿人类逐步推理的方式解决数学、逻辑等复杂问题,但对小模型或过于简单/复杂的问题效果不佳。 |
自我一致性(Self-Consistency)提示技术 | 自我一致性提示通过少样本链式思考引导模型生成多条不同的推理路径,并对所有路径得出的最终答案进行多数投票,选择出现频率最高的结果作为输出,从而提升复杂推理任务的鲁棒性和准确性。 |
知识注入提示(Knowledge-Augmented Prompting) | 知识注入提示通过在问题前提中显式嵌入与任务相关的外部事实或背景知识作为上下文,帮助模型克服内部知识缺失或过时的问题,从而生成更准确、可靠的回答。 |
链式提示(Prompt Chaining) | 链式提示将复杂任务拆解为多个逻辑子任务,依次使用多个独立提示执行,前一个提示的输出作为后一个提示的输入,从而增强模型处理长文档理解或多步推理任务的准确性与可控性。 |
思维树提示(Tree of Thoughts, ToT) | 思维树提示通过让模型生成多个并行的推理思路,对每条路径进行可行性评估,并结合搜索策略(如广度优先或回溯)动态选择、扩展或淘汰路径,最终选出最优解,适用于需规划与试错的复杂推理任务。 |
检索增强生成(RAG) | 检索增强生成(RAG)在提问前先从外部知识库动态检索相关文档,并将检索结果作为上下文注入提示中,相当于自动化的知识注入提示,从而提升模型在事实性问答中的准确性和时效性。 |
自动推理与工具使用(ART) | 自动推理与工具使用(ART)通过少样本示例引导模型在推理过程中模拟调用外部工具(如计算器或代码解释器),以文本形式生成“调用→返回→继续推理”的完整流程,从而更可靠地处理需精确计算的任务。 |
自动提示工程师(APE) | 自动提示工程师(APE)利用一个推理模型根据输入-输出示例自动生成多个候选提示指令,再由目标模型测试并评分,最终自动选出最优提示,实现“用AI设计AI提示”的自动化优化。 |
主动提示(Active-Prompt) | 主动提示通过让模型对一批问题生成多个回答,自动识别不确定性最高的“困难样本”,交由人工标注其完整推理链,并将这些高质量示例动态加入少样本提示中,以最小标注成本提升复杂任务准确率。 |
方向性刺激提示(DSP) | 方向性刺激提示(DSP)利用一个经强化学习训练的小型策略语言模型自动生成能引导主大模型朝特定目标(如简洁性或事实性)输出的优化提示,实现对黑盒大模型行为的动态、精准调控。 |
程序辅助语言模型(PAL) | 程序辅助语言模型(PAL)引导大语言模型将自然语言问题转化为可执行代码(如Python),并由外部解释器真实运行以获得精确结果,从而规避模型在数值或逻辑计算中的幻觉问题。 |
ReAct 框架 | ReAct 框架通过交替生成“思考(Thought)”与“行动(Action)”步骤,使模型在推理过程中主动调用外部工具(如搜索引擎或计算器),形成“思考→行动→观察→再思考”的闭环,适用于需实时信息交互的复杂任务。 |
自我反思(Reflexion)提示技术 | 自我反思提示通过自动评估模块(如另一LLM或测试平台)对模型输出进行反馈,生成自然语言形式的反思信息并存入记忆,使模型能在无需微调的情况下基于错误反馈迭代优化后续回答。 |
多模态思维链(Multimodal CoT) | 多模态思维链提示在生成推理链的过程中融合文本与图像等多模态信息,通过两阶段框架先基于图文输入生成跨模态推理步骤,再据此推导答案,显著提升模型在图文联合推理任务中的表现。 |
零样本提示(Zero-Shot Prompting)
零样本提示是指在不提供任何示例的情况下,仅通过自然语言指令让大语言模型完成任务。得益于大规模预训练和指令微调(如RLHF),现代模型(如ChatGPT)已具备较强的零样本能力,可直接执行分类、问答、摘要等任务。例如,只需给出“将文本分类为正面、中性或负面”,模型即可输出正确标签。然而,对于复杂或模糊任务,零样本表现可能有限,此时需结合少样本提示或更高级技术。
示例(情感分类)
将文本分类为中性、负面或正面。
文本:我认为这次假期还可以。
情感:
→ 模型输出:中性
少样本提示(Few-Shot Prompting)
少样本提示是一种通过在提示中提供少量输入-输出示例(如1-shot、3-shot等),引导大语言模型理解任务并生成符合预期回答的技术。它利用模型的上下文学习能力,在分类、生成等任务中显著提升性能。研究表明,即使使用随机标签,只要格式一致,也能有效引导模型。然而,该方法对复杂推理任务(如多步数学计算)效果有限,此时需结合思维链(Chain-of-Thought)等更高级技术。
示例(新词造句)
“whatpu”是坦桑尼亚的一种小型毛茸茸的动物。
一个使用 whatpu 的句子的例子是:我们在非洲旅行时看到了这些非常可爱的 whatpus。
“farduddle”是指快速跳上跳下。
一个使用 farduddle 的句子的例子是:
→ 模型输出:当我们赢得比赛时,我们都开始 farduddle 庆祝!
链式思考提示(Chain-of-Thought, CoT)
链式思考提示通过引导模型“逐步推理”来提升其在复杂任务(如数学、逻辑、常识推理)中的表现。该方法最早由 Wei 等人(2022)提出,通常以少样本形式提供包含中间推理步骤的示例,使模型模仿分步解答过程。后续发展的零样本 CoT(Kojima 等人,2022)仅需在问题后添加“让我们逐步思考”即可激发推理能力,无需示例。CoT 特别适用于大模型,属于一种“涌现能力”,在标准少样本提示失效时尤为有效。
我的可以简化为在提问末尾加入一句 “让我们逐步思考” ,对小模型无效,太简单总是也无效。而太复杂的问题还是需要示例的少样本 CoT
示例(奇数求和判断奇偶性)
这组数字中的奇数加起来是一个偶数:4、8、9、15、12、2、1。
A:将所有奇数相加(9、15、1)得到25。答案为False。
这组数字中的奇数加起来是一个偶数:15、32、5、13、82、7、1。
A:
→ 模型输出:将所有奇数相加(15、5、13、7、1)得到41。答案为False。
自我一致性(Self-Consistency)提示技术
自我一致性是由 Wang 等人(2022)提出的一种高级提示策略,用于提升大语言模型在算术、常识和符号推理任务中的准确性。==它改进了传统的链式思考(CoT)方法——不再仅依赖单一推理路径,而是通过少样本 CoT 提示生成====多条不同的推理路径====,然后对所有输出答案进行投票,选择出现频率最高的结果作为最终答案==。这种方法能有效缓解模型因“贪婪解码”导致的随机错误,显著提高复杂推理任务的鲁棒性。尤其适用于存在多种正确推理方式但答案唯一的问题(如年龄计算、数量变化等)。自我一致性依赖模型的多样性生成能力,通常在较大规模语言模型上效果更佳。
我的理解,通过少样本链式思考(Few-shot CoT)提示引导模型,自主生成多条不同的推理路径(而非人为提供多种解法),然后对所有路径得出的最终答案进行多数投票,选择最一致(出现频率最高)的结果作为输出。相比链式思考就是做题时以不同的链式思考思路做同一道题,然后挑出最合适的回答。
示例(年龄推理)
Q:林中有15棵树。林业工人今天将在林中种树。完成后,将有21棵树。林业工人今天种了多少棵树?
A:我们从15棵树开始。后来我们有21棵树。差异必须是他们种树的数量。因此,他们必须种了21-15 = 6棵树。答案是6。
Q:停车场有3辆汽车,又来了2辆汽车,停车场有多少辆汽车?
A:停车场已经有3辆汽车。又来了2辆。现在有3 + 2 = 5辆汽车。答案是5。
Q:Leah有32块巧克力,她的姐姐有42块。如果他们吃了35块,他们总共还剩多少块?
A:Leah有32块巧克力,Leah的姐姐有42块。这意味着最初有32 + 42 = 74块巧克力。已经吃了35块。因此,他们总共还剩74-35 = 39块巧克力。答案是39。
Q:Jason有20个棒棒糖。他给Denny一些棒棒糖。现在Jason只有12个棒棒糖。Jason给Denny多少棒棒糖?
A:Jason有20个棒棒糖。因为他现在只有12个,所以他必须把剩下的给Denny。他给Denny的棒棒糖数量必须是20-12 = 8个棒棒糖。答案是8。
Q:Shawn有五个玩具。圣诞节,他从他的父母那里得到了两个玩具。他现在有多少个玩具?
A:他有5个玩具。他从妈妈那里得到了2个,所以在那之后他有5 + 2 = 7个玩具。然后他从爸爸那里得到了2个,所以总共他有7 + 2 = 9个玩具。答案是9。
Q:服务器房间里有9台计算机。从周一到周四,每天都会安装5台计算机。现在服务器房间里有多少台计算机?
A:从周一到周四有4天。每天都添加了5台计算机。这意味着总共添加了4 * 5 =
20台计算机。一开始有9台计算机,所以现在有9 + 20 = 29台计算机。答案是29。
Q:Michael有58个高尔夫球。星期二,他丢失了23个高尔夫球。星期三,他又丢失了2个。星期三结束时他还剩多少个高尔夫球?
A:Michael最初有58个球。星期二他丢失了23个,所以在那之后他有58-23 = 35个球。星期三他又丢失了2个,所以现在他有35-2 = 33个球。答案是33。
Q:Olivia有23美元。她用每个3美元的价格买了五个百吉饼。她还剩多少钱?
A:她用每个3美元的价格买了5个百吉饼。这意味着她花了15美元。她还剩8美元。
Q:当我6岁时,我的妹妹是我的一半年龄。现在我70岁了,我的妹妹多大?
A:
→ 模型可能生成多个推理路径,如“70−3=67”或错误的“70÷2=35”。通过多次采样并选择最一致的答案(如67出现最多),系统可输出正确结果。
原来直接问年龄的时候,可能会直接 70÷2=35
知识注入提示(Knowledge-Augmented Prompting)
知识注入提示是一种通过在提示中显式提供外部事实或背景知识,帮助大语言模型(LLM)生成更准确、可靠回答的技术。尽管LLM在训练中已学习大量知识,但其内部知识可能存在过时、缺失或错误。通过在输入中嵌入权威、任务相关的知识片段(如统计数据、定义或科学事实),可显著提升模型在事实性问答、判断验证等任务中的表现。该方法特别适用于需要最新信息、领域专业知识或对抗模型“幻觉”的场景。与微调不同,知识注入无需修改模型参数,是一种轻量、灵活的提示工程策略。
我的简单理解,就是在提出问题的过程中,给出相关知识足够多的上下文即为知识注入
示例(事实校正)
知识:墨西哥的面积约为1,964,375平方公里,希腊约为131,957平方公里,因此墨西哥比希腊大得多。
输入:希腊比墨西哥大。
问题:上述说法是否正确?
答案:
→ 模型输出:不正确。根据提供的知识,墨西哥的面积远大于希腊。
链式提示(Prompt Chaining)
链式提示是一种将复杂任务分解为多个有序子任务、并通过多个提示依次执行的提示工程技术。每个子任务的输出作为下一个提示的输入,形成一条“提示链”。这种方法能显著提升大语言模型在处理长文档理解、多步推理或结构化生成等复杂场景中的准确性与可控性。相比单次提示,链式提示增强了任务的模块化和透明度,便于调试、优化和复用各阶段结果。例如,在文档问答中,可先用一个提示提取相关段落,再用另一个提示基于这些段落生成答案。该技术特别适用于上下文长度受限、任务逻辑复杂或需中间验证的场景,广泛应用于智能客服、报告生成和知识抽取等实际应用中。
将一个复杂任务拆解为多个逻辑步骤,用多个独立的提示依次执行,前一个提示的输出作为后一个提示的输入,从而引导模型更准确、可控地完成整体任务。
示例(两步文档问答)
提示 1(信息提取):
你是一个助手。请从以下文档中提取与问题“提示工程有哪些高级技术?”直接相关的句子,并用<quotes>标签包裹。
####
[此处插入一篇关于提示工程的长文]
####
→ 输出:<quotes>- Chain-of-thought prompting\n- Self-consistency decoding\n- Prompt injection</quotes>
提示 2(答案生成):
基于以下引文,用简洁清晰的语言回答问题:“提示工程有哪些高级技术?”
<quotes>- Chain-of-thought prompting\n- Self-consistency decoding\n- Prompt injection</quotes>
→ 输出:提示工程的高级技术包括链式思考提示(CoT)、自我一致性解码和提示注入等方法。
思维树提示(Tree of Thoughts, ToT)
思维树(ToT)是一种面向复杂推理任务的高级提示技术,由 Yao 等人(2023)提出,用于突破传统链式思考(CoT)的线性局限。ToT 将问题解决过程建模为一棵“思维树”,其中每个节点代表一个中间推理状态(即“思维”),模型可生成多个可能的推理路径,并通过评估机制(如“sure/maybe/impossible”)对每条路径进行打分,再结合搜索策略(如广度优先、深度优先或集束搜索)动态选择、扩展或回溯路径。这种方法特别适用于需要规划、探索或试错的任务,如“24点游戏”、逻辑谜题或策略生成。与 CoT 仅生成单一推理链不同,ToT 支持并行探索多个思路,并通过自我评估筛选最优解,显著提升复杂问题的解决成功率。尽管实现较复杂且计算成本较高,但 ToT 代表了提示工程向“类算法推理”演进的重要方向。
我的理解,生成多个思路,对思路进行评估,结合搜索策略对路径进行选择、扩展、回溯,最终选择出通往正确回答的路径。 示例 I 为通用提示
示例I
假设三位不同的专家来回答这个问题。
所有专家都写下他们思考这个问题的第一个步骤,然后与大家分享。
然后,所有专家都写下他们思考的下一个步骤并分享。
以此类推,直到所有专家写完他们思考的所有步骤。
只要大家发现有专家的步骤出错了,就让这位专家离开。
请问...
示例 II(简化版 ToT 提示)
请模拟三位专家共同解决以下问题:
“用数字 3、3、8、8 和四则运算得到 24。”
步骤要求:
1. 每位专家先提出一个可能的运算思路;
2. 评估每个思路是否可行(可行 / 可能 / 不可行);
3. 保留可行或可能的思路,继续细化下一步;
4. 最终输出能得出 24 的完整表达式。
问题:如何用 3、3、8、8 算出 24?
→ 模型可能输出:8 / (3 - 8/3) = 24
,并在过程中展示多条尝试路径及淘汰理由。
检索增强生成(RAG)
检索增强生成(Retrieval-Augmented Generation, RAG)是一种将外部知识检索与语言模型生成相结合的技术,用于提升大语言模型在知识密集型任务中的准确性与事实一致性。由于 LLM 的参数化知识是静态的,难以覆盖最新信息或特定领域细节,RAG 通过在生成前动态检索相关文档(如维基百科、企业知识库等),将检索结果作为上下文注入提示中,引导模型基于真实、权威的信息作答。这种方法有效缓解了模型“幻觉”问题,特别适用于问答、客服、报告生成等需高事实准确性的场景。RAG 无需重新训练模型,仅通过调整检索组件即可更新知识源,具有高灵活性和可维护性。Meta AI 提出的 RAG 框架结合了密集检索器(如 FAISS)与生成模型,在多个基准测试中表现优异,已成为当前构建可靠 AI 应用的主流架构之一。
我的理解,RAG 相当于 知识注入提示 ,只是将知识存储在外部库中,在查询时先查询外部知识库,然后将查询到的相关知识,作为 知识注入提示 提交给 AI 参考
示例(手册用)
请基于以下检索到的资料回答问题:
【检索资料】
- 根据世界卫生组织(WHO)2023年报告,全球约有2.8亿人患有抑郁症。
- 抑郁症是一种常见精神障碍,表现为持续 sadness、兴趣丧失和精力减退。
【问题】
全球有多少人患有抑郁症?
【回答】
→ 模型输出:根据世界卫生组织2023年报告,全球约有2.8亿人患有抑郁症。
自动推理与工具使用(ART)
自动推理与工具使用(Automatic Reasoning and Tool-use, ART)是一种让大语言模型(LLM)在无需微调的前提下,自主调用外部工具(如计算器、代码解释器、搜索引擎、数据库等)完成复杂任务的提示框架。由 Paranjape 等人(2023)提出,ART 通过提供包含“推理 + 工具调用”步骤的少样本示例,引导冻结的 LLM 学会在适当节点暂停生成、调用工具获取结果,并将工具输出整合进后续推理中。该方法将任务拆解为可执行的多步程序,显著提升了模型在数学、逻辑、编程等需要精确计算或实时信息的任务上的准确性和鲁棒性。与传统链式思考(CoT)不同,ART 明确引入工具交互机制,使 LLM 能弥补自身在数值计算、符号操作或知识更新方面的不足。在 BigBench 和 MMLU 等基准测试中,ART 的零样本表现甚至超过人工编写的 CoT 提示,展现出强大的泛化能力。
我的理解, 在提示中虚拟调用函数(或工具),是一种引导大语言模型在推理过程中模拟使用外部能力(如计器、代码解释器、数据库查询等)的提示策略。模型并不会真正执行代码,而是在文本中生成“调用 → 返回 → 继续推理”的完整过程,从而更可靠地解决需要精确计算、逻辑验证或外部知识的任务。
示例(手册用)
任务:计算 123 乘以 456 再除以 9 的结果。
示范:
问题:256 × 12 ÷ 8 是多少?
思考:我需要先计算 256 × 12,再除以 8。
工具调用:CALC("256 * 12") → 3072
工具调用:CALC("3072 / 8") → 384
答案:384
现在请解决:
问题:123 × 456 ÷ 9 是多少?
→ 模型将模仿示范,分步调用计算器工具,最终输出:6232
。
自动提示工程师(APE)
自动提示工程师(Automatic Prompt Engineer, APE)是由 Zhou 等人(2022)提出的一种用大语言模型自动生成和优化提示词的框架。其核心思想是将提示工程问题转化为自然语言指令的搜索与优化任务:首先让一个“推理模型”根据输入-输出示例反向生成多个候选指令(如“请逐步推理”“解释你的答案”等),再用目标模型执行这些指令,并基于输出质量(如准确率、一致性)自动评分,最终选出最优提示。APE 无需人工试错,能在零样本场景下发现比人类设计更有效的指令。例如,APE 自动生成的提示“让我们一步一步地解决这个问题,以确保我们有正确的答案”在数学推理任务(如 MultiArith、GSM8K)上表现优于经典的“让我们逐步思考”。该方法代表了提示工程从“人工设计”向“自动优化”演进的重要方向,为构建高效、可扩展的 AI 应用提供了新范式。
自动提示工程师(APE)是一种“用 AI 设计 AI 提示”的框架:通过一个推理模型自动生成候选指令,再由目标模型测试效果,最终自动选出最优提示,从而替代人工试错。
示例(手册用)
任务目标:让模型正确回答数学应用题。
APE 自动生成的优质提示:
“请仔细阅读问题,分步骤推理,并确保最终答案准确无误。”
问题:小明有 15 个苹果,送给朋友 6 个,又买了 8 个,现在有多少个?
模型响应:
1. 起始:15 个苹果
2. 送出后:15 − 6 = 9 个
3. 又买后:9 + 8 = 17 个
答案:17
主动提示(Active-Prompt)
主动提示(Active-Prompt)由 Diao 等人(2023)提出,是一种动态优化少样本链式思考(CoT)示例的提示工程方法。传统 CoT 依赖人工预先编写固定推理示例,但这些示例未必适用于所有任务或问题。Active-Prompt 通过主动学习机制自动识别模型最不确定的问题,优先邀请人类标注这些“困难样本”的推理过程,并将新示例加入提示中,从而逐步提升模型在目标任务上的表现。其核心流程包括:1)用初始 CoT 示例对一批问题生成多个答案;2)基于答案的不一致性计算不确定性;3)选择不确定性最高的问题交由人类标注完整推理链;4)将新标注示例用于后续推理。该方法显著减少了人工标注成本,同时提升了模型在复杂推理任务(如数学、逻辑)中的准确率,是连接人类反馈与提示优化的有效桥梁。
我的理解:主动提示(Active-Prompt)通过让 AI 对一批问题生成多个回答,编写程序自动识别最不确定的问题,交由人工标注其完整推理过程,再将这些高质量示例作为少样本提示的一部分,从而以最小标注成本提升模型在复杂任务上的准确率。
方向性刺激提示(DSP)
方向性刺激提示(Directional Stimulus Prompting, DSP)由 Li 等人(2023)提出,是一种通过小型策略语言模型(Policy LM)自动生成优化提示,以引导冻结的大型语言模型(LLM)生成特定目标输出(如摘要、答案等)的技术。与传统人工设计提示不同,DSP 利用强化学习(RL)训练一个轻量级策略模型,该模型学习生成能“刺激”主 LLM 朝期望方向(如简洁性、事实性、风格)输出的提示词。策略模型虽小,但可高效调控黑盒大模型的行为,无需微调主模型。这种方法特别适用于需要精细控制生成质量的任务(如新闻摘要、立场引导回答等),在保持大模型能力的同时,实现对输出方向的精准干预。DSP 代表了提示工程从静态指令向动态、可学习、目标导向提示生成的演进。
我的理解:方向性刺激提示(DSP)简介 就是 自动提示工程师(APE)方式,只是推理模式由一个训练过的小模型来担任
示例(手册用)
任务:生成简洁、客观的新闻摘要。
策略模型(经 RL 训练)自动生成的 DSP 提示:
“请用不超过两句话概括以下新闻的核心事实,避免主观评价。”
输入新闻:[一篇关于气候峰会的长报道]
→ 主 LLM 输出:
“2024年全球气候峰会在迪拜举行,190国达成协议,承诺2030年前将甲烷排放减少30%。协议首次纳入化石燃料逐步退出条款。”
程序辅助语言模型(PAL)
程序辅助语言模型(Program-Aided Language Models, PAL)由 Gao 等人(2022)提出,是一种将自然语言推理转化为可执行程序的提示技术。与链式思考(CoT)依赖自由文本推理不同,PAL 引导大语言模型(LLM)生成结构化代码(如 Python)作为中间推理步骤,并交由外部解释器执行,从而获得精确、可验证的结果。这种方法特别适用于涉及数学计算、日期运算、逻辑判断等需要精确执行的任务,有效规避了 LLM 在数值计算或复杂逻辑中容易出错的“幻觉”问题。PAL 通常采用少样本提示,提供“自然语言问题 → 代码实现 → 执行结果”的完整示例,使模型学会将问题“翻译”为程序。由于代码由真实运行时执行,结果可靠且可调试,广泛应用于智能问答、自动化代理和工具调用场景。
我的理解,程序辅助语言模型(PAL) 引导 AI 生成 代码,然后提供工具,真实的调用代码生成 结果。与 自动推理与工具使用(ART) 类似,但它只是虚拟调用代码
示例(手册用)
问题:今天是 2023 年 2 月 27 日,我正好 25 年前出生。我的出生日期是 MM/DD/YYYY?
PAL 提示中的示例片段:
# Q: Jane was born on the last day of February in 2001. Today is her 16-year-old birthday. What is the date yesterday in MM/DD/YYYY?
# If Jane was born on the last day of February in 2001 and today is her 16-year-old birthday, then today is 16 years later.
today = datetime(2001, 2, 28) + relativedelta(years=16)
yesterday = today - relativedelta(days=1)
yesterday.strftime('%m/%d/%Y')
模型生成代码:
today = datetime(2023, 2, 27)
born = today - relativedelta(years=25)
born.strftime('%m/%d/%Y')
执行结果:02/27/1998
ReAct 框架简
ReAct(Reasoning + Acting)是由 Yao 等人(2022)提出的一种高级提示技术,通过交替生成推理步骤(Thought)与外部工具调用(Action) ,使大语言模型(LLM)在解决复杂任务时既能“思考”又能“行动”。与仅依赖内部知识的链式思考(CoT)不同,ReAct 主动与外部环境(如搜索引擎、知识库、计算器)交互,获取实时信息以支持推理,有效缓解“幻觉”问题。其典型流程为:思考 → 行动 → 观察 → 再思考,形成闭环推理链。该方法特别适用于知识密集型问答(如 HotpotQA)、事实验证和决策任务(如 WebShop、ALFWorld)。ReAct 通常以少样本提示形式提供“思考-行动-观察”示例,引导模型学会动态规划、信息检索与答案合成。实验表明,ReAct 在事实准确性与可解释性上显著优于纯推理或纯检索方法,是构建智能 Agent 的核心范式之一。
ReAct 框架简介 就是非结构化调用的 Function Calling (相对于 OpenAI 约定的 JSON.TOOL_CALL 格式 ) ,Agent 提交问题与工具给 AI (工具信息通过提示词提供), AI 通过回复调用工具,Agent 响应调用再次提交知识给 AI , 如此往复直到得到正确回复。
示例(手册用)
问题:奥利维亚·王尔德的男朋友是谁?他年龄的 0.23 次方是多少?
思考 1:我需要先查奥利维亚·王尔德的现任男友。
行动 1:搜索 [奥利维亚·王尔德 男朋友]
观察 1:她目前与哈里·斯泰尔斯交往。
思考 2:我需要查哈里·斯泰尔斯的年龄。
行动 2:搜索 [哈里·斯泰尔斯 年龄]
观察 2:29 岁。
思考 3:计算 29 的 0.23 次方。
行动 3:计算器 [29^0.23]
观察 3:2.169
最终答案:哈里·斯泰尔斯,29 岁,其年龄的 0.23 次方约为 2.169。
自我反思(Reflexion)提示技术
自我反思(Reflexion)是一种基于语言反馈的智能体强化学习框架,由 Shinn 等人于 2023 年提出。该方法通过引入“语言形式的强化信号”替代传统强化学习中的标量奖励,使大语言模型(LLM)能够从自身错误中快速学习并优化后续行为。Reflexion 框架包含三个核心组件:参与者(Actor) 负责基于当前状态生成动作与文本(常结合 ReAct 或 Chain-of-Thought);评估者(Evaluator) 对轨迹进行打分或判断;自我反思模块则利用奖励信号、当前轨迹和长期记忆生成自然语言反馈,并存入记忆以指导未来决策。该方法无需微调模型,仅通过提示工程即可显著提升在序列决策(如 AlfWorld)、多跳推理(如 HotPotQA)和代码生成(如 HumanEval)等任务上的性能。其优势在于反馈更细粒度、可解释性强、资源开销低,适用于需试错学习但缺乏大量训练数据的场景。局限包括对模型自我评估能力的依赖、长期记忆容量有限,以及在复杂代码逻辑中测试驱动反馈可能不充分。
我的理解:当 LLM 进行回复时,自动测试平台、另外一个 LLM 之类的对 LLM 做出的回复进行判断及反馈(此处理过程不需要人工干预)。回复问题的 LLM 根据反馈不停的调整回答,从而得到最终正确的回答。
多模态思维链(Multimodal Chain-of-Thought, Multimodal CoT)提示技术
多模态思维链(Multimodal CoT)是由 Zhang 等人(2023)提出的一种扩展传统思维链(Chain-of-Thought, CoT)的提示方法,专门用于处理同时包含文本与图像等多模态信息的复杂推理任务。传统 CoT 仅依赖语言生成中间推理步骤,而 Multimodal CoT 将视觉与文本信息融合,在两阶段框架中完成推理:第一阶段基于多模态输入(如题目文本+配图)生成连贯的推理链;第二阶段利用该推理链推导最终答案。该方法显著提升了模型在需要跨模态理解的任务上的表现,例如在 ScienceQA 基准测试中,仅 1B 参数的 Multimodal CoT 模型性能甚至超过 GPT-3.5。其优势在于:1)引导模型显式整合视觉与语言线索;2)增强推理的可解释性;3)降低对超大模型的依赖。该技术适用于教育问答、科学图表理解、医疗影像辅助诊断等需图文联合推理的场景。局限在于依赖高质量的多模态对齐能力,且当前多数开源模型尚不原生支持复杂图像理解。
我的理解,就是在LLM 生成思维链的过程中整合入多媒体的相关知识。
示例(手册用)
任务:根据题目文本和电路图,判断开关 S 闭合后灯泡 L 是否亮起。
输入:
- 文本:“如图所示电路,电源、开关 S、灯泡 L 串联。开关当前断开。”
- 图像:一张包含电池、断开的开关和灯泡的串联电路图。
Multimodal CoT 推理过程:
“图中显示电源、开关 S 和灯泡 L 串联连接。当前开关 S 处于断开状态,因此电路未闭合,无电流通过。根据电路原理,灯泡只有在闭合回路中有电流时才会亮。所以,灯泡 L 不亮。”
最终答案:灯泡 L 不亮。