目录
1. prompt工程简介
2. Prompt设计
2.1 Prompt主要构成要素
2.2 Prompt编写策略
策略一:对较难被准确遵循的复杂规则可拆分为多条规则,有助于提升效果
策略二:适当冗余关键信息
策略三:使用分隔符给Prompt分段
策略四:增加学习示例
策略五:编写清晰地说明 - 指定任务所需的步骤
策略六:让大模型反思自己的推理过程
策略七:语音场景下的prompt要点
策略八:判断型的任务,建议先给依据,再出结论
Prompt 是用户与大语言模型交互的起始点,它告诉模型用户的意图,并且期望模型能以有意义且相关的方式回应。当我们希望大语言模型去完成一些较为复杂的任务时,Prompt的质量决定了大语言模型能否有好的回复。通过精心设计的prompt,我们能够有效地指引大型语言模型(LLM),深化其对用户需求的理解层次,从而激发更加精准且实用的回应生成。
prompt主要包含以下要素:
这些要素并不是每个prompt都必须包含的,但根据特定的需求和上下文,合适地结合这些要素可以提高LLM生成的文本质量和相关性。
原prompt规则描述:
对于推销结果的判定,如果提及了【支付、办手续、签字、合同】则是“成交”,如果提及了【再看、考虑、不要、再联系、不需要、放弃、先不】则是“未成交”,其他情况识为“无法识别是否成交”。 |
原prompt较难准确判断成交结果,故将该规则一拆为二:
推销结果:从【成交、未成交、未知】中三选一,参考规则1、规则2的结论,得出结果。 |
对于一些逻辑关系比较复杂的前提条件,可以适当在Prompt中重复强调,增加其在模型记忆中的权重,从而降低推理偏差。
例如:
要求生成指定字数内的标题,但模型对指令遵循效果较差
尝试多个层级中【反复多次强调】“生成字数”要求,如下:
#创作要求:每个标题字数不得超过15个字。 #检查步骤:检查每个标题字数是否超出了15个字,要求每个标题字数必须小于15个字。 |
善于利用分隔符,帮助大模型更好的理解提示内容;prompt内容越复杂,分隔符的作用就越重要,对大模型的理解能力有所帮助。
原始Prompt:
请对以下内容进行文本摘要,分析情感倾向,并提取所有重要事实和数据。亿航智能(EH.US)涨超11% - 英为财情报道,亿航智能(EH.US)的股价在今日交易中涨幅超过11%。这一涨幅可能与该公司在全球首台国产“空中的士”项目中的进展有关,显示出市场对于无人机技术和空中交通解决方案的积极反应。 |
加入分隔符后的:
请对提供的文本内容进行以下分析: - 文本摘要:提供该段落的简短摘要。 - 情感分析:确定文本的情感倾向,是积极的、消极的还是中性的。 - 关键信息提取:列出文本中提到的所有重要事实和数据。 文本内容: ''' 亿航智能(EH.US)涨超11% - 英为财情报道,亿航智能(EH.US)的股价在今日交易中涨幅超过11%。这一涨幅可能与该公司在全球首台国产“空中的士”项目中的进展有关,显示出市场对于无人机技术和空中交通解决方案的积极反应。 ''' |
可以看到通过加入分隔符后,Prompt的结构更加清晰,这样也便于大语言模型更好的理解这个任务。
从大语言模型获得更好输出的最佳方法之一是在提示中包含示例,可以在prompt添加示例帮助LLM从少量示例中学习和概括信息。
给出实例的方式包括两种:
请根据以下格式给我推荐三本书: 书名: [书名] 作者: [作者] 出版年份: [年份] 简短描述: [描述] 示例输出: 书名: 《追风筝的人》 作者: 卡勒德·胡赛尼 出版年份: 2003 简短描述: 这是一个关于友谊和救赎的故事,发生在动荡的阿富汗历史背景下。 |
该方法也称为小样本学习(few-shot learning),是指在训练模型时仅使用极少量的样本数据进行学习和推理的任务。给出任务相关样例可以带来如下优势:
例如:
请根据以下样例将这篇文章分类为科技、体育或娱乐: 样例1: 文章内容:介绍最新智能手机的规格和功能。 分类:科技 样例2: 文章内容:关于即将举行的国际足球赛事的报道。 分类:体育 现在,请对以下文章进行分类: 文章内容:[用户提供的文章内容] |
部分任务实现建议要求大模型按指定步骤生成,明确写出这些步骤可以让模型更容易遵循这些步骤。这样做是指:比如你会突发奇想,让LLM为你推理一个复杂的问题。与其直接让他告诉你推理的最终答案,不如告诉它为了完成推理,需要几个步骤去思考并生成对应的内容。这样做会大大的提升推理的靠谱程度,也有助于我们自己检查中间出现的问题。这样做的好处是:
大模型对指令的遵循效果依赖于指令的表达是否贴合大模型的推理逻辑。因此,在对内容表达的考量,或解决错误响应问题前,建议先行了解大模型的推理过程或输出依据,讲“大模型话”。
在销售线索挖掘,电信欺诈识别,服务质量质检等相关场景上,有个前置因素就是要将语音转文本后,大模型再进一步对文本做分析。很多时候,因转写效果而影响到了文本意图,花大量时间做转写优化,或是将常出现转写错误的词,在prompt中澄清等措施解决。可在prompt如下说明:
有些词可能翻译描述错误,你需要基于语境理解原本意思,不要直接因错别字判定不合规。 |
分析判断型的任务,直接让大模型出结论,经常出现标签正确,结论错误。或是标签错误但结论正确的现象。更推荐:先出依据,再出规则命中结论。
约束输出内容&格式时,建议要求大模型先输出规则命中依据(如命中句子)或者判断理由,再输出命中结果,相较准确率表现更佳,如要求大模型按以下格式返回下:
{"reason":"判断原因","result":"判别结果"} |