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

2024-02-09 22:12

本文主要是介绍ChatGPT高效提问—prompt常见用法(续篇七),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

1.1 零样本、单样本和多样本

​ ChatGPT拥有令人惊叹的功能和能力,允许用户自由向其提问,无须提供任何具体的示例样本,就可以获得精准的回答。这种特性被称为零样本(zero shot)prompt。然而,如果你希望获得更具针对性的回答,可以选择向ChatGPT提供一个或者多个示例样本加以引导。根据提供示例样本的书了,可以分为单样本(one shot)prompt和多样本(multiple shot) prompt。

1.1.1 零样本

​ 在零样本模式下,即在没有任何示例样本的前提下,直接让ChatGPT回答问题。示例如下。

​ 输入prompt:

Screenshot 2024-02-09 at 13.27.06

ChatGPT输出:

Screenshot 2024-02-09 at 13.27.56

​ ChatGPT直接给出了对老虎的描述。

1.1.2 单样本

​ 相较于零样本prompt,单样本prompt则要求我们提供一个明确的示例。比如,可以先以特定的格式描述大象,然后引导ChatGPT以同样的格式描述老虎,从而使回答更加精准。

​ 输入prompt:

Screenshot 2024-02-09 at 13.32.14

​ ChatGPT输出:

Screenshot 2024-02-09 at 13.33.05

​ 观察输出可知,ChatGPT描述老虎的格式与我们提供的关于大象的示例样本格式高度一致。这表明,ChatGPT通过我们提供的单一样本有效地掌握了任务的执行方式。

1.1.3 多样本

​ 对于更高难度的任务,我们可以提供多更多的示例样本,这种方法被称为多样本prompt。例如,我们可以给出多个示例样本,然后让ChatGPT自行完成任务。这种方式在处理复杂任务时效果往往出奇的好。下面是一个基于情感识别的多样本示例。

​ 输入prompt:

Screenshot 2024-02-09 at 13.43.26

​ ChatGPT输出:

Screenshot 2024-02-09 at 13.44.13

​ 从上述答案可以看出,ChatGPT凭借所给的示例样本,成功判断出最后一句话所含情绪为悲观。我们还可以进一步考验它,通过随机化标签,甚至故意制造错误,来观察ChatGPT是否仍能准确地进行判断。

​ 输入prompt:

Screenshot 2024-02-09 at 13.48.03

​ ChatGPT输出:

Screenshot 2024-02-09 at 13.49.25

​ 显然,尽管我们将标签进行了随机化排列,故意使得表述错误,ChatGPT仍然能够准确地进行判断。接下来继续增加难度,这次我们不提供任何样本提示,看看ChatGPT会如何应答。

​ 输入prompt:

Screenshot 2024-02-09 at 13.55.58

​ ChatGPT输出:

Screenshot 2024-02-09 at 14.01.58

​ 观察输出结果可以发现,即使在多论对话结束后,ChatGP也能在无须示例样本的情况下,准确地生成结果。它的反应方式与人类的思考方式高度一致,展现出了极其优秀的分析和辨别能力。

​ 通过样本提示,我们可以获得更加规整、符合要求的回答。

1.2 思维链

​ 思维链(chain of thought, CoT)———prompt范式进化史上的一大功臣。简单来说,思维链就是一系列中间推理步骤。使用思维链的一大好处是无须微调模型参数,仅仅改变输入即可大幅提升模型进行复杂推理时的准确率。

​ 人类解决复杂推理问题的过程是,首先将其分解为一些中间问题,然后逐步解决,直至得到最终结论,也称“自顶向下,逐步求精”。思维链就是参考人类解决问题的方法,从输出问题开始的一系列自然语言形式的推理过程,直到输出最后的结论。和之前的提示词模式(问题,答案)不同,思维链提示词模式是:输入问题,思维链,输出结论。相较于样本提示学习,思维链提示学习有几个吸引人的性质。

  • 在思维链的加持下,模型可以将需要多步推理的问题分解为一系列中间步骤,这可以分配更多的计算资源到需要推理的问题上。
  • 思维链为模型的推理行为提供了一个可解释的窗口,使通过调试推理路径来探测黑盒语言模型成为可能。
  • 思维链推理应用广泛,不仅可以用于数学应用题求解、常识推理和符号操作等任务,而且可能适用于任何需要通过语言解决的问题。
  • 思维链的使用方式非常简单,非常容易融入语境学习(in-context learning),从而诱导大型语言模型展现出推理能力。

下面通过示例做一下对比,体会其中的区别。先看第1个示例。

​ 输入prompt:

Screenshot 2024-02-09 at 14.34.22

​ ChatGPT输出:

Screenshot 2024-02-09 at 14.35.11

​ 从输出结果来看,ChatGPT给出了错误回答。再看第2个示例。

​ 输入prompt:

Screenshot 2024-02-09 at 14.42.08

​ ChatGPT输出:

Screenshot 2024-02-09 at 14.51.12

​ 从输出结果来看,当我们给ChatGPT提供了计算推理的引导后,ChatGPT参考示例进行思考,给出了计算推理过程和正确结果,与第一个示例的错误结果形成鲜明对比。再看第3个示例。

​ 输入prompt:

Screenshot 2024-02-09 at 14.58.55

​ ChatGPT输出:

Screenshot 2024-02-09 at 15.04.22

​ 输入prompt:

这次增加了“让我们一步一步思考”,看看ChatGPT输出。

Screenshot 2024-02-09 at 15.07.06

​ ChatGPT输出:

Screenshot 2024-02-09 at 15.10.16

​ 很明显,当在prompt增加“让我们一步步思考”后,ChatGPT最后没有把送出去的苹果再加上,同样给出了正确结果,但是细节分析更加清晰和符合逻辑。简单地加上这么一句话,让ChatGPT自己先思考一下,会给出更加相信而准确的结果。

最后,总结一下使用思维链范式时的两种主要方法:

  • 输入一个多步推理的prompt模版,把我们的逻辑推导过程告诉ChatGPT;
  • 在问题的最后添加“让我们一步步思考”,让ChatGPT思考后再给出答案。

思维链让模型能够像人一样进行思考,但是人也会犯错,更何况是模型呢。为了让模型输出更加安全、准确,需要了解对抗在其中的作用。

这篇关于ChatGPT高效提问—prompt常见用法(续篇七)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/695417

相关文章

python版本切换工具pyenv的安装及用法

《python版本切换工具pyenv的安装及用法》Pyenv是管理Python版本的最佳工具之一,特别适合开发者和需要切换多个Python版本的用户,:本文主要介绍python版本切换工具pyen... 目录Pyenv 是什么?安装 Pyenv(MACOS)使用 Homebrew:配置 shell(zsh

Java中的CompletableFuture核心用法和常见场景

《Java中的CompletableFuture核心用法和常见场景》CompletableFuture是Java8引入的强大的异步编程工具,支持链式异步编程、组合、异常处理和回调,介绍其核心用法,通过... 目录1、引言2. 基本概念3. 创建 CompletableFuture3.1. 手动创建3.2.

C#高效实现在Word文档中自动化创建图表的可视化方案

《C#高效实现在Word文档中自动化创建图表的可视化方案》本文将深入探讨如何利用C#,结合一款功能强大的第三方库,实现在Word文档中自动化创建图表,为你的数据呈现和报告生成提供一套实用且高效的解决方... 目录Word文档图表自动化:为什么选择C#?从零开始:C#实现Word文档图表的基本步骤深度优化:C

input的accept属性让文件上传安全高效

《input的accept属性让文件上传安全高效》文章介绍了HTML的input文件上传`accept`属性在文件上传校验中的重要性和优势,通过使用`accept`属性,可以减少前端JavaScrip... 目录前言那个悄悄毁掉你上传体验的“常见写法”改变一切的 html 小特性:accept真正的魔法:让

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

使用Python实现高效复制Excel行列与单元格

《使用Python实现高效复制Excel行列与单元格》在日常办公自动化或数据处理场景中,复制Excel中的单元格、行、列是高频需求,下面我们就来看看如何使用FreeSpire.XLSforPython... 目录一、环境准备:安装Free Spire.XLS for python二、核心实战:复制 Exce

在C#中调用Windows防火墙界面的常见方式

《在C#中调用Windows防火墙界面的常见方式》在C#中调用Windows防火墙界面(基础设置或高级安全设置),可以使用进程启动(Process.Start)或Win32API来实现,所以本文给大家... 目录引言1. 直接启动防火墙界面(1) 打开基本防火墙设置(firewall.cpl)(2) 打开高

Java序列化之serialVersionUID的用法解读

《Java序列化之serialVersionUID的用法解读》Java序列化之serialVersionUID:本文介绍了Java对象的序列化和反序列化过程,强调了serialVersionUID的作... 目录JavChina编程a序列化之serialVersionUID什么是序列化为什么要序列化serialV