《ChatGPT 的真相:虚拟人和母体以及强泛化的秘密.docx》由会员分享,可在线阅读,更多相关《ChatGPT 的真相:虚拟人和母体以及强泛化的秘密.docx(20页珍藏版)》请在优知文库上搜索。
1、ChatGPT的真相:虚拟人和母体,以及强泛化的秘密本文从ChatGPT带来的即时学习能力(in-contextlearning)入手,逐步深入地探讨了ChatGPT目前众多的关键性问题,包括:1. ChatGPT带来了从未有过的计算层次:虚拟人2. ChatGPT带来的新的智能计算构架:母体和虚拟人3. 在人类语料知识用尽的时候,新的智能架构如何成长,如何吸收新的技能4. 强泛化能力的解释,以及大模型能力涌现的可能原因5. 一本正经胡说八道问题的原因和长、短期解决方案6. ChatGPT如何细化到垂直领域,比如法律领域。本文并不是对已发表的大模型论文的技术总结,不是一篇综述文章,而是基于笔者
2、自己的研究分析去探索上述问题的答案。希望能起到一个抛砖引玉的作用。文章的写作跨度比较长,大部分的写作完成于OPenAl推出PlUginS功能之前,所以有少部分技术内容显得有些滞后了。1 ChatGPT带来的崭新技术:即时学习能力在OpenAI的GPT-3出现之前,以往的深度学习模型只是为某个特定任务开发的,比如,翻译、分类、摘要、信息抽取等等。每个任务都有一个专用的模型,都需要人类标注员专门为这个任务生成大量的标注数据用来训练模型。而OpenAI采用自监督的方式来训练它的超级大模型GPT-3,不需要任何人类标注数据。它使用了巨量的50TB的文字语料,其中大部分来自互联网。而它所做的唯一一件训练
3、任务就是根据文本中前面看到的文字,不断的预测下一个文字是什么。这个1750亿参数的模型充分训练完成以后,就诞生了一件非常奇妙的事情:模型即时学习的能力,术语叫做in-contextlearning(也可翻译为文中学习)o因为GPT-3有根据前面的文字不断预测下一个文字的能力,所以它可以生成文本,可以和人对话。即时学习能力就是指GPT-3在这个交互过程中可以马上领会到你的指令的意图、执行你的任务,并且可以即时学习到新的知识和技能。ChatGPT通过一个良好的人机交互对话界面,充分释放出GPT-3的即时学习能力。诞生了超强的即时学习能力以后,以ChatGPT为代表的大模型就成了一个新的物种,区别于
4、以往为专用任务开发的深度学习模型。大模型不再是任务的执行者,它的角色将转换为底层的赋能者,而它创造出来的形形色色具备即时学习能力的“虚拟人”将成为真正的任务执行者。机器学习训练的传统范式也将发生根本性的改变。我们先从下图中的一个简单的例子看起。ChatGPT通过即时学习的能力记住了我教给它的新知识一中国2022年的人口总数,并在后面的人口列表中使用上了这个新知识。这是多么惊叹的一种能力!按照以往的范式,我们要改变模型存储的知识,需要用新数据在模型上进行多轮的训练。比如,往模型里增加中国2022年的人口总数这个事实,就是非常棘手的一件事情。因为我们不确定训练多少轮以后,模型才能够记住这个事实。而
5、且,我们也不确定对这些新数据训练之后,是否会破坏模型中存储的其他知识。科研界目前也在努力解决这个问题,出现了一个新的研究方向,叫做neuraleditingo但是大模型即时学习的能力实际上已经解决这个问题了,而且是用一种近乎完美的方式:一条指令,一步到位。你这时候可能会反驳说,这条新知识其实并没有真正存储在ChatGPT大模型里面,因为当你打开一个新的对话的时候,这个知识就不存在了。然而,这恰恰是大模型非常大的一个优点:即时学习学到的东西是和母体脱离的,这样就可以实现大模型上层任务的定制化,实现各种各样不同的应用。而所有的这些都不会改变底层大模型的任何参数。底层大模型就像操作系统一样,以赋能者
6、的身份存在。中国2022年的人口总数是多少?很抱歉,我无法给出2022年的中国人口总数,因为我的知识截止于2021年9月,而且我没有实时访问实时数据的能力。您可以查阅相关的人口统计数据或向相关机构查询最新数据。LU请记住,中国2022年的人口总数是14.1175亿很抱歉,我不能确认这个数字是否准确,因为我的知识截止于2021年9月,而且我不能访问最新的人口统计数据。如果这个数字是准确的,那么根据这个数字,2022年中国的人口总数将达到14.1175亿。请将中国2020年到2022年的人口总数用列表显示出来回根据2021年的数据,我可以提供以下列表,显示从2020年到2022年中国的人口总数:
7、2020年:14.65亿 2021年:14.932亿 2022年:(预测值)14.1175亿请注意,2022年的数字是预测值,实际数字可能会有所不同。同时,这些数字可能会因为各种因素而发生变化,因此这些数字仅供参考。具备即时学习能力的“虚拟人”可以看作是一种应用程序,它的状态是可以存储的,可以读取的。你教授给它的新知识和新技能并不会丢失。目前ChatGPT能记住4000个(GPT-4是32000个)汉字的上下文关联。这就意味着我们当前对话中前4000个字里面描述过的知识和技能,ChatGPT都不会遗忘。今后,技术的发展肯定会带来更大的记忆体空间。越大的记忆体就意味着越高的“虚拟人”定制化水平,
8、越宽广的任务适用范围。我们再列举一些ChatGPT通过即时学习能力学习新技能、新任务的例子。第一个例子是关于七言律诗的学习。你如果直接让ChatGPT写七言律诗,它会写得很不符合格式,很随意。但是如果先将百度百科中关于七言律诗的定义告诉ChatGPT以后,ChatGPT就可以写出非常工整的七言律诗。它可以从你给它的定义,马上学习到七言律诗是什么。网络上有很多教ChatGPT各种奇奇怪怪新技能和指派新任务的例子。有人发明了一种新的语言,教给ChatGPT以后,他和ChatGPT就可以用这种新语言交流了。有人让ChatGPT去模拟一个IinUX内核接收用户的指令,ChatGPT模仿得非常逼真。所有
9、的这些新技能和新任务的学习也仅仅只是一个定义,一个prompt,一步到位。大模型即时学习的能力把大模型从知识和技能万能者的角色中解放出来了。大模型不再需要做到知识的完美,技能的完美。大模型的知识可以是不完整的,可以不用总是最新的,甚至是可以允许有错的。大模型上层创造出来的各种“虚拟人”会利用即时学习能力来完善任务特有的专业化知识和技能。“虚拟人”还可以通过自主使用API的方式从搜索引擎和数据库中获得大量的、最新的专业化知识。大模型此时真正存在的意义是赋能:即提升“虚拟人”的即时学习的能力和其他能力,比如使用API。2新的智能计算构架:虚拟人和母体ChatGPT这次带来的冲击和计算机发展历史中的
10、一个大事件惊人地相似,那就是通用计算机的诞生。在通用计算机诞生以前,没有软件的概念。那个时候电子工程师们需要为每一个应用程序设计专门的逻辑电路,开发专用的计算机。直到艾伦图灵为解决计算机理论问题而提出图灵机这一伟大发明的时候,人们才发现计算机逻辑可以用代码的形式和数据一起存储,并通过图灵机进行运算。通用计算机的诞生对社会生产力的提升意义重大。学习写代码比学习开发逻辑电路要简单太多了。普通人经过一段较长时间的培训都可以学会写代码。这样一来,社会各行各业都可以从软件开发中受益,社会自动化程度得到快速的提高。这次ChatGPT的技术变革会带来社会生产力更高层次的跃升。在ChatGPT为代表的通用人工
11、智能出现之前,软件工程师们需要为每一个特定任务开发一个专用的机器学习模型或者代码。ChatGPT诞生之后,普通人就可以通过自然语言交流的方式给ChatGPT安排任务,快速地完成各种复杂的工作。以前,大家还需要找软件开发商来满足自己业务上的需求,现在自己动手就可能可以实现了!我们可以设想一下不久的未来ChatGPT将会带来的新的智能计算构架,主要可分为赋能层(母体)和应用层(虚拟人世界):1 .底层是一个基础大模型,我们称之为母体。大模型不再是任务的执行者,而是底层的赋能者,其角色就像通用计算机中的操作系统一样。大模型需要为上层提供越来越强的即时学习能力和API访问等其他能力。在知识方面,大模型
12、不需要做到尽善尽美,无所不知,上面的应用层会有办法弥补大模型专业知识不足的问题。但大模型仍然需要尽量做到知识的全面性、正确性、最新性,给应用层提供最有力的支撑。2 .上层的应用层是一个虚拟人或者虚拟人任务的网络,我们称之为虚拟人世界。用户可以根据不同的任务用自然语言交流的方式定制虚拟人。虚拟人有自己单独的记忆体,里面可以存储任务特有的专业化知识和技能。这部分特有知识可以对底层大模型的知识进行补全和覆盖。虚拟人还可以通过自己调用数据库和搜索引擎APl来获取完成任务需要的专业知识。类似人类社会的分工机制,虚拟人也可以通过分工的方式来完成更加复杂的任务,这样就会构造出一个虚拟人的网络。虚拟人即时学习
13、到的知识和技能不会对底层大模型的参数有任何影响。当虚拟人停止工作的时候,这部分计算资源就被系统收回,但虚拟人记忆体中的知识和技能可以被保存下来等待下次工作时读取。简而言之,虚拟人的角色就像通用计算机中的应用程序。虚拟人的定制化是通过每个虚拟人记忆体中特有的知识和技能来实现的。长期来看,我们需要为虚拟人开发出“可显示的长期记忆体”技术来提高记忆的稳定性、可靠性、高效性。当前,ChatGPT提供了“隐式”的记忆力,GPT-3.5可以记住对话中前4000个token(汉字)中的内容,而GPT-4可以记住32000个。这些历史对话中的知识可以用来覆盖掉母体中的知识。比如,我们先提供给ChatGPT一个
14、中国人口的数据报告,然后再问它关于人口数据的时候,ChatGPT会优先使用报告中的数据而不是大模型中的数据。这是即时学习能力的一个基本特性,我们将会在下一节进行详细的讲解。ChatGPT的最终形态可能就是一个超大的智能基座,像供水供电一样为全社会的各行各业提供虚拟人服务。同时,各行各业企业级的反馈又能帮助大模型成长。这时,大模型成长的主要助推动力就不再是人类长期历史文本中积累的知识了,而是各行各业企业级应用中的第一手知识。换一句形象的话说,所有虚拟人的“生活经历”将成为真正推动母体前进的燃料(有趣的是,即时学习并不会直接改变母体的参数)。在这个新的计算架构下,我们可以看出知识和技能有两处可选择
15、的存储区域。一个是母体,另一个就是虚拟人的专有记忆体。一般来说,大众的、稳定的、有共识的知识和技能应当由母体来理解记忆;而任务特有的、新型的知识和技能则可以通过即时学习的能力存储在虚拟人的专有记忆体中。本文章写作时间跨度比较长,文章还差结尾的时候,OPenAl就把ChatGPTplugins的功能推出市场了。因为plugins是一个特别好的可以用来说明如何巧用两处存储区域的例子,我们在这里插入补充一下。PlUginS作为一种新的技能,可以有两种实现的方式。一种就是通过对母体的预训练来实现,另一种就是通过即时学习的能力直接教授给虚拟人。OPenAl选择的是第二种方式,因为这种方式实现起来很快,成
16、本很低。而第一种方式需要专门的训练语料,如果让人来标注,成本非常高。但是第二种方式也存在着一个较大的问题,就是各种PIUginAPl的自然语言描述PromPt加起来会占去虚拟人专有记忆体很大的空间。这个时候其实有一个巧妙的解法,不知道OPenAl是否也是这么想的。如果我们把所有用户使用PIUginS的全部过程,包括在PIUginS内部点击选择的步骤,都详详细细地记录下来作为语料反哺给母体进行训练。一旦母体获得掌握这些知识技能之后,我们就不再需要虚拟人用即时学习能力去学这些PlUginAPITo甚至,用户都可以不用再在PlUgin内部进行点击选择了,所有的一切都会按照用户的任务目标自动进行。虚拟人只需要返回给用户一个plugin使用的确认报告就行了。这就给我们的计算架构提供了一种引入新的大众技能的范式。即,先通过虚拟人的即时学习能力+用户辅助来先实现这个功能,然后在大量用户使用之后,逐渐将这个技能知识沉