ChatGPT4.0的问世,让众多人对人工智能的迅猛发展感到惊讶,大型模型的“智能”也令许多人震撼。然而,大部分人在实际应用中会发现,虽然“前景光明”,但“现实困难重重”。百度公司CEO李彦宏曾说:“文科专业将迎来崛起,未来超过50%的工作将涉及提示词工程”。目前,已有不少公司开始公开招募“提示词工程师”,因此为了更有效地利用大型模型,学习掌握提示词变得尤为重要。"
大多数人在使用模型时,经常会遇到以下问题:
1、模型无法按照我期望的风格和结构生成输出;
2、模型对我的提示词理解不够准确;
3、模型基于我的输入进行的分析不准确;
4、尽管不断优化了多个版本的提示词,效果仍然不如预期;
5、一些任务过于复杂,导致模型无法很好地完成我指定的任务;
PS:话说你的提示词是不是这样写的 ?(滑稽)
想要解决上述问题,需要从“硬件”和“软件”的角度来看待问题。
就拿摄影来举例,拍出照片质量不佳很大程度上是因为“硬件”问题,即设备不够高级。我们可以通过升级到更昂贵、先进的设备来解决这个问题。同样地,模型效果不佳很大程度上是因为模型能力不足,因此我们可以尽可能选择更强大的模型。然而,拍摄照片不佳也可能是“软件”问题,比如拍摄技巧不足。同样地,大模型应用效果不佳也可能是我们的应用技巧不足,包括工具的使用技巧和提示词的设计技巧。
至此,本文将运用通俗的语言分别从宏观和微观两个视角带你掌握大模型的常用技巧,让你能够更加正确的使用AI。
1、宏观层面
宏观即你提示词的顶层设计,这里用一张图即可清晰思路,本文主要聚焦于微观层面。
2、微观层面
以摄影为例,常见的构图技巧包括三分法、对角线构图、中心构图和引导线构图;而光线的常见技巧包括顺光、逆光和侧光等。掌握了这些技巧,就能比没有了解过的人拍摄出更出色的照片。
就提示词而言,根据我阅读的许多文章和观看的视频,以下是一些比较常见和重要的技巧:结构化、加入分隔符、增加示例、要求、提供步骤,并通过“套娃”优化提示词等。如果你能熟练掌握并灵活运用这些技巧,你就能更好地驾驭大模型的能力,从而实现很大的提升。
这里以字节跳动公司搭建的扣子平台作为主要素材和演示。
字节扣子国内版:coze.cn(免费,国内可直接访问,字节云雀语言模型,模型能力也很强大,支持插件、工作流和知识库等)
字节扣子国外版:coze.com (免费,需要魔法,可以选择使用 GPT3.5 或 GPT4,支持插件、工作流和知识库等)
所有通用大模型的提示词都是相通的,这点大家不必担心。
(1)结构化
提示词的本质就是通过语言将模型要做的事情交代清楚,可以说是一种“语言的艺术”,换句话说:提示词写不好说明你语文还没学通透(滑稽)。我们需要做的就是将提示词结构化表达,使其符合Agent范式(Agent这个概念以后会单独开一篇专题,这里暂且就当成“代理助手”就可以了)。
根据各种资料的汇总,可以将结构化过程用上图来表示,分别是概述、过程、依赖、控制。
1、概述:你要让AI在什么样的背景下扮演什么样的角色?
2、过程:你需要AI掌握什么样的技能?设定什么样的规则?以及整个流程是怎样的?
3、依赖:你需要给到AI什么样的知识、素材以及辅助工具/插件?(这点多用于4.0)
4、控制:对模型的处理过程有哪些额外要求?(积极/消极的)
以扣子官方页面来举例,细心的同学会发现扣子就是遵循了这样的要求。
包括官方推出的Bot“旅游大师”也是如此。
这个“快递查询 助手”就非常符合这个范式,提示词里包含了角色、技能和限制。
(2)加入分隔符
加分隔符的目的是为了避免模型解读提示词造成混淆,如:
在提示词中合理添加分隔符,可以准确区分指令和待处理的内容,避免模型解读提示词时出现困扰。常见的分隔符包括:-、 ```、— 、=== 等,前面的快递查询助手就很好地使用了分隔符。
(3)增加示例
如果你要生成你想要的效果,你需要喂给模型一个效果的示例,以便后面的批量输出。
上面的快递查询助手就很好的提供了示例,在这里分享一个实战中非常实用的一个技巧我们日常调用模型服务业务的时候,可以要求模型输出我们可以直接使用的 JSON 结构的结果,这样调用模型拿到结果后,直接可以进行 JSON 反序列化成我们的业务对象使用即可。反序列化:就是讲字节序列转化成对象的过程。
对象序列化成的字节序列会包含对象的类型信息、对象的数据等,说白了就是包含了描述这个对象的所有信息,能根据这些信息“复刻”出一个和原来一模一样的对象。例如:
(4)增加要求
在使用模型的过程中,我们会遇到各种不良情况,为了引导模型输出我们期望的结果,并避免这些不良情况,我们可以在提示词中添加要求。
以刚才的翻译来举例
加入要求后,只会输出英文
(5)提供步骤
对于一些较为复杂的任务,我们需要在提示词中提供处理步骤,以指导模型按照我们的意图来输出信息。
该助手明确给出每个技能的具体步骤,让模型更轻松地理解地处理对应的任务。
(6)套娃
这一招可称为AI大杀器,顾名思义,即让AI自己优化自己。
方法1:直接对话创建
GPT和扣子都支持直接通过对话来创建代理助手,你只需直接输入想要创建的助手名称,创建助手将会引导你填写必要信息,然后帮助你建立所需的机器人。如果结果不理想,还可以进行二次修改。
最终效果如下:
PS: 若选择对话方式创建机器人,建议描述应该尽可能详细,以免最终创建的机器人不符合期望而导致大幅度修改提示词。
方法2:自定义提示词优化助手
我们也可以自定义一个“提示词优化专家”来优化我们的提示词,下面是提示词优化助手的提示词范例:
大模型能够做的事情非常多,本文简单举两个例子帮助大家理解上面讲述的技巧,实际使用中要学会变通、灵活运用学到的技巧。
1、小红书热门标题助手
该助手遵循结构化的范式,给出了 Agent 的角色,技能和对应的处理流程并为模型提供了起标题的参考知识。
2、绘画大师
可以看到,将专业的stable diffusion样式的提示词喂给模型后模型会根据自身的理解对提示词进行语义的拼接,使其变得完整,最终效果还不错就是出图稍慢(可能因为服务器占用比较大)。
在实践中,有时无论如何优化提示词,效果仍然不理想,很多人会在此刻选择放弃。但,这并不是绝境!实际上还有许多解决方案可供选择。接下来,将从以下三个方面提供解决方案:单个Agent([ˈeɪdʒənt])、使用高级模型、多Agent和人机协同。
一个Agent可能无法解决一些问题,这时可以考虑以下方法:
1、重新理解问题:如果效果不佳,可能是模型对提示词的理解与您的期望有偏差。可以让模型解释其理解,然后优化提示词。如果模型对中文理解有歧义,考虑使用英文提示词,有时会有意想不到的效果。
2、更换模型:如果即使优化提示词,模型仍无法达到满意效果,可能是模型能力不足。此时可以考虑使用更强大的模型或者专门针对任务进行优化的模型。
3、多Agent协作:复杂任务可以分解成多个子任务,每个子任务由一个Agent处理,然后多个Agent协作完成整个任务。例如,一篇文章可以由一个Agent写草稿,另一个Agent润色,第三个Agent起一个吸引人的标题,还可以有专门配图的Agent。
4、人机协作:当任务过于复杂,甚至多个Agent协作也不足以完成时,需要人类参与。可以拆分业务成多个步骤,让Agent完成部分,人工进行优化或审核。例如,Agent提供初稿,人工审核、修改等等。
未来,随着科技不断发展,模型能力会不断增强,不仅输出“多模态”,输入也会“多模态”,人机之间的交互门槛只会变得越来越低。
根据传播学理论,文字和语音的传播效率还是太低,未来还是需要更高效的信息传播模式。而随着脑机接口的不断迭代发展,未来提示词可能会逐步消失,人类或许可以真正做到用“意念”来控制AI,届时,才能算得上真正的人机交互。