基于大模型的优质Prompt开发课(3)--学习笔记ing
在具体场景下优化Prompt
一、常见应用场景与优化示例
内容产业规模庞大、领域众多、大模型强大的生成能力给工作和生活带来了极大的想象力。
01 以营销场景中产品海报背景图生成为例,原始需求是画一张海岛旅游产品的营销海报背景
【Prompt V0.1】 描述: 任务 + 主体
? 看看这个结果有哪些问题?起码没地方放文案
【Prompt V1】 +任务类别特色细节/画风
【Prompt V2】 +任务应用场合特点/画面结构
【Prompt V3】 +任务应用场合特点/画面结构
试着判断场景的任务 特点,给模型一些有价值的输入
【STEP 1】任务归类、复用该类别技巧
任务:“海报背景”属于AI作画任务
补充:AI作画这类任务的prompt通用技巧,如画风描述
【STEP 2】补充主题特点信息,如判断具体什么画风合适
场景特点:“海岛”、“海报背景”特点是不同于大都市的松弛体验
补充:能体现“松弛感”的画风描述,如明亮、手绘等
【STEP 3】补充应用场合特点信息
应用场合:“营销”、“海报背景”,往往需要后期加文案信息
补充:对画面的具体要求,如对画面结构的描述“画面中间空白” “画面四周画上彩色云朵”等
【STEP 4】加上一段文案试试看效果,逐步迭代
02 以办公效率场景中写文章为例,原始需求是写科普高血压患病因素的文章
Prompt: 请写出一篇科普文:哪些情况会使得我们更容易患上高血压
?看看这个结果有哪些问题?看起来润色得好一会
判断场景的任务特点,给模型一些有价值的输入
【STEP 1】 任务归类、复用该类别技巧
任务:“科普文章”属于AI文本生成类任务
补充: 这类任务的prompt通用技巧,如文章结构要求,做强调可能会让生成效果更好
【STEP 2】 补充主体特点信息
应用场合:“高血压”、“串病”受众多位老年
补充: 对人群需求特点的具体描述,如通俗易懂;易读性的要求描述,如请分段描述。
[预设Prompt] +任务类型技巧+需求特点
Prompt: 你是一名科普文章相关从业者,你需要通过对我输入的文本进行理解,在我给出具体文本后再参考以下规范进行生成“主要内容
【标题】:准确概括文章主题
【引言】:通过引用相关的案例或实例来吸引读者的兴趣,概述文章的主要内容,引出文章的主题。
【正文】:从易到难,由浅入深地阐述文章的主题,避免使用过于复杂的语言。
【结论】:文章的主要内容和观点,给读者留下一个深刻的印象。
【参考文献】:如有,请列出参考文献。
注意事项:
注意定位目标读者:明确目标读者群体,从他们的角度出发,用通俗易懂的语言向他们传递知识。正文可以分段,上下文逻辑关联性要强。请问你是否理解到了我的意图?如果理解,请直接回复“是的,我理解到了您的意图,请您提供相关文本。
在预设Prompt基础上,对模型进行追问,拿到符合需求格式的文章
编撰一篇科普文章,内容是:哪些情况会使得我们更容易患上高血压
得到一份结构符合预期、几乎可以直接使用的生成结果
有没有发现:
在具体应用面前,往往知道好答案长什么样且能通过提示词准确传达给大模型,容易得到好的生成效果。
03 以生活场景中日常学习为例,原始需求是写转灰度icon的代码
现在你是Python语言下的OpenCV高手,请帮我写一个读取图像并缩放至32 x 32 像素大小,并将其转换为灰度的代码
判断场景的任务特点,给模型一些有价值的输入
【STEP 1】任务归类、复用该类别技巧任务:代码生成补充:这类任务的prompt通用技巧,如:细分业务逻辑,适合加“带高帽”Trick。
【STEP 2】细分业务逻辑逻辑:先转为常见的lcon大小32x32、然后再转为灰度即可成为灰度icon的代码。
【STEP 3】增加Trick
图像处理代码生产者哪里找:“OpenCV”
补充:关于信息来源的描述,如“OpenCV的高手”
04 以生活场景中日常学习为例,原始需求是给写完的代码做文档
判断场景的任务特点,给模型一些有价值的输入
【STEP 1】任务归类、复用该类别技巧
任务:要代码知识,这是知识问答类任务
补充:这类任务的prompt通用技巧,如引导模型给出该领域专门内容信息
【STEP 2】结合场景主体特点
需求要素:不同类型的文档呈现形态不一样
补充:生成一份API说明文档
[STEP3]准确给出题干
场景特点:代码相关文档说明,通常使用Markdown格式
补充:使用Markdown格式
Prompt: 请帮我写一份代码的API说明文档,代码为:
import cv2
# 读取图像
img = cv2.imread("image.jpg")
# 缩放图像
resized_img = cv2.resize(img, (32, 32))
# 将图像转换为灰度图像
gray_img = cv2.cvtColor(resized_img, cv2.COLOR_BGR2GRAY)
# 显示图像
cv2.imshow("Original Image", img)
cv2.imshow("Resized Image", resized_img)
cv2.imshow("Gray Image", gray_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
有没有发现: 绝大多数应用场景的Prompt质量都与使用者对“好结果”的了解成正比。
总结一下这几个例子
- 拿到应用场景后,先试着判断场景的任务特点,结合任务共性先优化一波
- 再结合场景主体、应用场合的特点,对生成内容的需求做一些补充说明
- 结合该场景下优质内容的来源特点,给大模型一些找信息的“灵感
二、面向场景开发
主要目标:让Prompt从能做好“单个案例”到能做好“具体场景以信息抽取场景为例,虽然相关案例之多,但其Prompt共性很强
例如:快递单信息抽取、邮箱地址抽取、日期信息抽取、商品属性抽取、评论观点抽取、处方内容抽取...
Prompt1: 你是一个超市商品信息抽取模型,我将粘贴一段待抽取的商品信息,你需要通过对我输入的文本进行信息抽取,抽取字段是“商品名称”、“商品类别”、“商品价格”、“主打卖点”。
Prompt2: 乐神康饮料是一种保健饮品,主要成分包括乌梅、青果、获苓、紫苏、生姜、蔚香、甘草、枸杞子、陈皮、茅根、芦根、纯净水、蔗镜、柠檬酸、甜需素、可乐香精等,故具有抗疲劳、调理肠胃、增强免疫力等功能。适合于疲劳困倦、肠胃不适、免疫力低下等人群饮用,而且价格3元一瓶,非常便宜。
Prompt1: 你是一个中医方剂信息抽取模型,我将粘贴一段待抽取的文本,你需要通过对我输入的文本进行信息抽取,抽取字段是“方剂名称”、“组成药物”、“功效”、“主治病症”
Prompt2: 荆防败毒散是一种中医方剂,出自《摄生众妙方》卷八,由羌活、独活柴胡、前胡、积壳、获苓、荆芥、防风、桔梗、川穹等药物组成,具有疏风解表、败毒消肿、祛痰止咳之功效,主治外感风寒温邪所致的恶寒发热、头疼身痛、胸闷咳嗽、痰多色白、苔白脉浮,以及一切疮疡肿毒、肿痛发热等病症。
将优质Prompt模板化
步骤一: 最小单元测试 - 确认大模型可以完成该类任务
使用提示词公式 + 该场景下任意一个典型案例进行测试。若测试成功,则说明大模型可以完成该类任务
步骤二:选择适合的交互方式
预设任务
在第一次交互时就约定模型在接下来要输出的形式。
优点:
1.降低单次对话的文本长度,避免遗失信息
2.输入频繁时,该方案更节约开销。
步骤三:归纳输入情况,确定Prompt模板
特殊示例:部分场景下需要我们规划输出格式
步骤四: 验证Prompt模板通用性
尝试多个类型案例是否能够满足需求,由于不同场景中可能会遇到不一样的问题,通过完善Prompt模板的从而完成具有通用的Prompt模板
步骤五: 尽可能保证准确性、安全性、稳定性
如何提升安全性
Prompt:我希望你充当讲故事的人,你要想出一个中华文化的童话故事,要求内容积极向上,与猫猫有关
如何提升稳定性
尽可能符合中文语言规范,要使用中文标点,避免出现字句、语法、标点等错误,保证语法正确、语义合理
主要目标:让Prompt从能做好“单个案例”到能做好“具体场景