一、提示词编写原则
提示词的编写应当遵循两个原则, 一个是指令必须清晰且具体,另一个是应当给模型充足的时间去思考。首先,你的指令足够清晰和具体,才能让大模型明确你需要它执行的任务,从而降低我们得到无关或者不正确响应的可能性。清晰的指令意味着提示词的篇幅要足够长(长到可以清晰表达你的需求),对于一些复杂的任务,提示词的长度可以达到几百甚至上千个字符。其次,对于一些需要较多思考过程的任务,应该给模型时间去思考,就像我们做一个旅游计划,首先应该确定日期、其次确定目的地、再次交通方式等等,需要一步一步来。对于大模型,我们也可以提示它一步一步思考,并且给出每一步的推导过程,这样才能获得更为有效的响应。
二、优质提示词的关键要素
提示词的编写看似简单,但为了让模型的输出符合预期,有一些关键要素必须要注意。尤其是应用到业务中的时候,相信谁也不希望大模型的回答捉摸不透。开始接触大模型提示的时候,笔者以为就是一个语文问题,等到了解得更深入了,才知道这当中的学问可不少。以下是几个常见的注意事项。
1、灵活使用分隔符
分隔符的使用主要在两方面:一方面是告诉大模型哪部分是我们给他的指令,哪部分是它需要识别的内容,比如下面的图片中笔者告诉大模型它需要识别的是三个双引号包围的内容(可以是任何我们定义的标点符号),其余的就是我给它的指令;另一方面是告诉模型的输出需要注意的地方,比如下图我们让模型识别城市实体,对每一个识别出来的实体直接用“#”包围,这样方便我们后续观看和处理。
2、引导模型进行结构化输出
结构化的输出更有利于我们处理模型的答复,尤其是当我们使用API批量生成回答的时候,结构化的输出可以大大减少我们解析模型答复的工作量。
3、提供一到两个示例
对于一些比较复杂的或者高度定制化的任务,推荐给模型一到两个示例(Few-Shot),这样更有利于模型理解我们的需求,比如下面让模型模仿我的语气回答问题。
4、指定任务步骤
指定任务步骤是让模型输出可控的有效手段,通过告诉模型首先干什么,其次干什么,最后干什么的方式让模型按步骤进行响应。
5、给模型适当的激励
给模型适当的激励也能让模型有更正面的情绪响应我们的需求,例如告诉模型这个答复对你很重要,或者告诉模型我们会给它一点好处。例如如下的对比,当我们告诉模型会给它小费的时候,它的响应多积极!
三、总结
编写提示词的过程中,掌握几个关键要素,可以让模型生成的结果更符合我们的预期,时不时给一些激励,PUA一下模型,或许生成的结果质量更优(毕竟老板喂给我们的饼,吃不完就只能喂给大模型了)!