这篇文章是我根据最近遇到的prompt这个词,结合讯飞学习平台和一位数据科学家 Sheila Teo 夺得 GPT-4 提示工程(Prompt Engineering)竞赛冠军写的名为《我如何赢得了新加坡 GPT-4 提示工程赛》的博客文章整理出来的关于prompt的自我见解。
首先这是人工智能给出的prompt介绍。
prompt顾名思义有提示的用处,在人工智能大模型语言交互中有一个好的prompt可以使自己做出来的交互系统更加贴切用户的问题,那么怎么写出一个好的prompt呢。
结合Sheila Teo发布的博客分享我给大家简述一下。
1.使用CO-STAR框架搭建
什么是CO-STAR呢?(下面是在Sheila Teo博客的截图)
其工作方式为:
在对比有无使用CO-STAR框架下,可以发现大语言模型对于使用框架的prompt下的回答更加符合用户的需求,更具有针对性。
2.使用分隔符为prompt设置分节
分隔符可以帮助大语言模型分辨prompt的哪些部分应被视为单个含义单元,让其中各个部分能被区别对待。分隔符对任务复杂的prompt的影响比较大。
用特殊字符当分隔符
分隔符可以使用任何通常不会同时出现的特殊字符序列,举些例子:###、===、>>>
特殊字符的数量和类型并不重要,只要它们足够独特即可,这样才能让 LLM(大语言模型) 将它们理解成内容分隔符,而不是普通的标点符号。
下面是一个例子:
上面例子中使用的分隔符是 ###,同时每一节都带有完全大写的标题以示区分,如 EXAMPLE CONVERSATIONS 和 EXAMPLE OUTPUTS。前置说明部分陈述了要分类的对话是在 <<<CONVERSATIONS>>> 中,这些对话是在 prompt 末尾提供,也不带任何解释说明文本,但由于有了 <<< 和 >>> 这样的分隔符,LLM 就能理解这就是要分类的对话。
用 XML 标签当分隔符
另一种方法是使用 XML 标签作为分隔符。XML 标签是使用尖括号括起来的成对标签,包括开始和结束标签。比如 <tag> 和 </tag>。这很有效,因为 LLM 在训练时就看过了大量用 XML 标注的网络内容,已经学会了理解其格式。
好了以上就是prompt的入门介绍,若要进阶可以去了解 “使用 LLM 防护围栏创建系统提示”,“仅使用 LLM 分析数据集,不使用插件或代码”
这是Sheila Teo大佬的原文链接https://towardsdatascience.com/how-i-won-singapores-gpt-4-prompt-engineering-competition-34c195a93d41