Prompt实用技巧、应用方向以及实践感悟

0 评论 2643 浏览 18 收藏 17 分钟

关于提示词的写法和技巧,其实已经有很多方法和说明,但不同的场景采用的方法会不一样。本文作者整理了吴恩达的Prompt课程里的提示词技巧,特别适合互联网人的工作,推荐各位学习。

前段时间花了一些时间研究了prompt,也上手了Coze平台的bot搭建,写这篇文章一方面想分享下一些prompt实用的技巧和应用方向,另一方面聊聊透过prompt从另一个视角对大模型的理解。

还记得GPT4刚出来那会儿,我所在的团队领导们特别兴奋,GPT4的智能水平要比3.5强很多,对上下文的理解和逻辑性都要好一些,那时候我们也做了一个聊天机器人的面向海外的应用,很多人说prompt自然语言的编程会在未来取代传统的编程方式,人人都是程序员的时代将要来临,那时候面对一个新东西,一知半解,没有自己的独立思考,但真正沉下心来去理解被后的运作机制以及自己上手体验后觉得好像不是那么回事儿。当然一个更好的prompt会越接近你的理想答案,但能达到理想化的答案似乎还有些距离。

下面写给大家分享一些实用的prompt的技巧,技巧的来源主要来源于吴恩达的prompt课程。

一、Prompt的实用技巧

1. 运用分隔符增强可读性

如果我们想让模型帮助我们用一句话总结段落的内容, 我们可以将段落的内容用一些分隔符包起来,这样模型就能更好的识别哪些是需要处理的内容,哪些是要求。

案例展示:

“`
发现科技与设计的完美结合,iPhone为您带来前所未有的智能手机体验。配备超视网膜XDR显示屏,呈现惊艳的色彩和细节,无论是浏览照片还是观看视频,都能感受到前所未有的视觉震撼。搭载最新的A17仿生芯片,性能卓越,确保多任务处理流畅自如,让您的每一次操作都快如闪电。

“`

请帮我把”””内的内容用一句话概括出来。

所运用的分隔符可以有多种形式,包括像:

  • 三引号:“”“
  • 三重反引号:“`
  • 三连字符:—
  • 尖括号:<>
  • XML标签:<tag></tag>

2. 要求结构化输出

结构化输出的目的是提升模型结果的可用性,比如通过总结段落的内容,让模型输出JSON格式的结果,那这个结果就可以直接拿来和数据库进行交互了,或者把输出的内容转换成表格的形式等等。

案例展示:

这里的格式不单单仅支持JSON,像XML ,HTML都可以,甚至你可以给模型一些格式要求,模型按照你定义的格式进行内容重写。

3. 让大模型检查条件是否满足

在写让大模型执行任务的prompt时,可以先让模型检查下执行任务的前置条件是否满足,如果不满足需要及时指出,否则会差生条件不满足的情况下仍执行任务的错误行为。

案例展示:

4. 少量样本提示(Few-shot prompting)

如果你是一个产品经理,你经常会和设计师沟通,你内心有自己的想法,这个功能呈现的交互和样式大概是什么风格,很多时候你和设计师按照你的想法描述了很多很具体,但往往比不上直接丢给设计师你想要的案例参照来的更明确,大语言模型也一样,你需要给他一些Few-shot。

案例描述:

5. 将一个复杂的任务进行拆解,按步骤给到模型(给模型时间思考)

试想下如果老板给你布置一个短时间内无法完成且需要自拆解梳理的任务,但他需要你当天就提交一份解决方案,你能把这个事情在这么短的时间内做好吗?很难吧,这里模型也是一样,你需要将复杂的任务按步骤拆解后让他执行。

案例描述:

6. 在让模型做判断前,让模型先思考自己这么解决(给模型时间思考)

这也是围绕“给模型思考时间”思想给出的技巧,这里还是类比人类,人在去判断一个数学提的答案对还是错是需要时间的,大模型也是这样,如果直接让模型判断,就会出现幻觉,本来是错的模型会说对,或者会给你一个模棱两可的答案。

这里案例我找了好多数学题的例子似乎没有难倒过GPT的,但在吴恩达列举的例子里出现过这种情况,可能是模型的能力日益增强的缘故,大家如果有兴趣可以尝试给大模型一些题目案例用两种prompt方式,一种让模型先思考再解决,一种是直接给出答案,看是否有差别。

7. 避免模型出现幻觉

某些时候你给模型一个不存在不符合事实的信息,他会很认真的提供一些更详细的解释或描述,这就是所谓的模型幻觉。

吴恩达在他的prompt课程中为了一定程度上规避这些问题,他给出了一些解决方案:

1)首先让模型找到相关信息;

2)然后根据相关信息回答问题;

3)最后你可以让模型回答的内容中体现出用了哪些相关信息。

案例描述:

8. 根据模型回答的结果迭代prompt

这就像做一个产品一样,一个好的产品需要通过用户数据的反馈不断的迭代才能形成,模型首次回答的内容可能和你的期望差的比较远,那你就可以迭代你的prompt,比如你在首次prompt获得的回答字数过多,那你就可以在prompt中增加字数限制的描述;还比如希望在prompt最后给出的结果末尾加上一些额外信息,那可以吧这些要求补充在prompt内。

案例描述:

以上就是吴恩达的prompt课程的主要内容,除此之外他还在课程中提到了几个大语言模型的应用方向,这里也给大家介绍一下:

二、大模型应用方向

1. 总结类应用

现在很多的一些O2O的APP中会有评论模块,有的用户评论的内容比较长,不利于信息的快速获取,这里就可以利用LLM的总结能力,再比如我们要快速了解一本书或一个PPT内的核心要点,也可以通过大模型实现,相信这块儿的应用大家日常也都见过或用过。

2. 文本预测类应用

之前在看AI产品机会的时候,有一家做外呼推销系统的公司在招聘的时候就有描述他们内部在做一套围绕用户回答内容通过大模型自动进行标签分类的系统, 具体场景是他们希望能通过用户在收到推销电话后的回复内容来推测推销失败的原因,而这个原因他们预先定义好标签,例如:产品本身原因、推销不专业、用户不接受电话推销的方式等,那大语言模型这里的作用就是根据用户回复的内容来定义原因。这个案例就很好的运用了文本预测这个功能。

吴恩达在课程中也列举了两个很有价值的例子:

1)将评论的内容通过prompt格式化输出json格式的数据能做有效的数据存储和使用;

2)通过大模型的推断能力为一篇文章生成不同的标签,标签的形式以json形式输出并存储。

这里如果能把预测的内容形成JOSN格式标签化直接和数据库交互,这一点就很有想象空间,比如我们要定某天去某地的机票,那模型就可以直接把定机票所需的字段从对话中总结预测出来,在通过格式化的形式传给订票系统, 订票系统通过就可以格局字段显示相关的航班信息供用户选择了。

再比如点外卖,玲琅满目的外卖,我有时候就很难去选择,同样通过大模型的预测和总结能力从对话中总结预测出来从而推荐一些匹配度比较高的外卖商家出来。这么看来有没有可能未来的推荐模式会被模型给革命掉!

3. 文本转换类应用

上面将的将对话内容格式化也是文本转化的方式,格式化成JSON或HTML等格式,关于HTML格式,这里似乎又是一个能有一些创新机会的点,最早的建站需要code,到后来有一些低代码平台实现拖拉拽的形式,到大模型这里,可能提供一些文案就能帮你生成,这么一来用户自己建站的要求就越来越低了,人人都可轻松建站。

除了这些,转换类应用常见的还有翻译软件,文本校验软件,大模型目前完全有能力去检查出文本中的错别字或者语法错误,以前为了实现这个能力需要花精力去训练小模型,现在通用的大模型就能搞定了。针对这个场景,我个人在创作一些文章时,经常会出现错别字,公众号编辑器里有查错字的功能,但其他好多编辑器是没有的,这就使得我需要花时间去review我自己写的内容,如果把它做成浏览器插件的形式是不是就能覆盖大多数平台了呢?

最后还有一类是语气转换,比如在邮件营销场景下,某些时候我希望发送邮件内容的语气篇商务正式,某些时候体现出友好的,那我就可以提要求让模型自动转化邮件语气,这个语气转换功能几乎现在大部分主流的邮件服务商都在用。

4. 扩展类应用

针对这个功能场景,我之前在做邮件类的AI功能的时候也有涉及过,给一些邮件内容的要点,把它扩写成一篇完整的邮件内容, 简单理解就是通过将一个短文本信息通过大模型扩写成一个长文本信息,open AI在针对这个场景推出了一个参数叫:Temperature,这个值可以调整扩写内容的精确度,取值范围在0~1 ,趋近于0表示模型给的内容更精准,而趋近于1表示模型给的内容更有创造性,根据不同的需求给这个参数赋值。

三、Coze Bot prompt实践分享

端午节前,我在Coze平台上试图做一个关于节日海报生成的Bot,做这个应用也是因为看到了Coze新上了图片流的功能模块且正值端午前夕,就想着能不能做一个自动生成端午节海报的Bot。

应用的实现逻辑大概是这样的,需要模型按照prompt编写的执行顺序从用户那里获取几个信息:节日名、公司对外二维码(公众号二维码、企微码)、公司LOGO、企业联系方式,获取后将这些内容赋值给起初定义好的变量,这里变量是在图片流中会用到,图片流中提前搭建好了如何将这些内容组合到一起生成一个海报的方法。

就这一套功能,我大概花了3天左右的时间,最后的结果是勉强能生成符合企业节日宣传需求的海报,当然样式和canvas、高定设计这种现成的模版没法比。

成功率大概在10%左右,成功率低的原因是模型有时候会不按照你设置的步骤执行,比如这个Bot需要在用户那里获取依次获取四个信息,有时候模型会只获取两个就执行工作流了,有时候跳步骤执行,有时候干脆不执行就回答一些没用的废话,我之前想过如果把成功率提升到百分之70或以上或许就有一定的商业价值,但似乎很困难。

我并不清楚是否有更好的prompt的方式能将其成功率提升,但从目前来看模型还没有达到按照prompt约束的步骤能稳定执行的地步,甚至当步骤过多时稳定执行的成功率还很低很低,这或许需要大模型技术后续的升级和优化 ,也需要一些工程化产品化的能力将其解决,有兴趣的同学我们可以一起探讨。

我一直觉得模型最大的能力在于交互上的革新,将来有一天我们点外卖、订机票等操作可能不需要传统的人机交互的形式,取而代之的是语音交互,说可比对着屏幕打字敲击方便多了。

本文由 @产品萧书 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自 Unsplash,基于CC0协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!