提示工程最佳实践
提示工程最佳实践
翻译自:https://mphr.notion.site/Prompt-Engineering-Best-Practices-0839585d4bce4c6abb0b551b2107a92a
改善LLM输出的提示技巧。
目录:
Tip#1:清晰且具体的指令
Tip#2:给模型思考的时间
Tip#3:多次提示
Tip#4:引导模型
Tip#5:分解任务或提示
Tip#6:使用外部工具
Tip#1:清晰且具体的指令 (Clear and Specific Instructions)
1.提供详细背景:为问题提供详细的上下文,减少歧义,从而降低无关或错误输出的可能性。
2.使用分隔符:通过使用如章节标题、三重引号、三重反引号、三重破折号、尖括号等分隔符来清晰地指示输入的不同部分。
3.指定所需的输出格式或输出长度:例如,让模型扮演特定角色,或指定输出的长度。
例子:
“假定你是一个有创意的作家”
“大致用两句话回答”
“给我一个这篇文本的摘要。以下是我喜欢的摘要的例子_______”
提供例子:
1) 第一个例子:给出一个提示和相应输出/响应的例子。
2) 第二个例子:给出提示和输出的第二个例子。
3) 你的提示:给出你的实际提示。现在,您的模型可以遵循前两个示例所建立的模式。
Tip#2:给模型思考的时间 (Give the Model Time to Think)
当模型立即做出反应时,它们会犯更多的推理错误。
1.链式推理:通过要求模型逐步思考,可以减少推理错误 (例如可以添加「Think step by step」的提示)。这促使模型逐步地、更周到地进行思考。
例子:
例如,如果你要求模型给一个学生的解决方案打分,你可以提示模型:
第一步:找出你自己解决问题的方法。
第二步:将你的解决方案与学生的解决方案进行比较。
第三步:在评估学生的解决方案之前完成自己的解决方案的计算。
Tip#3:多次提示 (Prompt Multiple Times)
要求模型多次回答一个问题并确定最佳答案。当最重要的是准确性(而不是延迟或成本)时,使用不同的提示生成多个响应。
1.调整参数:通过改变温度 (Temperature) 、示例数量 (Shots) 和提示的直接性 (Prompt) 来生成多个响应,并确定最佳答案。
温度(Temperature):调节LLM反应的随机性或创造性。温度越高,反应就越多样,越有创意。较低的温度会产生更保守、更可预测的反应。
示例数量(Shots):指提示中给出的例子的数量。Zero-shot是指不提供例子,one-shot是指提供一个例子。
直接性(Prompt):或多或少地直接,要求解释,进行比较等。
Tip#4:引导模型 (Guide the Model)
1.处理长文档:如果文档过长,模型可能会提前停止读取。可以引导模型分段地处理长文档,并递归地构造完整的摘要。
2.帮助模型自我纠正:如果模型开始回答错误,模型很难自我纠正。引导模型自我纠正。例子:“我收到了你关于量子物理的解释,你确定你的答案吗?你能从量子力学的基础开始审查并给出一个正确的解释吗?”
3.避免引导性问题:模型急于取悦,所以引导但留下提示开放式。(确保问题开放性,不要引导模型给出特定答案。)
例子:
不当提问:电子游戏会导致暴力吗?
恰当提问:我希望对电子游戏和行为之间关系的研究结果有一个公正的概述。
Tip#5:分解任务或提示 (Break Down the Task or Prompt)
1.将复杂任务分解为简单任务:把复杂的任务分解成多个简单的任务。这很有帮助,因为复杂的任务比简单的任务有更高的错误率。(通过分解任务,语言模型可以一次专注于一个方面,减少复杂任务中常发生的误差,还可以解决成本)
您可以使用意图分类来识别最相关的指令,然后组合响应以创建一个内聚的输出。
例子:
查询:
我要去巴黎三天,我需要知道该带什么东西,去哪里吃饭最好,还有怎么使用公共交通工具。
分解:
意图1:去巴黎旅行该带些什么。
意图2:推荐巴黎最好的吃饭地点。
意图3:巴黎公共交通使用指南。
LLM回答:
人工智能将分别处理每个意图,为旅行带些什么、用餐和通勤提供量身定制的建议,然后将这些建议整合成一个全面的响应。
或者,如果子任务是连接的:
步骤1:将任务分解为查询。
步骤2:将第一个查询的输出提供给下一个查询。
上面的例子是用户需要巴黎旅行的建议,可以将任务分解为单独的意图 (如打包建议、餐饮推荐和公共交通指导),然后 LLM 可以针对每个意图分别提供定制的建议。
Tip#6:使用外部工具 (Use External Tools)
根据经验,如果一个任务可以通过工具而不是语言模型更可靠或更有效地完成,那么将语言模型与外部工具的专业功能结合起来,从而提高整体的工作效率和准确性。
下面是一些工具例子:
1. Calculator (计算器):LLM不擅长数学的计算,使用计算器可以显著提高模型在数学问题上的表现。
2, RAG (信息检索):通过连接LLM到一个智能的信息检索系统,可以更有效地增强检索能力。
3. Code Execution (代码执行) :使用代码执行或调用外部api来执行和测试由模型创建的代码。
4. External Functions (外部函数) :为 LLM 定义外部函数,如send_email()、get_current_weather()或get_customers(),这些函数可以在用户的端执行,并将结果返回给模型。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律