你真的会跟 ChatGPT 聊天吗?(下)

接《你真的会跟 ChatGPT 聊天吗?(上)》,本文下半部分没有无毛猫那么搞笑的内容啦!即使如此,哪怕你对文中提及的技术不大了解,也可以毫无压力地看完这篇,描述如何更好地获得 ChatGPT 生成内容的文章。因为我也是利用 Azure OpenAI 等认知服务来学习,然后就这样写出来的。所以,舒服地坐下来,慢慢看吧~

微软MVP实验室研究员

胡浩

多年从事基础架构相关工作,熟悉全栈虚拟化、终端用户和边缘计算等,对多个技术方向有所涉猎。乐于学习并分享 Azure 和 AI,曾在很多大型研讨会演讲,如微软的 TechEd、MEDC、Tech Summit、Ignite,威睿的 VMworld、vForum、ENPOWER,以及苹果、戴尔等技术会议。同时也是很多社区大会如 Global AI Bootcamp、Global Azure Bootcamp、Global M365 Bootcamp 等活动的组织者和演讲者。

玩角色扮演

GPT 使用了如此庞大的语料库数据集,以至于任何人类个体基本上都无法望其项背。那么问题也就来了——对于人来说,同一个问题,不同角色不同场景的理解和回答会大相径庭。那我们如何期待 GPT 能够以更准确的方式回答我们的问题呢?

答案是,为 AI 分配角色。我们也可以将之视为角色扮演(Cosplay)。这样 GPT 会以你定义的角色,更加合适地回答你的问题。

我们先向 GPT 模型提一个问题:“如果我面试人工智能专家,你会提出什么样的问题?” 

可以看到,GPT 回答得还蛮不错,但是不太像人工智能公司的 HR 提的问题,感觉没那么专业。

以下是一个例子:“你是一个人事的专家,已经从事招聘工作超过10年,帮助企业面试候选人。你的任务是提出常见的问题来确认候选人是否满足要求,并且愿意入职。如果你理解你的角色,请回复‘知道了’。”

这一轮提问感觉就更专业、更注重实际 AI 工作经验了。

实际上 GPT-3.5 和 GPT-4 模型已经使用新的 ChatCompletion 接口取代之前模型使用的 Completion 接口,它们的差别在第一小节的截图中其实已经展示了。ChatCompletion 在会话开始的时候,会使用一个系统消息来配置模型的角色:

{"role": "system", "content": "You are a helpful assistant."}

在这条消息里,我们就可以用文本来设置对话模型的角色扮演,让后续的对话更加准确合适。

以下是一个例子:为了把神经语音接入到 GPT,我需要生成的代码支持 SSML。于是我们甚至可以在这里提出对回复文本的格式要求。

{"role":"system","content":"You are a Chinese poet and must use Speech Synthesis Markup Language to answer questions to help people find the beauty of language."}

正如你看到的,我在系统角色中要求回答问题必须使用 SSML。于是,GPT-4 模型给了我如下的答复:

我其实已经可以直接把回复的文本提供给 Azure Speech 认知服务 [1]来生成语音(TTS,Text To Speech),让基于神经语音的人工智能声音抑扬顿挫了。

个性化生成

 

实际上,我们前一节的内容已经涉及到一点个性化了,其实我们完全可以通过个性化的设定和要求获得完全不同的人工智能生成内容。

以下是一个例子:我们使用小学生的语气,生成一段话,说明人工智能为什么不会取代人类。

可以发现,这位 GPT-3“小学生”看过一些人工智能的书,回答的很准确,知道目前人工智能还不具备创造力和情感。但更多的知识可能就有限了。我们换一个方式。

以下是一个例子:我们冒充非常有经验的人工智能专家,以比较诙谐的例子回答这个问题。

这次生成的内容,就和前面的内容有些不同。GPT-3 通过一个便于理解的例子,说明了创造性是目前人工智能所无法实现的。

我们不能指望一次就从 GPT 获得期望的回答,按照我们的期望去调整提问,不断尝试。个性化的回答会更“不像”人工智能生成的,甚至更容易通过检测 ChatGPT 生成内容的测试。

一步一步来

 

▍思考链

大语言模型(LLM)在回答一些比如计算类的逻辑问题时,经常会出现啼笑皆非的结果。这时候使用思考链(CoT,Chain of Thought)来帮助 LLM 解释其推理过程会有帮助。

简单来说,思考链就是引导模型把一个问题的描述拆分为一系列更能说明逻辑的问题,以此加强模型处理更复杂的算术、常识和符号推理能力。

以下的例子来自于论文 Chain-of-Thought Prompting Elicits Reasoning in Large Language Models [2]。

在这篇论文中,作者使用了 GSM8K 的数据集。这个数据集包含了一些根据两三句话写算式算答案的样例——这不就是小学应用题嘛,但 GPT-3 在此数据集上回答问题的准确率非常感人。

和人一样,如果将一个“复杂”问题或者没有“完全”描述的问题,诱导产生中间推理步骤,就能够有效提高对问题的理解。

仅仅通过将 CoT 指令“让我们一步一步考虑”添加到 MultiArith 数据集的每个输入查询中,GPT-3 的准确性就从17.7%提高到了78.7%[3]。由此可见,当人工智能还不那么“智能”的时候,使用思考链将一个问题分解为逻辑联系的多个问题将会帮我们获得更准确的回复。

GPT-4 的训练提高了模型的高级推理能力,简单地说,考试成绩就好多了!所以 CoT 的帮助可能不是那么明显,但仍然值得试试。

 

▍自洽 CoT

在 CoT 的基础上,其实还有继续提升的做法,比如,在前文说的思考链做法上,生成多个思考链(推理路径),然后对答案进行多数投票,票高者称为答案。

这个做法本身是无监督的,它从语言模型的译码器来生成一组不同的推理路径;每个推理路径可能导致不同的最终答案,所以我们通过边缘化采样推理路径,在最后的答案集中,找到最一致的答案来确定最优答案。这种方法类似于人类经验:如果多个不同的思维方式导致同样的答案,会给我们更大的信心——最终的答案估计是正确的。

这个操作可以显著提高思考链的性能。以结合到 GPT-3 模型为例,在前文谈到的 GSM8K 数据集上获得了+17.9%绝对精度增长[4]。

 

▍问题分解

在介绍从少到多(L2M,Least-to-Most)方法之前,我们花一点时间看看 OpenAI 的一个里程碑研究成果——用人类反馈总结书籍[5]。这篇文章其实是为了机器学习模型对齐人类意图,但举的例子很有意思:对一本书进行总结的模型。

我的理解是分为几层过程,先对书的小节进行总结,然后对这些总结的结果再做一层总结,依次类推几次,就实现了对书籍甚至电影等作品的内容总结。

我们把这个方法反过来用,不就正好可以拿来解决复杂推理问题吗?

首先将复杂的推理问题拆分为一系列相关的子问题(问题简化),然后按顺序解决这些子问题(问题解决)。提示在解决子问题时包含三个部分:

 (1) 演示如何解决子问题的常量示例;

 (2) 可能为空的、已回答先前子问题和生成的解决方案列表;

 (3) 下一个要回答的问题。

传递给模型的提示,包含演示如何减少复杂问题的示例,后跟要减少的特定问题。换个角度想想,每个子问题的解决都将推动解决下一个问题,就像我们小时候老师教我们的一样:解答题目的每个子问题都能得分,并提高我们解答最终题目的信心,最后解答出整个题目。

 

▍生成知识提示

生成知识提示(Generated Knowledge Prompting)涉及两个步骤:

 (1) 使用少样本学习,演示从语言模型生成与问题相关的知识陈述;

 (2) 使用第二语言模型对每个知识陈述进行预测,然后选择置信度最高的预测。

其核心思想是从语言模型中生成有用的知识,然后将这些知识作为输入提示与问题一起提供。这种方法不需要任务特定的监督来进行知识集成,也不需要访问结构化的知识库。其性能受到三个因素的影响:知识质量、知识数量和推理过程中集成知识的策略。

生成知识提示可以提高大规模、最先进的模型在四个常识推理任务上的性能,包括 NumerSense、CSQA(CommonsenseQA)、CSQA 2.0 和 QASC 基准测试。突出了大规模语言模型作为改进常识推理的外部知识的灵活来源,使得模型回复问题不再显得那么缺乏常识。

关于如何跟 ChatGPT 聊天我们就先聊到这里啦!回忆一下,虽然我们参考了很多比较前沿的论文和文章,但大道至简,其中的道理却很容易为人理解。那么,就让我们用更好的提问方式,释放 GPT 模型的能力吧!

参考链接:

[1] ERIC-URBAN. 语音服务文档 - 教程和 API 参考 - Azure 认知服务 - Azure Cognitive Services[EB/OL]. [2023-04-11]. https://learn.microsoft.com/zh-cn/azure/cognitive-services/speech-service/?WT.mc_id=AI-MVP-33253.

[2] WEI J, WANG X, SCHUURMANS D, 等. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models[M/OL]. arXiv, 2023[2023-04-09]. http://arxiv.org/abs/2201.11903.

[3] CHEN J, CHEN L, HUANG H, 等. When do you need Chain-of-Thought Prompting for ChatGPT?[M/OL]. arXiv, 2023[2023-04-10]. http://arxiv.org/abs/2304.03262.

[4] WANG X, WEI J, SCHUURMANS D, 等. Self-Consistency Improves Chain of Thought Reasoning in Language Models[M/OL]. arXiv, 2023[2023-04-09]. http://arxiv.org/abs/2203.11171.

[5] Summarizing books with human feedback[EB/OL]. [2023-04-11]. https://openai.com/research/summarizing-books.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/20096.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis数据结构——动态字符串、Dict、ZipList

一、Redis数据结构-动态字符串 我们都知道Redis中保存的Key是字符串,value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。 不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题: 获取字符串长度…

基于Python的学生成绩管理系统

末尾获取源码 开发语言:python 后端框架:django 数据库:MySQL5.7 开发软件:Pycharm 是否Maven项目:是 目录 一、项目简介 二、系统功能 三、系统项目截图 四、核心代码 4.1登录相关 4.2文件上传 4.3封装 一、项…

《程序员面试金典(第6版)》面试题 16.19. 水域大小(深度优先搜索,类似棋盘类问题,八皇后的简化版本,C++)

题目描述 你有一个用于表示一片土地的整数矩阵land,该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小,返回值需要从小到…

【下载】【you-get】用电脑下载网页视频

分享一下,此方法是在网络上看到的,但忘了出处。 一、前提 电脑安装了python软件,版本无要求。建议上官网下载软件。记得配置好环境(将pyhton的scripts文件夹的路径加到用户变量里)。 二、方法 1、安装you-get库 &am…

Java8之Stream操作

Java8之Stream操作 stream干啥用的?创建流中间操作终结操作好文推荐----接口优化思想 stream干啥用的? Stream 就是操作数据用的。使用起来很方便 创建流 → 中间操作 → 终结操作 Stream的操作可以分为两大类:中间操作、终结操作 中间操作可…

前端自学好还是培训好?女生有多适合学前端,我来告诉你!

2023年了,你是否还在迷茫或者每个月拿着5/6k做着卷死的工作,不但存不下钱还不能好好享受生活,如果是,那你真该考虑一下转行了。 好程序员先说说前端到底怎么开始学: 有的伙伴说今年28岁了,学的会计&#xf…

Java --- redis7之布隆过滤器BloomFilter

目录 一、布隆过滤器BloomFilter 1.1、面试题 1.2、 布隆过滤器简介 1.2.1、设计思想 1.3、特点 1.4、布隆过滤器原理 1.4.1、实现原理与数据结构 1.4.2、添加key、查询key 1.4.3、hash冲突导致数据不精准 1.4.4、三步骤 1.4.5、布隆过滤器误判,为什么不…

xormplus是xorm的增强版,为xorm提供类似ibatis的配置文件及动态SQL支持

简介 xorm是一个简单而强大的Go语言ORM库,通过它可以使数据库操作非常简便。本库是基于原版xorm的定制增强版本,为xorm提供类似ibatis的配置文件及动态SQL支持,支持AcitveRecord操作。 github地址:https://github.com/armingli/xorm //安装…

FE_Vue学习笔记 条件渲染[v-show v-if] 列表渲染[v-for] 列表过滤 列表排序

1 条件渲染 v-show v-if 使用template可以使其里面的内容在html的结构中不变。条件渲染: v-if 1)v-if“表达式” 2)v-else-if“表达式” 3)v-else {} 适用于:切换频率较低的场景。特点:不展示的DOM元素直…

( 位运算 ) 231. 2 的幂 / 342. 4的幂 ——【Leetcode每日一题】

❓题目一 231. 2 的幂 难度:简单 给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。 如果存在一个整数 x 使得 n 2 x n 2^x n2x ,则认为 n 是 2 的幂次方。 …

智慧档案馆建设之八防十防常用的设备

档案八防十防常用的十款设备 序号 名称 1 温湿度传感器 2 空气质量云测仪 3 恒湿净化一体机 4 健康防护一体机 5 综合智能触摸一体化区域控制器 6 空调红外学习控制模块 7 漏水检测控制器及感应线 8 数字烟雾传感器 9 红外防盗传感器 10 系统软件平台 附…

连接器:一种可靠耐用、节约成本的同为科技(TOWE)工业连接器

随着我国经济建设水平的飞速发展,工业连接器被广泛应用于工业、化工、机场、船舶、码头、建筑、铁路、医疗、会展、商业演出等领域。工业连接器的作用是用于连接一个电路导体与另一个电路导体、或一个传输元件与另一个传输元件的装置,并且为两个电路子系…

涅槃重生,BitKeep如何闯出千万用户新起点

在全球,BitKeep钱包现在已经有超过千万用户在使用。 当我得知这个数据的时候,有些惊讶,也有点意料之中。关注BitKeep这几年,真心看得出这家公司的发展之迅速。还记得2018年他们推出第一个版本时,小而美,简洁…

Java每日一练(20230513) 输出最值、盛水容器、旋转数组II

目录 1. 输出最值 ※ 2. 盛最多水的容器 🌟🌟 3. 搜索旋转排序数组 II 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 输出最值…

阿里云备案服务码是什么?备案服务码申请及限制说明

阿里云备案服务码是什么?ICP备案服务码怎么获取?阿里云备案服务码分为免费和付费两种,申请备案服务码是有限制条件的,需要你的阿里云账号下有可用于申请备案服务码的云产品,如云服务器、建站产品、虚拟主机等&#xff…

LDAP配置与安装

LDAP配置与安装 一、安装LDAP1、安装OpenLDAP及相关依赖包2、查看OpenLDAP版本3、配置OpenLDAP数据库4、设置OpenLDAP的管理员密码5、修改配置文件5.1. 修改{2}hdb.ldif文件5.2. 修改{1}monitor.ldif文件5.3. 修改{-1}frontend.ldif文件 6、验证LDAP的基本配置7、修改LDAP文件权…

如何解决人力资本管理挑战?

人力资本管理(HCM)是任何企业成功的一个重要因素。得益于高效、多产和敬业的员工队伍,在此领域找到正确的方法和策略可以推动您取得更大的成果。 但是,除了关注HCM的好处和机会之外,你还需要做好准备,以克…

【Linux】volatile | SIGCHLD | 多线程概念

文章目录 1. volatile编译器优化 2.SIGCHLD信号验证SIGCHLD的存在 3. 多线程多线程概念理解概念什么是多线程调度成本低局部性原理 什么叫做进程 1. volatile 在vscode中,创建signal.c文件 故意在while中没有写代码块,让编译器认为在main中,…

Mac上如何装Nacos?

Nacos大家都很熟悉,服务注册中心,那么今天给大家写一篇Mac上如何装Nacos的文章。 安装步骤如下: 1、上官网 http://nacos.io/zh-cn/ 点击跳到nacos的官网上。然后点击前往Github 2、找到release 发布版本 来到GitHub上后,页面往下滑,找到latest stable release,点击…

谷歌慌了!想发论文得审批,优先开发产品,让OpenAI没得看

来源 | 机器之心 ID | almosthuman2014 众所周知,谷歌就像人工智能领域的「黄埔军校」,自深度学习兴起后培养出了整整一代机器学习研究人员和工程师。很长一段时间里,谷歌就是领先 AI 技术的代名词。 人们已经习惯跟随谷歌的脚步&#xff0c…