阅读(798) 书签 (0)

文心千帆Prompt的使用技巧

2023-07-19 16:36 更新

为什么要学习如何使用Prompt?

在生成式大模型推理场景下,Prompt的使用方式对于模型理解和生成文本的质量具有重要意义。Prompt是一种文本模板,其中包含一些占位符,这些占位符将在运行时由实际值替换。在自然语言生成(NLG)任务中,更优质、更准确的Prompt能够帮助模型生成更具连贯性和准确性的文本

然而,不同的Prompt设计方法可能会产生不同的结果。如果Prompt设计不当,可能会导致模型生成的质量下降,甚至产生不准确或错误的文本。因此,对于Prompt的设计和使用方式进行优化和改进是非常重要的。通过优化和改进Prompt的设计方法,可以提高模型的针对性和准确度,从而生成更高质量的文本

例如,我们让ERNIE-Bot写一首诗,就会返回一个比较泛化的结果

image.png

但如果给定的主题与格式明确,ERNIE-Bot就会返回一个更符合预期的诗文

image.png

Prompt使用的基本原则

①正确的语法、用词以及标点

在Prompt中的实体对象存在多种谐音,而我们在拼写错的情况下,往往会获得错误的返回结果。同理,在语法错误以及标点错误的情况下,可能也会得到不符合预期的返回结果。因此,我们在构建Prompt时,需要保证语法、用词以及标点的准确性来引导模型生成更准确的内容

image.png

②避免歧义,简洁易懂

生成式大模型很多时候也和人类的理解能力相似,需要输入一些更明确的指示内容助于理解并执行内容生成,意图不明的模糊指令会让模型生成内容与预期有些偏离,甚至影响原本Prompt指令的生成内容。如下例中,让大模型生成一个短点的故事内容,在结构上可能进行了缩短,但生成内容有些偏离“故事”本身;而明确让大模型生成一个故事并规定字数限制后,可见的表现变得更好了

image.png

③更完整的信息

在针对一些实体对象进行评价、分析等场景时,大模型训练时不含这类实体对象的语料,就像我们无法对不认识的人产生评价一样,大模型也无法理解并生成对应的内容。因此,在针对特定对象以及特定场景进行内容生成时,需要补充更完整的背景信息

image.png

Prompt使用进阶技巧

①设定身份视角

在一些对话场景、创作场景下,不同的身份视角往往会基于Prompt具体的指令内容给出不同角度的生成内容,例如在法律咨询的场景,我们期待大模型基于律师的视角给与建议;在学生考前焦虑的提问对话场景下,可以让大模型基于老师、家长不同的视角给与建议与安抚

image.png

②提供生成示例

提供更多明确的示例内容与格式,可以明确大模型生成的内容在可控范围内,是在很多通用场景下提升大模型生成内容质量的有效手段

image.png

③限定Prompt指令范围(To Do and Not To Do)

在一些需要明确返回内容范围的场景,例如需要通过返回内容进行检索等,给出明确的指令输入模型,能够提升返回内容的准确度,来满足场景诉求。同时,这样限定生成内容范围的Prompt在某种程度上也减少了泛化内容的生成,节约了网络传输与资源成本

image.png

④思维链条

在一些逻辑推理、数学计算场景下,即便加上示例可能也很难获取到准确的结果,大模型也需要一步一步引导来学习。此时,我们加上逻辑推理的步骤,大模型就可以正确推理出符合预期的结果。

以下是Few-shot Prompting的场景,在补充完成计算逻辑后,ERNIE Bot即可正确计算出结果