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

news2024/10/7 13:26:18

接《你真的会跟 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.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频怎么压缩到20M以内

视频怎么压缩到20M以内?我们知道在很多聊天软件中是限制传输的内容大小的,比如说视频大小会限制20M以内。还有就是我们在发一些邮件时,我们在上传附件的时候也是限制视频大小在20M以内。所以说我们有需要把视频压缩到20M以内的情况。那么针对…

记录一次Windows7操作系统渗透测试

#本文档仅用于实验,请勿用来使用恶意攻击! 《中华人民共和国网络安全法》中,恶意破坏计算机信息系统罪在第二十七条被明确规定,规定内容为: 第二十七条 任何单位和个人不得为达到破坏计算机信息系统安全的目的&#x…

Linux发行版新秀:基于Ubuntu、系统核心 “不可变”

Vanilla OS 是近期才公开发布的 Linux 发行版,基于 Ubuntu 构建,免费且开源,默认桌面环境是 GNOME。虽然 Vanilla OS 的底层是 Ubuntu,但它并不是简单地基于 Ubuntu 进行 "remix",而且外观看起来也不像 Ubun…

FreeRTOS:列表和列表项

要想看懂 FreeRTOS 源码并学习其原理,有一个东西绝对跑不了,那就是 FreeRTOS 的列表和列表项。列表和列表项是FreeRTOS的一个数据结构, FreeRTOS 大量使用到了列表和列表项,它是 FreeRTOS 的基石。要想深入学习并理解 FreeRTOS&am…

【LeetCode】环形链表II+结论证明

题目链接:环形链表II 题目:给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表…

Grafana系列-统一展示-7-ElasticSearch数据源

系列文章 Grafana 系列文章 ElasticSearch 数据源 Grafana内置了对Elasticsearch的支持。你可以进行多种类型的查询,以可视化存储在Elasticsearch中的日志或指标,并使用存储在Elasticsearch中的日志事件对图表进行注释。 配置 ES 数据源 关键的几项…

在两道多线程基础题“顺序打印”中对比一下Java中的wait()和join()

目录 一、基础 二、进阶 一、基础 有三个线程,线程名称分别为:a,b,c,每个线程打印自己的名称。 需要让他们同时启动,并按 c,b,a的顺序打印。 这道题要求打印 cba,且只打…

开发中proc文件系统的简单使用

使用proc文件系统 文章目录 使用proc文件系统1.meminfo文件2. free命令3、创建 /proc 节点4、使用 file_operations 实现 proc 文件读写 导向内核信息5、使用 seq_file 实现 proc 文件的读取 在Linux系统中, “/proc”文件系统十分有用, 它被内核用于向用…

可视化图表API格式要求有哪些?Sugar BI详细代码示例(4)

Sugar BI中的每个图表可以对应一个数据 API,用户浏览报表时,选定一定的过滤条件,点击「查询」按钮将会通过 API 拉取相应的数据;前面说过,为了确保用户数据的安全性,Sugar BI上的所有数据请求都在Sugar BI的…

进击数据基础设施新蓝海,厂商如何“择木而栖”?

文 | 螳螂观察 作者 | 李永华 多样的应用需求,倒逼底层存储能力不断升级; 复杂的数据状况,要求存储能够“兼容并蓄”; 客户企业在数字化方面的战略转型升级,总是触及到存储…… 当数据基础设施成为新的蓝海&#…

大学计算机基础-题库刷题-精选

题库刷题: 写在前面: 这个是我准备应对学校转专业考试而刷的题库, 也是大学计算机的题库,同样适用于大学计算机这门课的期末考试。 精选了一些重要的题目。 目录 题库刷题: 写在前面: 题目1&#x…

内卷时代,大厂产品经理仅用3步破局

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"! 作者:申悦|慕课网讲师 在当下互联网环境下,产品经理究竟要如何破局? 我认为,既然要破局…

RocketMQ学习笔记:生产者Producer

DefaultMQProducer 根据上文:RocketMQ学习笔记:消息Message - 掘金 (juejin.cn),我们定位到Producer中的这一行代码: java 复制代码 DefaultMQProducer producer new DefaultMQProducer("ProducerGroupName"); pro…

2023年3月GESP能力等级认证C++一级真题

一、单选题(每题2分,共30分) 1.以下不属于计算机输入设备的有(B )。(2分) A.键盘 B.音箱 C.鼠标 D.传感器 2.计算机系统中存储的基本单位用 B 来表示,它…

Git 常用命令笔记

下载安装这里就不赘述了,直接下一步就行! 一、常用命令 1. 增加删除/文件 添加当前目录的所有文件到暂存区 git add .添加指定文件到暂存区 git add [file1] [file2] ...添加指定目录到暂存区,包括子目录 git add [dir]对于同一个文件的多…

多种方法解决There is no tracking information for the current branch的错误

文章目录 1. 复现错误2. 分析错误3. 解决错误3.1 远程有分支3.2 远程无分支 4. 总结 1. 复现错误 今天发布某版本的项目,准备创建个v0point1分支,后期如果修改该版本,直接在该分支上修改即可。 首先,使用git branch v0point1命令…

问道游戏私人服务器架设+详细搭建教程+外网教程

搭建条件: 1、服务器一台, 2、下载服务端 搭建教程: 1.先安装宝塔 2、放行安全组的相应端口 具体要放行的端口有:3306、888、8888、5000、8101、8110、8120、8160-8168(这个是范围之8160是一线,依次类推) 3、安装数据库…

别点了!CAS登录对接,这个Bug让你反复登录!

目录 引言 背景描述 问题描述 问题排查 软件测试工程师发展规划路线 引言 你是否曾经在登录一个网站时,不断输入账号密码,却发现自己总是无法成功登录?或者你是否曾经遇到过跨域问题导致的登录失败? 今天我要和大家分享的就…

Speech and Language Processing之神经网络

上面这句话很好的解释了一件事,就是“大力出奇迹” ,当神经元的数目足够足够多的时候,机器所能做到的事情就很复杂、很难理解了,这是不是说明chatgpt的成功也是因为大? 现代神经网络是一个由小型计算单元组成的网络&am…

前端 Web 性能清单

💂 个人网站:【海拥】【摸鱼游戏】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 提高 Web 应用程序的性…