提示词(prompt)可以认为是一个指令,一个问题;也可以认为是一段对大模型加以限制的话,否则大模型会完全按照自己的想法胡乱回答问题;在一些需要严格限制回答的场景,反而表现会更差;所以需要我们在提示词编写的时候加入更多的限制和要求来控制他们的回答;
提示词要素
经过1.1的学习解释,大家应该清楚了,提示词就是一个问题 或 一个指令;但如果我们想要提示词更准确的回答我们的问题或者完成我们的任务,是需要更加准确的额外信息;
一般情况下大模型的提示词需要包含以下任意要素:
指令\问题:想要模型执行的特定任务或者指令(上一小节已有,不再演示)
上下文:包含外部信息或者额外的上下文信息,引导大模型根据上下文信息来响应;
输入数据:用户输入的问题或格式
输出指示:指定输出的类型或格式
下面会逐一介绍如何使用这几个要素来协助我们与大模型对话
简单提示词
首先讲述一下我们最原始的目的,我们希望AI帮助我们分析一段文本所代表的情绪,只希望他回答出这段文本所表现的情绪是否定、肯定或者中性;
第一步我们写出一个简单的提示词,发现他回答的虽然从上下文来看是符合我们的问题的,但并不是我们想要的,我们希望是AI更深入的分析这句话所表达大情绪方向是中性、否定还是肯定;
要素补充
那么接下来我们就是几个要素来帮助我们达到目的:
上下文:我希望你作为一个心理学家,帮我分析以下文本所标的情绪;情绪只包含否定、中性或肯定;
输入数据:文本:我觉得月亮挺圆的;
输出指示:请直接回答情绪即可,不需要解释
按上面的示例,输出指示“请直接回答情绪即可,不需要解释”,其实是限制了大模型的输出内容;
有开发能力的读者应该发现了,这个输出数据的限制方式,如果把这个应用在软件开发上,可以通过api就可以把大模型跟我们的本地各类软件进行联动结合,如:限制输出为json格式\英文等等,如:现在应用比较广泛的AI Agent以及GPTs正是通过这种方式来联动大模型的
通用技巧
前面的例子讲解了一些案例,不同的案例都是经过前人试验的方式得出的,大家在未来要得到一个非常好用的案例避免不了类似炼丹的过程,需要不断地试验各种词语的组合,但是这里会给大家介绍一些简单的通用技巧
提示词的通用编写技巧包含:指令、具体性、避免不精确、重点在做
指令
建议大家把指令放在最开头,让AI可以明确知道要在完成什么任务的情况下,去理解后续给出的所有信息,然后再回答大家的提问;
也可以尝试通过### 或者其他方式(如:分点列明)来分割指令和上下文
具体性
给出的所有上下文信息,应该是具体的,并且和你要完成的任务关联的;如果给出太多没有关联的信息,反而会影响AI的判断。
避免不精确
避免在指令或者其他信息里给出不精确的内容,比如不要过度描述,只需要几句话,如:
大家会发现连续两次一样的提示词,得到的回复是不一样,主要就是我们在指令里有不精确的要求“前几个”
重点在做
设计提示词的时候,需要把重点放在要做的事情,而非不用做的事情
反例:正例: