微信扫码
添加专属顾问
我要投稿
探索大模型提示词工程的核心技术与应用前景。 核心内容: 1. 提示词工程的定义及其在大模型中的应用 2. CoT Prompting模式的实现方式与效果分析 3. 提示词工程的优势与局限性探讨
本文概述几种经典提示词工程方法,总结关键信息,分析其优势和局限,并分享笔者的一点思考。
提示词工程(Prompt Engineering)是一种无需修改大模型参数即可拓展其能力的技术。它通过特定任务的指令或上下文提示,激活相关知识,实现模型与下游任务的无缝集成。该领域在问答、常识推理等应用中已取得成功。本文概述几种经典提示词工程方法,总结关键信息,分析其优势和局限,并分享笔者的一点思考。
技术路线1 CoT Prompting模式
Paper: Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
1.概念:在解决复杂问题时,人类通常会逐步分解问题并进行推理,直至得出答案。这种方法模仿了人类的思考过程,通过自然语言的形式表达出来,即“chain of thought”。
2.实现方式:在给定一个问题(如数学文字问题)时,不仅提供问题本身,还提供一个或多个中间推理步骤的示例(即chain of thought),以及最终的答案。这些示例作为提示(prompt)的一部分,用来指导模型如何进行推理。
3.示例:在论文中,作者提供了几个示例来说明这种方法。例如,对于一个数学问题:“The cafeteria had 23 apples. If they used 20 to make lunch and bought 6 more, how many apples do they have?” 标准的提示可能直接给出答案“11”,而chain-of-thought prompting会提供如下步骤:
首先计算剩余的苹果数量:23 - 20 = 3。
然后加上新购买的苹果数量:3 + 6 = 9。
最终得出答案:他们现在有9个苹果。
4.训练与微调:这种方法不需要对模型进行额外的训练或微调。相反,它依赖于模型已经通过大量数据预训练获得的语言理解能力。通过在提示中包含chain of thought的示例,模型能够学习如何模仿这种推理过程。
5.效果:实验结果表明,chain-of-thought prompting能够显著提高模型在一系列推理任务上的表现,尤其是在算术、常识和符号推理任务上。例如,在GSM8K数学文字问题基准测试中,使用这种方法的PaLM 540B模型达到了最先进的准确率。
6.优势:这种方法的优势在于它允许模型将复杂问题分解为更小、更易于管理的步骤,提供了模型推理过程的透明度,有助于理解和调试模型的行为。此外,它还适用于多种类型的推理任务,不仅限于数学问题。
7.局限性:尽管chain-of-thought prompting在大型模型中表现出色,但对于小型模型或没有足够示例的情况下,可能无法有效激发其推理能力。此外,这种方法依赖于模型的规模,只有当模型达到一定的参数量级时,才能观察到显著的性能提升。
技术路线2 Self-Consistency + CoT 模式
Paper:Self-Consistency Improves Chain of Thought Reasoning in Language Models
在chain-of-thought prompting方法中,使用贪婪解码策略(greedy decoding)是因为在传统的解码过程中,模型在每一步都会选择概率最高的词来生成文本。这种方法简单直接,但它并不考虑其他可能的词组合,因此可能无法充分探索语言模型的生成空间,尤其是在需要复杂推理的任务中。
在论文《SELF-CONSISTENCY IMPROVES CHAIN OF THOUGHT REASONING IN LANGUAGE MODELS》中,作者提到了贪婪解码的局限性,并提出了自洽性方法作为改进。以下是论文中的一个例子,说明了在chain-of-thought prompting中使用贪婪解码的情况:
假设有一个数学问题:“如果停车场原本有3辆车,又来了2辆车,现在停车场有多少辆车?”使用chain-of-thought prompting的贪婪解码策略可能会生成如下的回答:
There are 3 cars in the parking lot already. 2 more arrive. Now there are 3 + 2 = 5 cars. The answer is 5.
在这个例子中,模型直接给出了正确的答案“5”,但是在实际的推理过程中,模型可能会生成多个不同的推理路径,每个路径都可能有不同的中间步骤和最终答案。贪婪解码只选择了最直接的路径,而没有考虑其他可能的推理方式。
Self-Consistency自洽性方法则不同,它会生成多个推理路径,例如:
在这个例子中,尽管第二个路径给出了错误的答案“26”,但自洽性方法可以通过比较多个路径来识别并选择正确的答案“18”,但自洽性方法可以通过比较多个路径来识别并选择正确的答案“18”。
这个例子说明了贪婪解码可能会忽略其他合理的推理路径,为了克服这些局限性,论文提出了自洽性(self-consistency)方法。自洽性方法的核心思想是,一个复杂的推理问题通常可以通过多种不同的推理路径来解决,但正确的答案应该是唯一的。通过采样多种推理路径并找到最一致的答案,可以提高模型的推理准确性。
自洽性方法的例子和改进点:
1.自洽性方法包含三个步骤:(1) 使用链式思考(CoT)提示来引导语言模型;(2) 通过从语言模型的解码器中采样来替换CoT提示中的“贪婪解码”,以生成多样化的推理路径;(3) 边缘化推理路径,并通过选择最终答案集中最一致的答案来进行聚合。
2.改进点:
多样性:自洽性方法通过采样生成多个推理路径,增加了解码过程的多样性,从而使模型能够探索到更多的推理可能性。
一致性:通过对多个路径的最终答案进行边际化(marginalization),自洽性方法能够识别出最一致的答案,这通常更可能是正确的答案。
鲁棒性:即使某些路径产生了错误的推理或答案,自洽性方法仍然可以通过多数投票机制来纠正这些错误,从而提高整体的准确率。
技术路线3 Least-to-Most Prompting模式
Paper: Least-to-Most Prompting Enables Complex Reasoning in Large Language Models
1.背景:传统的链式思维提示(chain-of-thought prompting)在解决难度超过示例的复杂问题时表现不佳。为了克服这一挑战,论文提出了最少到最多提示策略,该策略通过将复杂问题分解为一系列更简单的子问题来解决。
2.Least-to-Most Prompting策略:该策略分为两个阶段:问题分解和子问题解决。在问题分解阶段,使用常量示例展示如何分解问题;在子问题解决阶段,提示包含三个部分:已解决子问题的示例、已回答的子问题及其生成的解决方案列表,以及下一个待解答的问题。
3.示例:Elsa有5个苹果,Anna比Elsa多2个苹果。他们一起有多少个苹果?
Least-to-Most Prompting提示解决过程:
确定Anna有多少个苹果。
确定Elsa和Anna一起有多少个苹果。
输出:他们一起有12个苹果。
L2M与CoT的对比
Least-to-Most Prompting(L2M)和Chain-of-Thought Prompting(CoT)是两种不同的语言模型提示策略,它们都旨在通过提供示例来引导模型完成特定任务。以下是这两种模式的比较,包括它们的异同点:
相似之处:
1.基于少样本学习的提示:L2M和CoT都使用少样本学习的提示(few-shot prompts)来指导语言模型进行推理或回答问题。这些示例作为输入的一部分,帮助模型理解任务的要求。
2.灵活性:L2M和CoT都提供了一种灵活的方式来利用预训练语言模型解决各种问题,无需对模型进行特定任务的训练或微调。
不同之处:
1.示例的复杂性:
L2M:Least-to-Most Prompting从最简单的示例开始,逐步增加示例的复杂性。这种方法假设简单的示例可以帮助模型建立基础理解,然后通过更复杂的示例逐步引导模型进行更复杂的推理。
CoT:Chain-of-Thought Prompting专注于提供一系列中间推理步骤,这些步骤模拟人类解决问题时的思考过程。每个示例都展示了如何分解问题并逐步得出答案。
2.推理过程的透明度:
L2M:随着示例复杂性的增加,模型的推理过程可能变得更加不明显,因为示例的变化可能不总是清晰地指示出推理步骤。
CoT:通过明确展示中间推理步骤,CoT提供了对模型推理过程的透明度,使最终答案的生成过程更加清晰。
3.任务适用性:
L2M:可能更适合于模型已经具有一定理解能力的任务,通过逐步增加难度来挑战和提升模型的能力。
CoT:特别适用于需要多步骤逻辑推理的任务,如数学问题解答、逻辑谜题等,因为它通过示例直接展示了推理的具体步骤。
4.结果的一致性:
L2M:由于示例的复杂性逐渐增加,模型的输出可能会随着示例的变化而变化,这可能导致结果的一致性不如CoT。
CoT:通过生成多个推理路径并选择最一致的答案,CoT方法旨在提高答案的一致性和准确性。
上面3种全是Google的作品。
技术路线4 XoT 基于CoT思想的各种魔改
Boosting of Thoughts(BoT,2024.02)
Boosting of Thoughts(BoT): Trial-and-Error Problem Solving with Large Language Models
University of Toronto、University of Alberta
核心内容概述:
1.研究背景:LLMs在解决复杂问题时依赖于链式思考(chain-of-thought)提示,但现有方法通常需要人工注释,且难以泛化到新任务。
2.BoT方法:BoT通过迭代过程自动探索和评估大量思考树,从而获取推理经验。这些经验用于修订提示,增强推理步骤的生成,直至得出最终答案。这种方法不依赖于特定任务的人工注释,而是通过从模型生成的错误中学习来逐步改进推理步骤。
3.实验:使用GPT-4和Llama2模型在多个复杂的数学问题数据集上进行实验,包括MMLU、SVAMP、GSM8K、AQuA和MATH等。
4.结果:BoT在大多数数据集上取得了与人类注释相媲美或更高的问题解决率,尤其是在没有人类注释的情况下,其性能显著提高。
5.贡献:BoT提出了一种新的框架,它不需要特定任务的人工注释,具有很好的可扩展性,并且通过迭代过程快速收敛到解决方案。
6.结论:BoT展示了通过增强提示来引导LLMs进行有效推理的能力,即使在没有人类注释的情况下,也能在各种任务中保持高性能。
BoT方法的步骤:
1.初始提示:从一个简单的初始提示开始,不需要任何人工注释的例子。
2.生成思考结构:并行生成大量的思考结构(例如,树状结构),这些结构代表了可能的推理路径。
3.聚合思考链:从生成的思考结构中提取最有可能成功的思考链。
4.自我评估:使用LLM对聚合的思考链进行评估,生成反馈,包括错误分析和改进建议。
5.迭代改进:将反馈加入到提示中,作为经验来指导下一次迭代的思考结构生成。
6.收敛和解答:通过多次迭代,不断积累经验,最终得到一个准确的解决方案。
例子 24点问题:The given four numbers are: 2, 4, 5, 5
BoT的解决过程如下:
1.初始提示:BoT从一个简单的提示开始,告诉模型需要使用给定的四个数字和基本的算术运算(加、减、乘、除)来得到24。
2.第一次迭代:模型生成了一些初步的思考步骤,但这些步骤可能并不接近解决方案。例如,模型可能首先尝试将两个5相加得到10,然后尝试将10与4相乘得到40,这显然不是正确的方向。
3.错误分析:模型评估生成的思考链,并识别出错误或无效的步骤。在这个阶段,模型可能识别出40不是一个合理的中间结果,因为它离目标24太远。
4.第二次迭代:根据第一次迭代的错误分析,模型调整提示,尝试不同的操作和数字组合。这次,模型可能尝试使用加法和乘法的组合,例如将2和4相加得到6,然后将两个5相加得到10,最后将6和10相乘得到60。
5.进一步迭代:模型继续迭代过程,每次都会根据之前的经验和错误分析来改进思考步骤。在后续的迭代中,模型可能会尝试更多的组合,直到找到一个有效的解决方案。
6.最终解决方案:经过多次迭代,模型最终找到了正确的思考链。例如,它可能发现以下步骤:将4乘以5得到20,再将20减去2得到18,最后将18加上5得到最终的24。
初始提示词(initial prompt)是一个简单的文本描述,用于引导大型语言模型(LLM)开始解决问题。对于24点游戏问题,初始提示词可能会是这样的:
"In the game of 24, you are given four numbers, and the goal is to use basic arithmetic operations (+, -, *, /) to combine these numbers to obtain a result of 24. You can only use each number once, and parentheses can be used to change the order of operations."
这段提示词为模型提供了游戏的基本规则,即使用加、减、乘、除四种基本算术运算,结合给定的四个数字,来得到结果24。这个初始提示词不包含具体的解题步骤或示例,而是提供了解决问题所需的上下文信息。随后,Boosting of Thoughts框架将通过迭代过程,逐步引导模型探索可能的解题路径,并在每次迭代后根据模型的自我评估来优化提示词,以更好地解决特定的24点问题。
Tree of Thoughts(ToT,2023.05)
Paper:Tree of Thoughts- Deliberate Problem Solving with Large Language Models
Princeton University + Google DeepMind
Tree of Thoughts(ToT)是文章中用到的一种用于增强大型语言模型(LLMs)在复杂问题解决中推理能力的结构。ToT将传统的序列化推理步骤转换成树状结构,这种结构允许模型在推理过程中探索多个可能的思考路径。每个节点在树中代表一个推理步骤,而分支则代表不同的推理方向或选择。
Tree of Thoughts的特点:
1.树状结构:ToT使用树状结构来表示推理过程,其中根节点代表问题的初始状态,而叶节点代表可能的解决方案或推理的最终步骤。
2.分支探索:在树的每一层,都会生成多个分支,每个分支代表了一种不同的推理路径。这些分支可以基于模型对问题的理解和可能的解决方案来生成。
3.回溯机制:ToT允许模型在树中回溯,即如果某个推理路径看起来不会导致正确的解决方案,模型可以返回到之前的节点并尝试另一条路径。
4.动态扩展:树结构在推理过程中动态扩展,模型可以根据新的信息和中间结果不断添加新的节点和分支。
5.复杂问题解决:ToT特别适合解决需要多步骤逻辑推理和多种可能解决方案的复杂问题。
在Boosting of Thoughts中的应用:
在Boosting of Thoughts框架中,ToT结构被用来生成和评估大量的推理路径。BoT通过迭代过程构建这些树状结构,每次迭代都会根据LLM生成的反馈来调整和改进提示。这样,即使是从一个简单的初始提示开始,BoT也能够通过积累经验来逐步引导模型生成更有效的推理链,最终解决复杂的问题。
例如,在解决数学问题时,BoT可能会生成多个包含不同数学操作和中间结果的ToT结构。通过评估这些结构,BoT可以识别出哪些操作序列更有可能得到正确答案,并将这些信息用于指导下一轮的推理。通过这种方式,BoT能够模拟人类解决问题时的思考过程,通过试错和自我修正来逐步接近最终解决方案。
Comments 1
技术路线无非是三类
greedy search 贪婪搜索
exhausted search 穷举搜索
beam search 约束搜索
特点/方法 | Greedy Search | Exhausted Search | Beam Search |
定义 | 在每一步选择局部最优的选项,不考虑全局最优解。 | 系统地搜索所有可能的选项,直到找到最优解。 | 一种启发式搜索算法,每次扩展固定数量的最佳选项(称为“束宽”),并逐步构建解决方案。 |
目标 | 快速找到局部最优解。 | 找到全局最优解。 | 在有限的计算资源下找到接近最优的解。 |
效率 | 高,因为快速做出决策,不探索所有可能的路径。 | 低,因为需要探索所有可能性,可能非常耗时。 | 中等,通过限制搜索宽度来平衡效率和效果。 |
完备性 | 不完备,可能会错过最优解。 | 完备,保证找到最优解(如果存在)。 | 可能不完备,但通常能找到好的解决方案。 |
适用性 | 适用于解空间较小或问题结构简单的情况。 | 适用于解空间较大且需要找到最优解的问题。 | 适用于解空间较大且需要在有限时间内找到好解的问题。 |
例子 | 爬山算法、最短路径算法(如Dijkstra算法)。 | 深度优先搜索(DFS)、广度优先搜索(BFS)。 | A*搜索算法、蒙特卡洛树搜索(MCTS)。 |
技术路线5 多重自我迭代模式(AutoGPT)
1. Amazon的作品:Auto-GPT for Online Decision Making: Benchmarks and Additional Opinions
Auto-GPT探讨自主代理在在线决策任务中的有效性和灵活性。Auto-GPT是基于大型语言模型(LLMs)的自主代理,它能够连接互联网并尝试完成各种任务。尽管Auto-GPT引起了广泛关注,但其在现实世界任务中的表现仍存在不确定性。
2. Auto-GPT特点
- 接收高层次的目标和指令,无需人类逐步指导。
- 通过生成“思考”、“推理”、“计划”和“批评”来进行自我独白。
- 能够通过简单的工具指令和几个示例整合各种工具。
- 包含长期自我记忆和记忆检索机制。
- 特定任务的适应应该只需要最小的努力,如提供目标定义和工具描述。
3. 实验设置:WebShop和ALFWorld是两个用于评估语言模型在在线决策任务中性能的模拟环境,这些任务涉及响应未知的外部环境。
WebShop: WebShop是一个模拟网上购物体验的环境,它通过从亚马逊网站抓取1181436个产品信息并在一个隔离的服务器上托管这些产品来创建一个真实的动作空间。这个环境为代理提供了执行产品搜索、点击项目、返回到之前的页面以及进行购买等选项。配备了集成的搜索引擎,环境能够提供给购物代理与网络浏览器相似的实时观察。评估过程涉及判断代理是否能够根据产品描述成功购买预期的产品,成功需要产品本身、属性、选项和价格的全部匹配。
ALFWorld: ALFWorld是一个开创性的研究环境,它将ALFRED数据集的复杂、面向任务的语言理解与TextWorld的沉浸式交互小说相结合。ALFRED(Action Learning From Realistic Environments and Directives)基准测试为模型提供了一个强大的测试场地,用于学习解析并执行来自详细、交互式3D环境中的语言指令的任务。同时,TextWorld作为一个动态的学习游乐场,用于训练和评估在基于文本的游戏中的强化学习代理。ALFWorld将这两个平台交织在一起,将基于文本的游戏的语言理解和决策挑战与3D环境中的物理交互结合起来,是将自然语言指令与现实世界物理交互融合的关键一步。环境包含了超过25,000个在各种区域(如厨房、客厅和卧室)的逼真环境中生成的独特任务。这些任务需要复杂的解决问题的技巧和对语言及环境的彻底理解,为AI性能提供了一个更高的基准。
4. 模型比较:比较了流行的LLMs,如GPT-4、GPT-3.5、Claude和Vicuna在Auto-GPT风格的决策任务中的性能。
5. 额外意见算法(Additional Opinions algorithm):引入了额外意见算法,这是一种有效的方法,将监督/模仿学习者(supervised/imitation-based learners)纳入Auto-GPT方案。这种方法使得在不需要对基础LLMs进行微调的情况下,进行轻量级的监督学习。
6. 实验结果:通过仔细的基线比较和消融研究,证明了额外意见算法显著提高了在线决策基准任务的性能,包括WebShop和ALFWorld。
7. 结论:Auto-GPT不仅证明了它在实际使用中的潜力,而且在GPT-4的驱动下,超过了专门为这些任务设计的监督IL(模仿学习)模型。此外,通过引入外部专家模型的额外意见,进一步提高了Auto-GPT风格代理的决策能力,尤其是对GPT-4有益。
这篇论文展示了Auto-GPT在处理复杂在线决策任务中的潜力,并提出了一种新的方法来利用外部模型作为额外意见的提供者,这为AI模型在实际应用中的使用打开了新的可能性。
Comments 2
现在来看,2023.03的AutoGPT的套路甚至有点过时了,具体来说:
1.固定提示结构:AutoGPT依赖于预定义的提示结构,这限制了模型的灵活性和适应性。在面对新任务时,泛化能力是一定有问题的,会显著增加部署复杂性。
2.缺乏上下文理解:AutoGPT是“一步到位”的逻辑。尽管AutoGPT能够生成连贯的文本,但它在理解和维持长期上下文方面存在不足。这导致在长对话或复杂任务中,模型可能无法保持话题的一致性或忽略重要的上下文信息。
3.推理能力局限:AutoGPT主要依赖于模式匹配和关联性学习,不是真正的推理能力,仍然是走在beam search的老路上。在处理需要逻辑推理和深度理解的问题时,模型可能无法提供准确的答案。
4.数据依赖性:AutoGPT的性能在很大程度上依赖于专家提示的质量和多样性。如果专家提示存在偏差或不足,那可能就完蛋了。
本文大量使用大模型来进行梳理和总结。大模型虽然不能完整的形成这样一份有观点、有例子、有逻辑的总结性文档,有时候甚至会产出各种低信息量信息(没错就是废话),但是在长文本摘要信息提取上,大模型确实已经体现出惊人的能力。以往整理这样一篇文档可能需要有经验的同学一整天的时间,但本文的整理只用了2小时。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-04-13
提示工程的本质:从Anthropic专家视角看如何有效与AI对话
2025-04-13
YAML风格提示词:打造AI交流的结构化语言
2025-04-12
玩转提示工程:让AI听懂人话的实战手册
2025-04-12
提示工程中的思维结构:让大语言模型更聪明地思考
2025-04-12
提示词永生——以吴恩达的提示词工程为例
2025-04-11
Google 官方提示工程 (Prompt Engineering)白皮书完整翻译和 PDF 下载
2025-04-11
为什么提示工程,可以驾驭大模型?
2025-04-10
别再只知道“请帮我写…”了,看看谷歌如何解构 Prompt Engineering (全是干货)
2024-08-20
2024-06-29
2023-06-08
2024-09-17
2024-06-27
2024-06-26
2024-07-09
2024-07-12
2024-09-16
2024-06-14
2025-04-11
2025-02-25
2025-02-21
2025-01-05
2025-01-04
2024-12-15
2024-11-15
2024-11-01