对于大模型prompt的设计,近期斯坦福吴恩达伙同OpenAl出了一套视频教程(B站地址:https://www.bilibili.com/video/BV1AT41187qt?p=2&vd_source=ded42eb7f6e5765ff5aacc787d8e620e)。其中第二篇-指南篇给出了很多prompt设计的重要原则和方法,此处做一个极简笔记整理,适合那些患有”视频过敏症“的同学简单了解。个人建议有时间还是要研究一遍视频,特别是其中的例子,值得反复推敲。
原则一:清楚、明确的指令
1、使用分隔符标识重要文本
如用''' *** ---等,例:请对如下文本进行摘要''' 文本内容 '''
注意内容与提示词的冲突
即,避免需要处理的内容包含某指令,而又与原本的指令不同
2、结构化输出
即告诉大模型需要输出的格式,如json、xml或自定格式步骤123等,以及所需要包含的关键内容等
3、要求模型检查是否满足条件
例:”xxxx“,整理上述文字,并一步一步进行重写,如果原文字不包含步骤,则写明“未提供相应步骤”
4、少量提示词
即,在要求模型执行之前,先提供成功的任务案例
原则二:给模型思考的时间
1、指定完成任务所需的步骤(不仅仅指定输出格式,也要包含要做哪些事)
如:告诉模型需要做1/2/3步骤,每个步骤要做什么,
指定格式可以用三角号“”等标识出来,分隔符的含义可以在提示中告诉模型
2、告诉模型在匆忙做出结论之前先思考解决方案
如,在判定某问题对错的任务中,让模型先自己做一份答案,再去判断原文的对错
模型的限制:模型会产生幻觉(看起来合理却不正确的内容)
方法:
1、按照上述原则设计prompt
2、要求模型先从原文中找出任何相关的引用,然后基于这些引用回答问题,并且可以追溯答案回源文档。(说实话这句我也没有很明白。。。。先抄下来,炼丹过程中体味)