基于大模型的优质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从能做好“单个案例”到能做好“具体场景

 

posted @ 2023-05-24 15:05  Cong0ks  阅读(649)  评论(0)    收藏  举报