十个实用的 AI 提示词工程技巧
ChatGPT 已经发布一年多了,这一年,我们经常会听到'提示词工程(Prompt Engineering)'这个术语。
在探讨这个概念之前,我们需要先了解什么是 Prompt(提示词)。简单来说,Prompt 就是我们给 ChatGPT 等 GPT 模型的指令,它可以是一个问题、一段描述,甚至是一段带参数的复杂文本。基于这些 Prompt,模型能够生成相应的文本或图片。
例如,在 ChatGPT 中输入的问题'你好',这句话本身就是一个 Prompt。
那么,提示词工程又是什么呢?我用一句话总结,提示词工程是一种专注于设计和优化 AI 提示词的'艺术',旨在提高模型的性能,让其更准确、可靠地执行特定任务。它不仅关乎技术,更关乎深入理解如何使 AI 能够准确理解并响应我们的复杂意图。
这个过程中,我们需要学会如何用模型能理解的方式表达我们的思维。很多人在使用模型时可能会觉得,只要输入一些文字,AI 就能给出答案,看似并不需要什么特别的技术。确实,如果你只是想获得一个简单的答案,直接输入简单的文字就足够了。但是,在与 ChatGPT 这样的模型进行交流时,我们面临着一个核心问题:如何确保我们的意图不仅被理解,而且能够被准确执行。
这就好比我们在与一个全知全能的'神'对话,它拥有无限的知识,但却不是我们肚子里的蛔虫,无法直观地洞察到我们心中的真正想法。简单地说,AI 它并不真正懂我们。另一方面,人类的语言存在不精确性,语言本质是对知识的有损压缩。如此一来,人类语言既无法准确地表达其意图,机器也无法直接理解人类的意图,相当于'双方反向奔赴',产生了'认知差'。
提示词工程的目标就是弥合这种差距,使得 AI 能够更准确地理解和回应我们的需求。所以,如果你希望得到更加准确和满意的回答,就必须需要学会如何写好提示词。
OK,引言部分结束,我们讲完了 Why(为什么提示词这么重要),接下来是 How(怎么使用提示词技巧)。
去年 12 月,VILA 实验室的研究员使用了 26 种常见的提示词工程,在 LLaMA 和 ChatGPT 的各大小版本上进行了大量实验。我从中选择了 10 个我最常用且实用的技巧,结合我在 Prompt 领域的探索,跟大家分享一下这些技巧如何运用到与 AI 的交流中。
首先是 4 个研究人员实验结果发现的,平均改进最多的技巧:
1. 允许它向你提问,以获得足够的细节和要求然后输出
我们与模型沟通交流时,可以用到乔哈里沟通视窗模型,它分为四个象限。
[图片:乔哈里沟通视窗模型]
为什么我们有时会觉得模型不好用,不懂我们,那是因为存在'隐私区',也就是'你知道,模型不知道'。你知道你想要的输出内容是什么样的,但是如果我们不告诉模型的话,它不知道啊!它拥有几乎无限的知识,但却不是我们肚子里的蛔虫,无法直观地洞察到我们心中的真正想法。
那有人说了:'我也想描述清楚我的问题,但我都不知道怎么描述我的问题了'。那有没有可能模型知道怎么帮助我们描述我们的问题呢?当然有可能!这种情况呢,就属于图中的'你不知道,但模型知道',方法很简单:允许它向你提问,以获得足够的细节和要求然后输出。
这就用到了'元问题和元指令'。元问题:当我们不确定如何提出问题时,元问题就像是提问的提问。它帮助我们细化和明确我们想从 ChatGPT 获得的信息。元指令:当我们需要 ChatGPT 执行某项任务,但不知道该如何下达指令时,元指令就起到了引导的作用。它帮助我们构建出更有效的命令。
元问题和元指令是一个大的概念,并不是泛指某一句提示词。它可能是'我想做 xxx,你能给我提供什么帮助?'、'我想要你做 xxx,我应该给你输入什么信息?'、'我想了解 xxxx,我应该向你问哪 10 个问题?'。
让我们来看一个具体的例子。假设我想要通过 ChatGPT 了解全球气候变化的最新研究,此时我的'元问题'可能是:'我想了解全球气候变化的最新研究,我应该向你提出哪些具体问题?'
[图片:ChatGPT 交互示例]
接着,我就可以根据 ChatGPT 给出的提问建议来进一步提问。
掌握了元问题,你就不怕与 ChatGPT 交流时'无话可说'。人类与模型的'认知一致性'是通过语言交流来提高的,越聊,ChatGPT 越能准确地理解用户的需求,并输出人类期望的内容。
元指令和元问题是同一个路数,例如我想给 ChatGPT 下达'写文章'的指令,但是我不知道应该怎么做。那我的元指令可能是'我想让你帮我写一篇文章,但我不知道该向你输入什么信息'。
[图片:ChatGPT 交互示例]
得到了 ChatGPT 的指令提示之后,我就知道接下来应该如何组织语言来下达更细致的写作指令了。
2. 提供一段文本样本,然后让它产出类似的东西
提供文本示例,俗称'投喂'。我们刚刚说了,我们与模型交流时,存在'隐私区',也就是'你知道,模型不知道'。
例如我想让模型帮我写几句土味情话,它的回复是:
[图片:ChatGPT 交互示例]
可以看到,一点'土味'都没有!为什么呢?因为模型根本就不理解'土味情话'这四个字,既然教不会它什么是土味情话,那直接给它几个例子呗。
[图片:ChatGPT 交互示例]
嗯,现在再看,有内味了,OK,这就是第二个技巧。


