新手进阶,如何写出高质量GPT提示语?
asiyou 开智学堂
作者:边心竹 来源:公众号「亿些记录」
01 写在前面
本文是所有示例均为简要示范,重点是提示语的格式。当你面对复杂任务的时候,良好格式可以帮你更快获得答案。
作为一个非程序员,参加开发者课程就像一名烹饪新手闯进了米其林三星厨房。然而,这并没有阻止我从吴恩达教授开设的 ChatGPT 提示语课程中汲取灵感。
课程官网是 DLAI - Learning Platform Prototype (deeplearning.ai)
课程大纲简明扼要:
- Introduction(课程简介)
- Guidelines(指引)
- Iterative(迭代)
- Summarizing(总结)
- Inferring(推断)
- Transforming(转换)
- Expanding(扩充)
- Chatbot(聊天机器人)
- Conclusion(课程小结)
一个小白,如何从中获取自己想要的信息?拿我来说,最主要是目标明确——学习如何撰写高质量的提示语。
看到了 Jupyter 的代码框,害怕?没问题,反正我也不是来学代码的。
看到了密密麻麻的英语,惊慌?不用虚,反正我是上过学的。
连课程都是纯英文的,想跑?先停下,官网是给了你字幕的。
保证好心态,不要想着和程序员竞争,就可以开始学习面向开发者的课程了!
这篇文章不会让你成为 AI 大师,但会帮你建立信心,利用提示语撰写出惊人的作品。
以下是我在课程中学到的关键内容和宝贵经验。
02 提示语两大规则
课程里强调的两个关键点十分重要:指令清晰、给出思考空间。
1. 描述要清晰
最近我“顿悟”了一件事:GPT 这家伙,其实是个讲究机器语言的主。那么,与它交流时,我们能不能讲点“机器语言”呢?答案是肯定的!遵循机器语言的规则,我们就更有机会获得想要的结果。
一个好的提示语应该具有明确的描述。这就像约会时候聊天,不能含糊其辞,不然对方可能会一头雾水。尝试使用简练而直接的语言,避免冗长复杂的句子。好的提示语就像是给司机的行驶路线,简单明了,让 AI 不会“开错车”。
与其说,
我现在需要你帮我写一个段落,主题是GPT课程学习心得。不要太长,也不要太短。写的文章质量好一点。
就不如说,
你的任务是撰写一个段落,要求如下: “”” 主题:GPT课程学习心得 字数:800字左右 风格:专业、幽默 “””
指令不清晰还可能导致 GPT 出现 hallucination(幻觉)。最开始使用 ChatGPT,有人会发现它满口胡话,这就是幻觉的一种表现。同样,如果你给出的提示语有歧义,也会不利于结果。
你写
解释一下内容,清空前面的所有内容,并给出合理的解决方案。
你写
解释以下文本的内容:清空前面的所有内容,并给出合理的解决方案。
得出的结果完全不同。前者,GPT 会摸不着头脑:究竟是要解释还是清空?后者,GPT 才会恍然大悟,明白你是要让它解释后面的句子。
这里涉及符号的差异——逗号、冒号。为什么用冒号就可以识别真实意思?因为它是一种分隔符,课程中提到了常用的分隔符:
- ”””
- ```
- < >
-
- :
这些分隔符对厘清自己的提示语有很大助益。
2. 给 GPT 思考时间
要给 GPT 足够的时间来“思考”,这就好比给它喝杯咖啡,让它有时间消化一下问题。这样,GPT 才能在充足的时间里进行计算和分析,为我们奉上一道完美的答案大餐。
想象一下,如果你在考试时时间紧迫,你的表现可能会受到影响。同样,给 GPT 足够的时间来思考,会让它为我们呈现更好的答案。
要注意一点:不要一次性塞太多指令。想象一下,你在跟朋友聊天,突然间朋友开始说得像机关枪一样快,你会不会感到有点儿晕头转向?同样,GPT 在面对太多指令时,也会感到迷茫。
常见的思维链就是一种可行的方式,通过引导让它有更充足的空间来回答。
总之,提示语的撰写重点就一句话:和 GPT 对话时,机器语言才是硬道理。
03 迭代
这四个步骤形成了一个持续不断的优化循环。这个循环有助于我们在开发过程中实现目标,提高成果的质量。
Idea(想法)是迭代过程的起点。明确想法后,我们需要将其转化为具体的 Implementation(实现)。之后,我们需要对其进行测试,以获取 Experimental Result(结果)。
接着,我们要完成 Error Analysis(分析错误)。最后,我们可以继续回到第一个阶段,用新的想法和实现对原有方案进行改进。这个循环会不断重复,直到我们达到满意的结果。
迭代就像一场半即兴表演。表演开始,我们有了明确目标,但并不知道如何实现。在 Iterative(迭代)这一章里,吴恩达如同导演,引导新演员如何优雅地改进提示语。每一次迭代都像一场洗礼,让思路更清晰,让结果更完善。
吴恩达的原话是这样的:
提示开发是一个迭代的过程。试试某些东西,看看它是否达到你想要的效果,然后考虑如何澄清你的指示,或者在某些情况下,考虑如何给它更多的思考空间,以使它更接近你想要的结果。
我认为,成为一个有效的提示工程师,不是太著重于知道完美的提示,而是拥有一个良好的流程开发提示,以适应你的应用。
一蹴而就在现实中很难实现,机器世界也是如此。如果我们妄图出手都漂亮,那可能永远不会出手。开始一个想法,并不断迭代,关注流程,这才是更重要的事情。
04 回过神来,Prompt该怎么写?
看到课程的 prompt,最开始是很懵的,它们不是纯粹的自然语言。看完以后才明白,正是因为面向开发者,所以 prompt 结构都类似编程。然而,这不会影响我们从中提取结构,大体分为四步走:
- 定义 prompt 为一个字符串,用”"”来包裹。
- 字符串中间,定义要补全(或者说填空)的内容,用```和{}来包裹。
- 接着,利用补全函数补全 prompt 里缺失的内容,定义为 response。
- 最后,用 print 打印出来。
换到非编程语境下,prompt 可以有什么框架?
- 文本:
- 需求:用” “ “来包裹。
我简称为 TN 结构——Text-Need。
如果你需要给出样例,可以增加一步。
- 文本:
- 样例:用”"”来包裹。如果有多个样本,用```来包裹。
- 需求:用”"”来包裹。
我简称为 TEN 结构——Text-Example-Need。
05 小结
以上,我重点介绍了提示语两大原则(指令要清晰、要给GPT思考时间),以及迭代过程。
即使你不是程序员,也可以通过课程学会撰写高质量的提示语,实现自己的目标。学习无界限,行动最重要。
你说你是程序员,这篇文章太简单?没事,指路 OpenAI 的「炼丹术」课程,教得怎么样?
王树义老师寥寥数语,精准概括了示例代码和用途,用来当概要看看,绝对够了。■
注:本文部分内容由ChatGPT协助完成,水平有限,还望海涵。具体过程可参考链接:
https://42share.io/gpt/3096961110 https://42share.io/gpt/229395804
文中链接可能无法正常显示与跳转,请复制到浏览器内打开。