prompt基本要素
提示词可以由以下要素组成
指令:想要模型执行的特定任务或指令。
上下文:包含外部信息或额外的上下文信息,引导语言模型更好地响应。
输入数据:用户输入的内容或问题。
输出指示:指定输出的类型或格式。
当然并不是所有的元素都是必须的。举个例子,以下的提示词
请将文本分为中性、否定或肯定 文本:我觉得食物还可以。 情绪:
在上面的例子中
- 将文本分类为中性、否定或肯定 是指令
- 我认为食物还可以 是输入数据
- 情绪 是输出指示。
当然,提示词所需的格式取决于你要完成的任务类型,并非所有的要素都是必须的。
prompt通用技巧
1. 从简单开始
通常来说,我们不应该一上来就设计复杂的提示词。 相反,prompt设计是一个迭代的过程,需要大量的实验来获得最佳的效果。
我们可以从简单的提示词开始,逐步添加上下文和元素,同时进行prompt版本管理,如果需要大模型完成的任务是一件多指令任务,那么我们可以拆分成多个子任务,确保每一步都是按照预想的结果输入,避免一开始就添加过多的复杂性。
2. 指令
可以使用指令来让大模型知道我们要执行哪种任务。如 分类,总结,翻译,排序 等等,同时在实际使用中,我们需要尝试使用不同的关键字、上下文和数据尝试不同的指令,看看哪种方法最适合您的特定用例和任务。 通常情况下,上下文与您要执行的任务越具体和相关,效果越好。 指令可以用###符号定义,同时放在最开头。如下
3. 明确的指令
通常来说,我们的指令越明确越细节,大模型的表现就更能像我们预料的一样表现。在提示工程中,明确的描述跟良好的格式都对效果有所帮助,同时,我们在prompt中提供示例也有助于效果的提升。 还有一点要注意,由于大模型有token限制,我们需要注意我们的prompt不宜过长,如果细节很多,那么我们就要考虑我们需要明确和细节的输出,而不是所有不大相关的细节都写进prompt中。
4. 避免不准确
上面的明确跟细节的建议,可能会让你在设计提示词时,陷入无止尽的细节描述中,这时候记住一点,避免不准确,直接的提示更加有效。举个例子
Explain the concept prompt engineering. Keep the explanation short, only a few sentences, and don't be too descriptive.
上面的提示词是个反例,don't be too desciptive,是个不准确的描述,到底多少算desciptive,我们不知道,大模型也不知道。准确的prompt应该是下面这样
Use 2-3 sentences to explain the concept of prompt engineering to a high school student.
用2-三句话,很明确的提示。
5. 提示让大模型做什么,而不是不让大模型做什么
提示词最好是聚焦于我们想让大模型做的东西,而不是不让大模型做的事。如推荐电影,我们可以这么说
以下是向客户推荐电影的代理程序。不要询问兴趣。不要询问个人信息。客户:请根据我的兴趣推荐电影。代理:
这里的提示词不让大模型询问兴趣跟个人爱好,这样并不是一个好的提示词,容易造成推荐电影本身造成失败。