prompt提示工程最佳实践课程笔记分享
作者: AI洞察笔记 来源: AI洞察笔记
这篇文章内容是根据Andrew Ng 和 OpenAI 的 Isa Fulford 在 2023 年 12 月 11 日的 NeurIPS 上所做的“使用大型语言模型进行应用开发”教程中的提示工程部分编写的,此后添加了许多丰富的内容和示例,分享给大家,希望对大家有所帮助。
1
####**技巧 #1:**撰写清晰且具体的指令
详细描述问题的背景。 明确问题可以有效减少产生无关或错误答案的风险。
你还可以使用分隔符来清楚地区分输入内容的不同部分。比如:章节标题、三重引号、三重反引号、三重破折号、尖括号、"####"。
明确你希望的输出格式或长度。 一种方式是让模型模拟一个特定角色。例如:
“想象你是一位创意作家。”
“简洁地用两句话回答。”
“请为这段文本提供一个总结。这里有我喜欢的总结样例 ___”
提供示例。 举个例子,以下是进行少样本提示的步骤:
-
第一个示例(第一个“样本”):给出一个提示和相应的输出/响应示例。
-
第二个示例(第二个“样本”):给出第二个提示和输出的示例。
-
你的提示:给出你的具体提示。这样,你的模型就可以按照前两个示例建立的模式来回应。
2
####技巧 #2:给模型足够的思考时间
模型在立即作出回应时更容易出现推理错误。
通过引导模型进行一连串的推理,可以使其更加分步骤、更加细致地思考。你可以要求一个“逐步思考的过程”或明确指出具体的步骤。这种简单的提示方式被广泛认为非常有效:“逐步进行思考。”
例如,如果你要求模型对学生的解答进行评分,你可以按以下步骤提示模型:
-
第 1 步:先解答问题,得出你自己的解决方案
-
第 2 步:把你的解决方案与学生的方案进行比较
-
第 3 步:在开始评估学生的解答之前,先完成你自己的解答过程
3
####技巧 #3:重复提问
让模型多次回答同一个问题,以确定最佳答案。 当准确性比延迟或成本更重要时,可以使用不同的指令生成多个回答。
以下是你可以调整的几个要素:
-
温度:用于调节大语言模型 (LLM) 回答的随机性或创新性。较高的温度设置能带来更多样和富有创造性的回答,而较低的温度则使回答更加保守和可预测。
-
样本数量:指的是在指令中给出的示例数(“样本”)。零样本意味着不提供任何示例,一样本则是提供一个示例,以此类推。
-
指令:可以是更直接或更间接,要求提供解释,进行比较等。
4
####技巧 #4:引导模型
以下是一些建议:
-
针对过长的文档, 模型可能无法处理全部内容。你可以指导模型分步处理长文档,并逐步构建完整的总结。
-
帮助模型进行自我纠错。 如果模型一开始就走错方向,它难以自行纠正。例如,你可以这样提问:“我已经从你这里得到了一个关于量子物理的解释,你确定你的答案无误吗?能否重新检查并从量子力学的基础知识开始,提供一个修正后的解释?”
-
避免提出引导性问题。 模型往往会迎合提问者,因此需要你引导,但同时保持问题的开放性。
-
“电子游戏会导致暴力吗?” ❌
-
“我想要一个关于电子游戏与行为之间关系研究发现的客观概述。” ✅
-
5
####技巧 #5:分解任务或指令
把复杂的任务分解成多个简单的小任务。 这样做有助于减少错误,因为复杂任务比简单任务更容易出错。
你可以运用意图分类来确定最相关的指令,然后将各个回答结合起来,形成一个连贯的输出。例如:
-
查询: “我将前往巴黎停留三天,我需要知道应该带些什么、巴黎最好的餐厅有哪些,以及如何使用当地的公共交通。”
-
任务分解:
-
意图 1:为去巴黎的旅行准备所需物品。
-
意图 2:推荐巴黎最佳的餐馆。
-
意图 3:提供在巴黎使用公共交通的指导。
-
-
大语言模型的回答: AI 将分别针对每个意图提供解答,为巴黎之行的行李打包、餐饮选择和交通出行提供专门建议,然后将这些答案整合成一个全面的解答。
或者,如果子任务之间相互关联,
-
第一步:将整个任务拆解成多个小查询。
-
第二步:将第一个查询的结果作为下一个查询的输入。
6
####**技巧 #6:**利用外部工具
一个基本原则是,如果某个任务能够通过工具而不是仅靠语言模型来更可靠或更高效地完成,就应该将任务外包出去,以此实现最佳效果的结合。
以下是一些可用工具的例子:
-
计算器: 大语言模型在数学计算方面表现不佳。它们主要是生成 Token/文字,而不是计算数字。使用计算器可以大幅提升大语言模型在数学方面的能力。
-
RAG (检索增强型生成器): 把大语言模型与能够智能检索信息的工具相连,而不是尝试将信息全部纳入上下文窗口。
-
代码执行: 利用代码执行或调用外部 API 来执行和测试模型生成的代码。
-
外部函数: 为模型定义一些函数,让它写出调用这些函数的代码。例如,send_email()、get_current_weather()、get_customers()。在你的系统中执行这些函数,并将结果返回给模型。
以上分享,希望对你有所帮助,如果觉得有用,欢迎转发、分享。
精彩回顾
欢迎分享、在看、点赞
更多AI工具,参考Github-AiBard123,国内AiBard123