admin 管理员组

文章数量: 887006

ChatGPT高效提问—prompt常见用法(续篇九)

​ 如何准确地向大型语言模型提出问题,使其更好地理解我们的意图,从而得到期望的答案呢?编写有效的prompt的技巧,精心设计的prompt,获得期望的的答案。

1.1 增加条件

​ 在各种prompt技巧中,增加条件是最常用的。在prompt中增加条件时,一条基本原则是:明确且清晰的信息传达。这能够保证prompt对ChatGPT有效,进而引导ChatGPT生成既饶有趣味又富含信息的对话。如何基于这个准则为prompt增加条件呢?下面结合实例说明具体用法。

1.1.1 ToDo or NotToDo式条件

​ 在问答场景中,我们设定条件的本质目标通常有两种:希望ChatGPT执行某项任务,或者禁止ChatGPT执行某项任务。一般而言,积极性的“ToDo“类条件通常比消极性的”NotToDo“类条件效果更佳。举例来说,假设想让ChatGPT推荐一本编程类图书。

​ 首先尝试未加条件的prompt。

​ 输入prompt:

​ ChatGPT输出:

​ 添加到ToDo条件,输入prompt:

​ ChatGPT给出更精确的回答:

​ 从回答中可以看出,通过增加ToDo条件“编程相关”,成功缩小了推荐范围,仅通过两轮对话就具备了得到满意答案的可能。假如我们想阅读Go语言编程相关的书,可以添加“Go语言“作为限定词,如下所示:

​ 如果供Go语言初学者阅读,可以这么输入:

​ ChatGPT最终的回答:

​ 接下来我们使用增加NotToDo条件的prompt,看看ChatGPT的表现如何。

​ 输入未加条件的prompt:

​ ChatGPT输出:

​ 添加对非心理学和行为经济学类的限定:

​ ChatGPT输出:

​ 添加对非历史和传记类的限定:

​ ChatGPT输出:

​ NotToDo式提问仅展示了部分对话内容。从以上对话可见,添加NotToDo条件(不要X X相关的书),实际上是采用了一种排除法。虽然这种方式确实能够有效地缩小推荐范围,但每次缩小的幅度仅限于NotToDo条件描述的范围。这就导致需要经过三至四轮(甚至更多)对话,才能获得满意的答案。

​ 这并不是说NotToDo条件不实用,事实上,在某些场景中,NotToDo条件能发挥更大的作用。以下是一些常见的应用场景。

  • 当你已经明确地向ChatGPT表达了需求,但还想进一步缩小范围时,适当增加NotToDo条件可以有效提高查找效率。
  • 当你处在某种探索阶段,例如不清楚如何精确地限定需求,只知道不希望得到什么时,可以先添加NotToDo条件,让ChatGPT在更大的范围内提供答案。当完成探索并明确了需求后,继续优化prompt。

因此,不论是ToDo还是NotToDo,选择哪种类型的条件,关键在于具体需求和应用场景。

1.1.2 增加条件的注意事项

  • 明确prompt的目标:简单来说,你想让ChatGPT为你做什么,是需要事实信息、意见、建议,或者是回答问题、记录信息?你希望得到简短的回答,还是详尽的解释?你提出的问题是否基于之前的对话内容?你的问题是开放式的,还是封闭式的?开放式问题允许更多可能的回答,而封闭式问题通常只需要特定的答案。明确了这些点,设计prompt时再增加相应的条件,表述会更加准确。
  • **条件词汇要具体:**包括但不限于时间(如2023年4月15日星期六)、人名(如张三)、书名(如《时间简史》)等能确切表达一个事物的条件,而像书籍、作业、程序这种统称型词汇,则不适合作为prompt的条件单独使用,比如“能帮我写程序吗?”这个prompt中的“程序”条件就显得过于宽泛和开放,导致ChatGPT难以生成有用的回答。这时我们就需要引入其他限定词,使目标更明确,进而获得较好的答案,例如“帮我写一个Python程序,其主要功能是列出当前文件夹下及子文件夹下的所有文件“。这样的prompt比较具体,ChatGPT能够较好地实现我们的需求。
  • **保持对话在正确的轨道上:**在与ChatGPT的交流过程中,专注于正在讨论的主题并规避与之无关的话题至关重要。保持对话在正确的轨道上,能够确保ChatGPT的反馈符合自己的目标,且信息内容既有价值又有相关性。

上面两个例子的第一轮对话使用不含条件或条件过于宽泛的prompt,ChatGPT不知道我们具体想问什么,因此难以生成有重点或有用的回答。我们在添加条件时尽量避免这类情况,具体操作可参照上述注意事项。

1.2 增加示例

​ 对于一些涉及既定事实的问题,我们可以通过在prompt中增加限定词的方式,限制ChatGPT返回答案的范围。示例如下。

​ 输入prompt:

​ ChatGPT输出:

​ 我们设计的prompt限定了ChatGPT只能列举大洋洲的国家。大洋洲所含国家既定事实,限定这个范围后,ChatGPT给出的答案正是我们想要的。然而在某些场景下,有些要求很难通过prompt中的文字描述传递给ChatGPT,即使描述出来了,ChatGPT也不能很好地理解。比如下面这个起名字的例子。

​ 输入prompt:

​ ChatGPT输出:

​ 可以看出,当向ChatGPT提出起名字的要求后,ChatGPT给出的答案虽然是人名,但不是我想要的。针对这个情况,我们可以在设计prompt时,在问题的最后加上一些示例,以引导ChatGPT模仿示例,从而返回更加符合需求的答案。

​ 输入prompt:

​ ChatGPT输出:

​ 可以看出,我们通过“张三”这示例,引导ChatGPT输出了三个中文人名,并且都是两个字人名,符合要求。下面试试增加需求。

​ 输入prompt:

​ ChatGPT输出:

​ 看起来ChatGPT回答得不错。通过限定条件与提供示例,引导ChatGPT给出了符合要求的答案,这就是在prompt中增加示例的作用。

​ 看起来,ChatGPT回答的不错。通过限定条件与提供示例,引导ChatGPT给出了符合要求的答案。这就是在prompt中增加示例的作用。

本文标签: 续篇 高效 常见 ChatGpt Prompt