你可能看过很多文章都说过AI提示工程在未来有多么重要,如果你觉得这个话题没什么新意,可以关掉不要浪费你自己的时间。
你也可以选择认真看一下这篇文章,我尽可能用最短的方式解说(我尽量)。
AI提示工程:简单来说就是跟AI沟通,让AI产出有用的资讯的方法。
例如图片生成大佬的midjourney,除了画风跟主题外,你可以提示他你需要的视角,光线,气氛甚至材质,你还可以进一步要求拟真还是绘图,要采用哪种3D渲染方式等等,或是修改他的「随机性」等等。
其中提示词还有采用比重等等设计,例如你提出三种元素,你希望三种是否都同样重要?真正要能把midjourney写通,一两百页文件可能也写不完。
不过我们今天的重点在GPT引擎,即便如此,「AI 提示工程」也不是一个简单的知识,因为不管midjourney或是GPT,进化的速度都非常快,你可能现在能用的提示词,系统修改后GPT就开始胡说八道了。
如果要从根本去理解GPT的AI提示工程,最好的教材其实是官方的API开发文件,官方提到了四种角色
- System:系统,例如你要指定GPT的角色,或是要求指定规格等等
- user:用户,也就是你要提问的内容
- assistant:助理,实际上指的是GPT回应的角色,如果你送出这个角色的内容,意味着告诉GPT他之前应该要回应这样的内容,当我们有一个一连串的对话时,助理发出的内容也会视为参考资料
- function:这个比较复杂,如果你使用API,可以用来呼叫你已经写好的功能,我们暂时不讨论
当你没有给他所谓的系统提示词,他就只能从庞大的数据中提取出他自以为对你有用的答案,而且他不清楚你的准确需求,也很容易敷衍了事。
即便不是用API来使用GPT,依旧有所谓「系统提示词」的技巧
一个普通的提示词
GPT的回答:
一个具备系统提示词条件的问法:
GPT的回答:
系统提示与普通提示不同,系统提示词包含特定的指示和约束,指导AI的回应,通常要求AI扮演某种角色,遵循特定的格式,或者遵守其他限制。
通常我会拆解成以下几个部分:
- AI扮演的角色背景:例如他是一个幼儿教育人员,或是一个系统终端界面,或是一个热门标题产生器
- 我想要提问的问题任务:例如我希望他编写一个课程大纲
- 我希望他回答我哪些方面的答案:例如范例中「介绍如何创建无缝混音的电子舞曲曲目」,这个范围越准确越好,尽量不要很空泛的询问,我举个例子:
- 「请帮我比较特斯拉跟可口可乐的财报」:这个就比较空泛
- 「请帮我比较特斯拉跟可口可乐在2017年的财报中,亚洲地区的现金流量差异」:这个就比较准确
- 如果不知道要问什么,也可以另外开一个对话框,问问ChatGPT可以问什么。
- 提示他这些答案包含了哪些参考:例如范例中的「包括节奏匹配、短句和过渡技巧。」,举个例子,如果你希望他帮你整理BTC过去牛市的变化,你甚至可以直接给他你要的格式,例如要求他提供,开始时间,开始价格,最高价格,结束时间,同期美元汇率等等
一个好的系统提示词要奔着以下几个目的去:
- 缩小范围,集中回应。
- 减少不相关或不正确信息的可能性。
- 引导生成符合特定要求的创造性内容,如生成故事或是课程内容。
- 开发人员可以根据自己的特定需求调整ChatGPT的回应。
我再用另一个案例分解给大家看,这个案例中,让他担任一个Web3社群运营人员的角色,并以这个角色撰写一份求职履历:
这时候AI的个人背景就是:「你是一个Web3社群运营人员」
我想要提问的问题任务:「写一份通用简历」
我希望他回答我哪些方面的答案:Task1~task5
提示他这些答案包含了哪些参考:基本信息~关于我
我们来看看结果
有没有注意到一件事情,就是AI扮演的角色,不一定是一个指导员,或是特定专长的专家,也可能就是那个有需求的人,这也是一种缩限范围的方法。
有几个最近发生的变动要注意一下,OpenAI也许是为了节省成本,把免费版本CahtGPT 的历史对话记忆给缩短了。
以前可以先提示后,在一个对话框中,他都能遵守一开始的提示,现在缩减到4个对话后,chatgpt 就忘记开始的需求了。
如果对话的文字很长,可能两个对话后它就失智了!
面对OpenAI 的降智问题,有几个需要改变的策略。
- 付费,据说历史对话记忆可以增加到10-16不等,处理的字串可以增加四倍
- 询问问题时把系统提示词跟要问的具体问题合并起来,节省一次历史数量
- 如果是超长文章的需求,现在只能切分多次,例如一开始先让列出大纲,然后每次将大纲当作问题的一部分,并让CahtGPT 撰写指定的章节
今天的课就到这里了