张家俊:ChatGPT八个技术问题的猜想

 Datawhale干货 

作者:张家俊,中国科学院自动化研究所

转载自 | 机器学习与自然语言处理

看到ChatGPT的华丽诞生,心情很复杂,既高兴、惊喜,也感到恐慌,高兴和惊喜的是没有预料到这么快就见证了自然语言处理(NLP)技术的重大突破,体验到通用技术的无限魅力。恐慌的是ChatGPT几乎可以高质量地完成NLP中的大多数任务,逐渐认识到很多NLP的研究方向遇到了极大挑战。

总体而言,ChatGPT最令人非常惊艳的是它的通用性,相比于GPT-3需要通过设计非常精巧的提示来实现效果并不太好的各种NLP能力,ChatGPT已经让用户感受不到提示的存在。作为一个对话系统,ChatGPT让用户自然提问便可实现从理解到生成的各种任务,而且性能在开放领域几乎都达到了当前最佳水平,很多任务超越了针对特定任务单独设计的模型,并且在代码编程领域表现卓越。具体而言,自然语言理解能力(尤其是用户意图理解能力)十分突出,无论是问答、聊天、分类、摘要、翻译等任务,尽管回复不一定完全正确,但是几乎都能够领会用户意图,理解能力远超预期。相比于理解能力,ChatGPT的生成能力更加强大,可以针对各种问题生成具有一定逻辑且多样化的长文本。总的来说,ChatGPT表现出的更多是惊艳,是通向AGI的初步阶段,一些技术瓶颈解决后会更加强大。

对于ChatGPT表现案例的总结已经非常多了,这里主要总结一下自己对ChatGPT技术问题的一些思考,算是与ChatGPT断断续续交互两个多月的一个简单总结。由于无法了解ChatGPT的具体实现技术和细节,所以几乎都是主观猜想,肯定有很多不对的地方,欢迎一起探讨。

1. ChatGPT的通用性为何做得如此之好?

只要使用过ChatGPT,我们就会发现它不是一个传统意义上的人机对话系统,实际是一个以自然语言为交互方式的通用语言处理平台。2020年的GPT-3虽然拥有了通用能力的雏形,但是需要精心设计提示语来触发相应功能,而ChatGPT允许用户采用非常自然的提问就可以准确识别意图完成各种功能。传统方法往往先进行用户意图识别,再针对不同意图调用相应功能的处理模块,例如通过用户数据识别出摘要或翻译意图,再调用文本摘要或机器翻译模型。传统方法在开放域的意图识别准确率不够理想,而且不同功能模块各自为战无法共享信息,难以形成强大的NLP通用平台。ChatGPT突破了各自为战的模式,不再区分不同功能,统一认为是对话过程中的一种特定需求。那么,ChatGPT的通用性为何做得如此之好呢?一直在思考这个问题,由于没有条件实验证实,所以仅能猜想。根据Google的Instruction Tuning研究工作FLAN,当模型达到一定规模(e.g. 68B)且Instruction任务的类型达到一定数目(e.g. 40),模型就涌现出对新意图的识别能力。OpenAI从其开放的API中收集了全球用户各种任务类型的对话数据,根据意图分类和标注,然后在175B参数GPT-3.5上进行Instruction Tuning,自然就涌现出了通用的意图识别能力。

2. 为什么面向对话的微调没有遭遇灾难性遗忘问题?

灾难性遗忘问题一直是深度学习中的一个挑战,经常因为在某个任务上训练后就丧失了在其他任务上的性能。例如,一个30亿参数的基础模型,先在自动问答数据上进行微调,然后在多轮对话数据上进行微调,结果会发现模型的问答能力大幅度下降。ChatGPT似乎不存在这个问题,其在基础模型GPT-3.5上进行了两次微调,第一次依据人工标注的对话数据进行微调,第二次根据人类反馈的强化学习进行微调,微调使用的数据很少,尤其是人类反馈的打分排序数据更少,微调后竟然仍然表现出强大的通用能力,而并没有完全过拟合到对话任务。这是个非常有趣的现象,也是我们没有条件验证的现象。猜测可能有两方面的原因,一方面是ChatGPT使用的对话微调数据实际可能包含了非常全面的NLP各种任务,正如InstructGPT中对用户使用API的问题分类可以发现,很多都不是简单的对话,还有分类、问答、摘要、翻译、代码生成等等,因此,ChatGPT实际是对若干任务同时进行了微调;另一方面,可能当基础模型足够大之后,在较小数据上的微调不会对模型产生很大影响,可能仅在基础模型参数空间非常小的邻域中优化,所以不会显著影响基础模型的通用能力。

3. ChatGPT的大范围上下文连续对话能力是如何做到的?

使用ChatGPT时就会发现它一个让人十分惊讶的能力,即使和ChatGPT交互了十多轮,它仍然还记得第一轮的信息,而且能够根据用户意图比较准确地识别省略、指代等细粒度语言现象。这些对我们人来说似乎不算问题,但是在NLP的研究历史中,省略、指代等问题一直是一个难以逾越的挑战。此外,在传统对话系统中,对话轮次多了之后,话题的一致性难以保障。但是,ChatGPT几乎不存在这个问题,即使轮次再多,似乎都可以保持对话主题的一致性和专注度。猜测这个能力可能有三方面的来源。首先,高质量的多轮对话数据是基础和关键,正如Google的LaMDA,OpenAI也采用人工标注的方式构造了大量高质量多轮对话数据,在此之上进行的微调将会激发模型的多轮对话能力。其次,基于人类反馈的强化学习因为提升了模型回复的拟人性,也会间接增强模型多轮对话的一致性能力。最后,模型对8192个语言单元(Token)的显式建模能力使其几乎可以记忆普通人一整天的对话数据,在一次对话交流中很难超出这个长度,因此,所有对话历史都已经被有效记忆,从而可以显著提升连续多轮对话的能力。

4. ChatGPT的交互修正能力是如何炼成的?

交互修正能力是智能的一种高级体现,对我们来人说稀松平常的事情却是机器的痛点。在交流过程中,被指出问题后我们会立刻意识到问题所在并及时准确地修正相关信息。对于机器而言,意识到问题、识别问题范围并更正对应信息的每一步都不是一件容易的事情。ChatGPT出现之前尚未看到过具有较强交互修正能力的通用模型。与ChatGPT交互后就会发现,无论是用户更改自己之前的说法还是指出ChatGPT的回复中存在的问题,ChatGPT都能够捕捉到修改意图,并准确识别出需要修改的部分,最后能够做出正确的修正。目前为止,没有发现任何模型相关的因素与交互修正能力直接相关,也不相信ChatGPT具有实时学习的能力,一方面是重启对话后ChatGPT可能还会犯相同错误,另一方面是基础大模型的优化学习从来都是从高频数据中总结频繁模式,一次对话无论如何也难以更新基础模型。相信更多的是基础语言大模型的一种历史信息处理技巧,不太确定的因素可能包括:(1)OpenAI人工构建的对话数据中包含一些交互修正的案例,微调后拥有了这样的能力;(2)人工反馈的强化学习使得模型输出更加符合人类偏好,从而在信息修正这类对话中表现得更加遵循人类的修正意图;(3)可能大模型达到一定规模(e.g. 60B)之后,原始训练数据中的交互修正案例就被学到了,模型交互修正的能力自然就涌现出来了。

5. ChatGPT的逻辑推理能力是如何学到的?

当我们询问ChatGPT一些逻辑推理相关的问题时,它并不是直接给出答案,而是展示出详细的逻辑推理步骤,最后给出推理结果。虽然鸡兔同笼等很多案例表明ChatGPT并没有学会推理本质,而仅仅学会了推理的表面逻辑,但是展示的推理步骤和框架基本是正确的。一个语言模型能够学习到基本的逻辑推理模式已经极大超越了预期,其推理能力溯源是非常有趣的一个问题。相关对比研究发现,当模型足够大,并且程序代码与文本数据混合训练时,程序代码的完整逻辑链就会迁移泛化到语言大模型,从而大模型就拥有了一定的推理能力。这种推理能力的习得有点神奇,但是也能理解,可能代码注释是从逻辑代码到语言大模型推理能力迁移泛化的桥梁。多语言能力应该也是类似的道理。ChatGPT的训练数据绝大部分是英文,中文数据占比极少,然而我们发现ChatGPT的中文能力虽然比不上英文,但是也非常强大。训练数据中的一些中英对照的平行数据可能就是英文能力迁移到中文能力的桥梁。

6. ChatGPT是否针对不同下游任务采用不同的解码策略?

ChatGPT有许多惊艳的表现,其中一个是它可以针对同一个问题生成多种不同的回复,显得很睿智。比如,我们不满意ChatGPT的回答,可以点击“重新生成”按钮,它立刻会生成另一种回复,若还是不满意可以继续让其重新生成。这一点在NLP领域并不神秘,对于语言模型来说是它的一个基本能力,也就是采样解码。一个文本片段的后面可能接不同的词语,语言模型会计算每个词语出现的概率,如果解码策略选择概率最大的词语输出,那么每次结果都是确定的,就无法生成多样性回复。如果按照词汇输出的概率分布进行采样,例如,“策略”的概率是0.5,“算法”的概率是0.3,然后采样解码输出“策略”的可能性就是50%,输出“算法”的可能性就是30%,从而保证了输出的多样性。因为采样过程是按照概率分布进行的,即使输出结果多样,但是每一次都是选择概率较大的结果,所以多种结果看起来都相对比较合理。对比不同类型的任务时,我们会发现ChatGPT的回复多样性针对不同下游任务差别比较大。针对“如何”、“为什么”等“How”、“Why”型任务时,重新生成的回复与之前的回复无论是表达方式还是具体内容具有较大差异,针对机器翻译、数学应用题等“What”型任务时,不同回复之间的差异非常细微,有时几乎没有变化。如果都是依据概率分布的采样解码,为何不同回复之间的差异如此之小。猜测一种理想情况可能是“What”型任务基础大模型学习到的概率分布非常尖锐(Sharp),例如学到的“策略”概率为0.8,“算法”概率为0.1,所以大多数时候采样到相同的结果,也就是前面例子中80%的可能性都会采样到“策略”;“How”、“Why”型任务基础大模型学习到的概率分布比较平滑(Smooth),例如“策略”概率为0.4,“算法”概率为0.3,所以不同时候可以采样到差异性较大的结果。如果ChatGPT能够学习到任务相关的非常理想的概率分布,那确实非常厉害,基于采样的解码策略就可以适用于所有任务。通常,关于机器翻译、数学计算、事实性问答等答案比较确定或者100%确定的任务,一般采用基于贪婪解码,也就是每次输出概率最高的词语。如果希望输出相同语义的多样性输出,大多采用基于柱搜索的解码方法,但较少采用基于采样的解码策略。从与ChatGPT的交互看,所有任务它似乎都采用了基于采样的解码方法,真是暴力美学。

7. ChatGPT能否解决事实可靠性问题?

答案缺乏可靠性是目前ChatGPT面临的最大挑战。特别是针对事实性和知识性相关的问答,ChatGPT有时候会一本正经地胡编乱造,生成虚假信息。即使让它给出来源和出处或者参考文献,ChatGPT通常也会生成一个不存在的网址或者从未发表过的文献。不过,ChatGPT通常会给用户一种比较好的感觉,也就是很多事实和知识它似乎都知道。实际上,ChatGPT就是一个语言大模型,语言大模型本质就是一种深度神经网络,深度神经网络本质就是一种统计模型,就是从高频数据中习得相关模式。很多常见的知识或事实,在训练数据中出现频率高,上下文之间的模式比较固定,预测的词语概率分布就比较尖锐,熵比较小,大模型容易记住,并在解码过程中输出正确的事实或知识。但是,有很多事件和知识即使在非常庞大的训练数据中也很少出现,大模型便无法学习到相关模式,上下文之间的模式比较松散,词语预测的概率分布比较平滑,熵比较大,大模型在推理过程中容易产生不确定性的随机输出。这是包括ChatGPT在内所有生成式模型的固有问题。如果仍然延续GPT系列架构,基础模型不做改变,从理论上讲是难以解决ChatGPT回复的事实可靠性问题。和搜索引擎的结合目前看是非常务实的一种方案,搜索引擎负责搜索可靠的事实信息来源,ChatGPT负责总结和归纳。如果希望ChatGPT解决事实回答的可靠性问题,可能需要进一步提升模型的拒识能力,也就是过滤掉模型确定无法回答的那些问题,同时还需要事实验证模块来验证ChatGPT回复的正确性。希望下一代GPT能够在这个问题上取得突破。

8. ChatGPT能否实现实时信息的学习?

ChatGPT的交互修正能力使得它看起来似乎拥有了实时的自主学习能力。正如上述讨论,ChatGPT可以依据用户提供的修改意图或者更正信息,立刻修正相关回复,表现出实时学习的能力。实则不然,学习能力体现的是学到的知识是普适的,可以运用在其他时间和其他场合,但是ChatGPT并没有展现出这个能力。ChatGPT只是在当前的对话中能够根据用户反馈进行了修正,当我们重启一个对话,测试相同的问题时,ChatGPT还会犯相同或类似的错误。一个疑问是为何ChatGPT不将修改后正确的信息存储到模型中呢?这里有两方面的问题。首先,用户反馈的信息并不一定是正确的,有时候故意引导ChatGPT做出不合理的回答,只是因为ChatGPT在基于人类反馈的强化学习中加深了对用户的依赖程度,所以ChatGPT在同一个对话过程中会非常相信用户的反馈。其次,即使用户反馈的信息是正确的,但因为可能出现频率不高,基础大模型不能根据低频数据更新参数,否则大模型就会对某些长尾数据进行过拟合从而失去通用性。所以,让ChatGPT实时进行学习非常困难,一种简单直观的方案就是每经过一段时间就利用新的数据微调ChatGPT。或者采用触发机制,当多个用户提交相同或相似反馈时触发模型的参数更新,从而增强模型的动态学习能力。

82626a62a775d8bb1ebd8ff004c45cb2.png干货学习,三连

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python代码中的中文语法错误:SyntaxError: Non-ASCII character ‘\xe5‘ in file trade.py on line 7

编写的python程序中使用了中午,执行的时候报了上述语法错误。经过排查原因如下: 我使用的解释器的版本是python2的,Python 2默认的编码格式是ASCII,如果直接使用中文就会报如下错误: SyntaxError: Non-ASCII characte…

关于使用VS Code开发stm32的一些感想

0. 引言 这几天在推【宇宙最强编辑器VS Code】专栏系列文章,不少群聊和文章的留言都是关于使用VS code 进行stm32开发和调试,看到后思绪万千,不知如何回复,决定暂停更新,结合自身的经历写篇文章来回复这个问题。 两年…

浅谈NAS使用感想

为何买NAS 上周入手了一台NAS,对于我们小小的工作室来说,也算是“巨额”IT投资了。 买NAS的理由很简单:被刚刚过去的勒索病毒吓到了,虽然咱重要资料不多,但这些年积累下来,几百G还是有的。万一中了招&…

劝你轻易别来阿那亚,我怕你来了就不想走

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦 产品统筹 / bobo 场地支持 / 声湃轩北京录音间 4.21-23,津津乐道的几位主播收到深夜谈谈播客网络的邀请,在阿那亚参加了「声量The Power of …

emo-scheme 新特性

缘起 最近发现 scheme 组件使用的一些不完美和可改进点,主要有以下几个: DeepLink 该如何支持?期望使用时可以获取结构化的数据(data class),避免从 NavBackStackEntry 去 getString、getInt 之类的。期望…

单测时尽量用fake object

1. 单元测试的难点:外部协作者(external collaborators)的存在 单元测试是软件开发的一个重要部分,它有助于在开发周期的早期发现错误,帮助开发人员增加对生产代码正常工作的信心,同时也有助于改善代码设计。**Go语言从诞生那天起…

【从零开始玩量化20】BigQuant平台策略代码本地化(与Github同步)

引言 最近发现了个不错的量化平台,BigQuant BigQuant的客服找到我,推荐他们平台给我使用,宣传的是人工智能,里面可以使用类似ChatGPT的聊天机器人,和可视化拖拉拽功能实现策略。 不过,这些都是锦上添花的…

微软“封杀”了推特,马斯克怒了:我要起诉微软!

文|鱼羊 发自 凹非寺源|量子位 OpenAI还没撕完,马斯克又跟微软杠上了,甚至直接在推特上放话: 我要告微软! 这又是发生了甚么? 原因无它:微软刚刚“封杀”了推特。公告显示&#xff0…

新 Bing 惨遭微软“脑叶切除”,引大量网友不满!

整理 | 禾木木 责编 |梦依丹 出品 | CSDN(ID:CSDNnews) 在新版 Bing 引入 ChatGPT 爆火之后,Bing 就开始了各种“作妖”秀,翻车离谱事件是一件接着一件。有不少用户表示在和 Bing 的交流过程中,发现…

成为钢铁侠!只需一块RTX3090,微软开源贾维斯(J.A.R.V.I.S.)人工智能AI助理系统

梦想照进现实,微软果然不愧是微软,开源了贾维斯(J.A.R.V.I.S.)人工智能助理系统,贾维斯(jarvis)全称为Just A Rather Very Intelligent System(只是一个相当聪明的人工智能系统),它可以帮助钢铁侠托尼斯塔克…

【JAVA】让 ChatGPT 来描述 IOC

前言 又迎来了一年一度的金三银四,虽然说今年的大环境不好,但是招聘还是在火热进行中。 面试过 Java 工程师的小伙伴都知道,Spring 中的 IOC 是面试高频题,面试官上来就问,知道什么是 IOC 吗,IOC 是如何初…

【工具】VScode|Linux 中怎么调试 Python 项目比较方便?又名 VScode 怎么调试 Python 项目(兼容环境Ubuntu18.04)

使用过 Anaconda、Jupyter、Pycharm、VScode、VS2022、pdb 这几个 IDE 去编写 python 项目或者维护 python 环境,各有各的优缺点,但 VScode yyds! 可能会被网上说得天花乱坠的 Python 配置项吓退,会被 VScode 各种插件介绍吓退&a…

日本僧人问道弘法寺当家师

时间过得真快,六名日本禅僧在弘法寺为期10天的体验生活已进行到第三天,晚上10:00,方丈印顺大和尚依然等候在丈室,与前二日不同的是,弘法寺的当家师智空法师也来到了方丈室。 六位日本僧人行礼完…

佛教基础知识

佛教基础知识 1、《佛教常识》(1)佛陀和佛教的创立(2)佛法的基本内容、书籍(3)僧团和佛的弟子(4)佛教在印度的发展、衰亡及复兴(5)佛教在中国的发展、演变 2、…

【ChatGPT与网络安全攻击】AI密码破解器可在60秒内攻破50%以上普通密码

研究表明,ChatGPT等功能强大AI工具已经被用于网络攻击者实施犯罪活动,例如开发恶意软件和生成钓鱼邮件等。如果人们的密码从数据库泄露或被破坏,那么网络攻击者采用AI密码破解器猜出密码是概率几乎是100%,其中50%以上会在60秒内被…

chatgpt赋能Python-pythonmd5解密

Python MD5解密原理及应用 MD5是一种广泛使用的哈希算法,被用于加密敏感数据。MD5算法使用不可逆的方法将任何长度的数据转换为固定长度的哈希值,并且只能通过暴力破解的方式破解加密后的敏感数据。尽管MD5算法被广泛采用,但历史上已发现其存…

chatgpt赋能python:Python怎么破解Windows软件?

Python怎么破解Windows软件? 作为一名有10年Python编程经验的工程师,我想分享一些破解Windows软件的经验。Python是一种高级编程语言,可以用于许多不同的应用程序,包括软件破解。 什么是软件破解? 软件破解是指绕过…

讯飞星火认知大模型与ChatGPT的对比分析

引言: 人工智能是当今科技领域的热门话题,自然语言处理是人工智能的重要分支。自然语言处理的目标是让计算机能够理解和生成自然语言,实现人机交互和智能服务。近年来,随着深度学习的发展,自然语言处理领域出现了许多创…

【Unity开发小技巧】UnityWebGL移动端和电脑端调起输入法,中文输入处理

目录 一.TextMesh Pro中文显示问题 1.PC端和移动端中文显示异常乱码(解决方案) 1.制作TextMesh Pro字体 方式一 2.制作TextMesh Pro字体 方式二 3.通用字体资源 2.web端中文不能输入窗口模式(解决方案) 二.移动端Inputfile调…

分享一个利用ChatGPT为世界上任何城市建立旅行路线(带链接)的工具 GPTravel Advisor

GPTravel Advisor - 在几秒钟内创建世界上任何城市的旅行路线 网址链接:https://gpt-travel-advisor.vercel.app/ GIthub:https://github.com/dabit3/gpt-travel-advisor ChatGPT中文论坛:https://gptocean.com/