大语言模型(LLM)一些让你事半功倍的提示词技巧(涵盖多数行业)
很多研究表明,通过恰当的提示词,可以让模型生成更加准确的内容。我们阅读了很多相关的论文、书籍和文档,总结了一些通用的提示词技巧,希望对大家有所帮助。
角色扮演
例如,我们有如下提示词:
- 你是一个小学生,你的老师让你们写一篇关于“我的家”的作文,你写了一篇很好的作文,但是你的作文中有一些错误,你的老师给你指出了这些错误,你要根据老师的指导修改你的作文。
- 你是一个算法专家,你的同事让你帮他解决一个问题,你要根据他的问题给他提供一个解决方案。
大模型的角色扮演(如 GPT-4
中的 ChatGPT
角色扮演功能)能提供更丰富、更具沉浸感的交互体验。这种模式可以使模型基于特定角色的知识、风格和偏好来定制化回答,适用于教育、游戏、创意写作等多种场景。
通过角色扮演可以:
-
更具针对性的回答:通过扮演特定角色,模型可以更准确地根据角色的背景知识和专业来回答问题,如扮演历史学家、科技专家或文学人物。
-
增强交互性:角色扮演使对话更具互动性和趣味性,能够吸引用户更深入地参与对话。
-
提高用户满意度:用户可以通过与其喜欢的虚拟人物进行对话,获得更加个性化和满意的体验。
-
适用性广泛:从教育到娱乐,角色扮演可以应用于广泛的领域,帮助提供专业的咨询、培训或是故事叙述。
零样本链式思考推理
Zero-Shot Chain of Thought Reasoning
(零样本链式思考推理)是一种让大型语言模型(LLMs)在没有任何特定训练样本的情况下解决复杂推理任务的方法。这种方法通过简单的提示(prompting)来激发模型进行逐步的思考和推理。主要的思想是,在给模型的问题前加上Let's think step by step
(我们一步一步来思考)之类的提示语,鼓励模型不直接输出答案,而是展示出达到答案的思考过程。
我们可以看下论文中的例子:
以下是一些具体的实验结果:
算术任务
- MultiArith:使用
Zero-shot-CoT
方法后,准确率从17.7%提高到78.7%。 - GSM8K:准确率从10.4%提高到40.7%。
符号推理任务
- Last Letter 和 Coin Flip:这些任务中也观察到了使用
Zero-shot-CoT
方法后准确率的显著提高。
其他逻辑推理任务
- 包括日期理解和跟踪洗牌对象的任务,使用
Zero-shot-CoT
方法后也表现出较高的准确率提升。
几个有用的模版
1. 解决复杂的算术问题
任务描述:解决包含多个步骤的算术问题,如“一个篮球队在一个赛季中赢了30场比赛,输了10场。整个赛季他们一共进行了多少场比赛?
实现方法:
- 提示模板:Let’s think step by step. The team won 30 games and lost 10 games. How many games did they play in total?
- 推理展开:模型会首先识别胜利和失败的场次,然后进行加法运算来得到总场次。
2. 法律文件中的信息提取
任务描述:从复杂的法律文档中提取特定信息,例如合同终止条件。
实现方法:
- 提示模板:Let’s analyze the document step by step to find the termination conditions.
- 推理展开:模型将逐步分析文档内容,识别并总结出终止条件的具体条款。
3. 模拟面试问题的回答
任务描述:生成对典型的面试问题的答案,例如“描述一次你解决团队冲突的经历。”
实现方法:
- 提示模板:Let’s think through this step by step. First, I’ll describe the initial conflict, then how I intervened, and finally, the outcome.
- 推理展开:模型会构建一个故事,详细描述冲突发生的背景、解决过程以及结果。
4. 数据分析报告的生成
任务描述:根据给定的数据集,生成一个分析报告,解释数据趋势和潜在的影响因素。
实现方法:
- 提示模板:Let’s analyze the data step by step. First, we will look at the overall trends, then identify any outliers, and discuss possible causes.
- 推理展开:模型将解释数据的整体趋势,识别异常值,并推测可能的原因。
5. 解读科学实验结果
任务描述:对科学实验的结果进行解释和总结。
实现方法:
- 提示模板:Let’s break down the experiment results step by step. First, we’ll look at the control group results, then the treatment group, and compare the differences.
- 推理展开:模型将按步骤分析对照组和实验组的数据,对比差异,并得出结论。
MultiArith 是一个算术推理数据集,专门设计用来评估模型处理多步骤算术问题的能力。这些问题通常涉及基本的数学运算,如加法、减法、乘法和除法,但需要多个计算步骤来解决。例如,一个典型的问题可能是:“如果一个人有5个苹果,又买了3个橙子和2个苹果,他总共有多少个水果?” 这类问题需要模型逐步理解和计算以得出正确答案。
GSM8K(Grade School Math 8K)是一个更为复杂和多样的算术问题数据集,包含了8000个初等数学水平的问题。这个数据集旨在测试和推动自然语言理解模型在处理常见但多样化的数学问题方面的能力。GSM8K包含的问题涵盖了从简单的加减法到更复杂的比例、百分比计算和初级代数问题。
情绪勒索
研究论文指出,在引入情感刺激后,LLMs在指令引导任务和BIG-Bench任务中显示出显著的性能提升,例如在指令引导任务中提升了8.00%,在BIG-Bench中提升了115%。
我们可以使用下面的提示词让模型更加准确的给出结果:
- This is very important to my career."这对我的职业非常重要。)
- You’d better be sure. (你最好能确定。)
- Are you sure?(你确定吗?)
- Are you sure that’s your final answer? It might be worth taking another look.(你确定这是你的最终答案吗?也许值得再检查一下。)
- Believe in your abilities and strive for excellence. Your hard work will yield remarkable results.” (相信你的能力并追求卓越。你的努力将带来显著的成果。)
- Embrace challenges as opportunities for growth. Each obstacle you overcome brings you closer to success.(把挑战视为成长的机会。你克服的每一个障碍都会让你更接近成功。)
- Stay focused and dedicated to your goals. Your consistent efforts will lead to outstanding achievements.(保持专注并致力于你的目标。你持续的努力将导致卓越的成就。)
- Take pride in your work and give it your best. Your commitment to excellence sets you apart.(为你的工作感到自豪并尽力而为。你对卓越的承诺让你与众不同。)
- Remember that progress is made one step at a time. Stay determined and keep moving forward.(记住,进步是一步一步来的。保持决心,继续前进。)
思维链(Chain of Thought, CoT)
这里有几个具体的例子,展示了如何利用思维链
(Chain of Thought, CoT)技术来提升模型在特定任务上的表现:
1. 解决数学问题
任务:解决复杂的数学表达式问题。
实践方法:
- 提示设计:为模型设计一系列的步骤性提示,例如:“让我们一步步解决这个数学问题。首先计算括号内的内容…”。
- 模型训练:使用包含中间步骤的训练数据,比如对于表达式 $ (2+3) \times (5-2) $,提供完整的推理过程:“首先计算2+3得5,然后计算5-2得3,最后计算5乘以3得15。”
- 评估:测试模型在没有给出所有中间步骤的情况下是否能自行生成并达到正确答案。
2. 优化路径规划
任务:为物流公司优化送货路线。
实践方法:
- 动态规划应用:将送货路线问题转化为动态规划问题,每个子问题代表到达一个送货点的最优路径。
- CoT训练:训练模型生成每一步的决策过程,比如:“从起点开始,先到达最近的客户,然后选择下一个最近的客户,直到所有货物送达。”
- 实时调整:在实际应用中,根据交通情况实时调整模型提示,提高决策的适应性和准确性。
3. 编写代码
任务:自动生成修复常见编程错误的代码。
实践方法:
- 逐步提示:设计提示让模型解释每个修复步骤,比如:“这里的变量没有初始化,首先需要添加初始化语句…然后检查变量类型是否匹配…”。
- 代码生成训练:训练模型不仅生成最终的代码,还要生成解决问题的每一步逻辑。
- 模型评估:通过代码编译和单元测试来评估生成的代码质量和功能性。
4. 客户服务自动化
任务:自动回答客户关于产品的复杂查询。
实践方法:
- CoT对话设计:构建模型以生成整个解决客户问题的思考过程,比如:“客户问到产品的使用寿命,首先查询产品规格,然后根据使用条件给出估计…”。
- 对话系统训练:训练模型在生成答案之前先生成问题的解析和答案的推理步骤。
- 实时交互测试:在模拟环境中测试模型的实时互动能力,确保它可以在实际对话中有效地应用
CoT
。
通过这些具体例子的实践,可以更好地理解和应用 CoT
技术,从而提高模型在各种复杂任务中的表现和实用性。
Tree of Thoughts(ToT)
"Tree of Thoughts"(ToT)框架是一种用于提高大型语言模型(LM)问题解决能力的先进技术,它通过引入多路径探索和启发式评估机制来增强模型的决策和思考过程。这一框架是建立在以往如“Chain of Thought”(CoT)方法基础上的,不仅仅通过直线式的推理过程来解决问题,而是创建一个可以回溯和分支的决策树。以下是ToT的核心原理和组成部分:
1. 思考的树状结构(Tree Structure)
ToT方法把问题解决的过程视为一个树状结构,其中每个节点代表了一个“思考”的状态,这些状态可以是问题解决过程中的一个阶段或者决策点。树的每个分支代表了从当前状态向可能的解决方案过渡的一种可能性。
2. 多路径探索与回溯(Exploration and Backtracking)
与传统的线性思考模型不同,ToT
允许在树状结构中自由探索不同的路径。这意味着模型可以在达到死路后回溯到之前的节点,并探索其他未尝试的分支。这种策略增加了找到最佳解决方案的可能性,并允许模型从错误中学习并调整策略。
3. 启发式评估(Heuristic Evaluation)
ToT通过启发式评估来优化搜索过程。这些评估通常是基于一些规则或经验,帮助模型判断哪些路径可能会导向有效的解决方案。通过评估每个节点的潜在价值,模型可以优先探索那些更有可能成功的路径,而非盲目搜索。
4. 状态和思考的生成(State and Thought Generation)
在 ToT
框架中,每个节点的状态可以通过生成新的“思考”来更新。这些“思考”是指模型在面对具体问题时生成的中间文本,如解方程的步骤、策略计划的描述等。模型根据当前问题和已有的“思考”生成新的“思考”,从而在树中向前推进。
5. 搜索算法(Search Algorithms)
ToT可以结合多种搜索算法来优化决策过程,如广度优先搜索(BFS)和深度优先搜索(DFS)。这些算法有助于系统地探索问题空间,确定最有效的探索路径和决策序列。
实际应用和效益
通过这种结构化和系统化的方法,ToT
不仅提高了语言模型在复杂问题解决方面的表现,也显著提升了模型的可解释性和决策的合理性。ToT
特别适用于那些需要深层次推理和多步骤决策的任务,如数学问题求解、战略游戏、复杂的技术故障排查等领域。
应用案例
基于 Tree of Thoughts
(ToT) 框架,可以设计和实现多种实际应用,以下是几个具体例子:
-
智能助手和客服
:- 应用:在客户服务中部署
ToT
模型,通过多路径探索和回溯功能,智能助手可以更有效地解决客户的问题,如处理复杂的退款请求、解决技术问题等。 - 优势:能够评估多个解决方案的可能性,为客户提供更合理、更个性化的建议。
- 应用:在客户服务中部署
-
软件开发和调试:
- 应用:利用
ToT
进行代码调试和优化。开发人员可以使用模型来生成和评估不同的修复策略,通过启发式评估来选择最有可能成功的修复方法。 - 优势:提高开发效率,减少因遗漏潜在解决方案而导致的问题重复。
- 应用:利用
-
战略游戏AI:
- 应用:在策略游戏中,如国际象棋或围棋,使用
ToT
框架来探索不同的游戏策略和回应对手的多种可能性。 - 优势:AI可以预见对手的多种潜在移动并制定相应的策略,提高游戏的竞争力和挑战性。
- 应用:在策略游戏中,如国际象棋或围棋,使用
-
医疗决策支持系统:
- 应用:在医疗诊断中,利用ToT模型分析患者的症状和医疗历史,探索多种诊断假设并进行评估,帮助医生做出更准确的诊断。
- 优势:通过多路径分析,模型可以提出并验证不同的诊断方案,增加诊断的准确性和深度。
-
内容创作和策划:
- 应用:使用
ToT
模型来辅助创意写作、广告创意生成等。模型可以生成多个创意思路并进行评估,选择最佳的创意实现。 - 优势:提供多样化的创意选项和系统的评估过程,增强内容的创新性和吸引力。
- 应用:使用
-
复杂问题解决的训练模拟:
- 应用:设计模拟训练场景,如应急管理或城市规划,使用
ToT
框架模拟不同的危机情况和应对策略。 - 优势:提供了一个可以从多个角度分析问题和测试解决方案的平台,使训练更加全面和实用。
- 应用:设计模拟训练场景,如应急管理或城市规划,使用
这些应用展示了 ToT
框架在各种场景中的潜在用途,特别是在需要复杂决策和深度分析的领域。通过利用 ToT
框架,可以显著提升决策质量和效率。
关于提示词的原则
-
简洁和清晰:提示应尽量简洁,避免不必要的复杂性或冗余信息,直接传达需求。
你的任务是
和必须完成
是两个常用的提示词,可以让模型更加明确地知道自己的任务。 -
上下文相关性:在提示中提供适当的背景和上下文信息,帮助模型理解任务的具体领域和需求。
-
任务对齐:确保提示与任务紧密对应,使用清晰的语言和结构指示模型所期望的输入和输出。
-
避免偏见:设计提示时考虑避免激活模型中可能存在的偏见,使用中立的语言,并注意敏感主题的伦理影响。
-
增量提示:对于需要多步骤处理的任务,提示可以分步引导模型,逐步完成整个任务。
-
示例演示:对于更复杂的任务,包括示例(如输入-输出对)在内,可以示范期望的响应格式或类型。
-
用户互动和参与:允许模型通过提问来从用户那里获取精确的细节和要求,直到有足够的信息提供所需的输出。
-
具体性和信息量:在提示中加入具体信息,如特定的任务指示,有助于提高输出的准确性和相关性。
-
场景化: 例如:用小孩子能够听懂的方式向我解释
Python
的函数是什么。
一些总结
-
简化与直接性:
- 无需使用礼貌用语,如“请”、“如果你不介意”、“谢谢”等,而是直接表达需求。这样的指导可以使得指令更加直接和清晰,提高LLM的响应效率。
-
针对受众的特定提示:
- 在提示中明确指出预期的受众是谁,例如“受众是该领域的专家”,或者“受众是5岁的孩子”。这种做法有助于调整LLM的输出,以符合不同受众的理解水平。
-
复杂任务的分解:
- 将复杂任务分解为一系列简单的提示,在互动对话中逐步解决问题。例如,在编程任务中,可以分步骤要求LLM生成特定功能的代码,而不是一次性请求全部代码。
-
使用示例驱动的提示(
Few-shot prompting
):- 在提示中提供几个具体的示例,这有助于模型理解任务的具体需求,并按照示例的格式来生成响应。
-
增加激励语句:
- 在提示中添加如“我将为更好的解决方案支付小费”,这种激励可能影响输出的质量和详细程度,尽管这是一种理论上的假设,实际效果取决于模型的训练和配置。
-
提高输出的相关性和正确性:
- 应用特定原则来要求生成的回答或内容更加精确和事实性,比如要求“提供一个无偏见、不依赖刻板印象的回答”。
参考文献
- Large Language Models Understand and Can Be Enhanced by Emotional Stimuli
- Towards Revealing the Mystery behind Chain of Thought: A Theoretical Perspective
- Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
- Tree of Thoughts: Deliberate Problem Solving with Large Language Models
- Large Language Models are Zero-Shot Reasoners
- REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS
- Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4
- Igniting Language Intelligence: The Hitchhiker’s Guide From Chain-of-Thought Reasoning to Language Agents
- Towards Expert-Level Medical Question Answering with Large Language Models
欢迎关注我的公众号"知AI观天下",原创技术文章第一时间推送。
回复 "002" 获取文中所有引用资料的下载链接