作者:韩庐山,北大法宝人工智能研究院首席科学家
前言
本文以新的软件服务计算构架为名,实则深入地分析探讨了ChatGPT目前众多的关键性问题,包括:
•ChatGPT带来了从未有过的计算层次 -——虚拟人
•ChatGPT会带来的新的软件服务计算构架以及对社会的影响
•在人类语料知识用尽的时候,新的智能架构如何成长,如何吸收新的技能
•ChatGPT强泛化能力的来由,以及大模型能力涌现的原因
•ChatGPT一本正经胡说八道的原因和长、短期解决方案
•ChatGPT如何细化到垂直领域,比如法律领域。
•如何引导ChatGPT做你布置的任务,理解ChatGPT因果推理和模仿学习的原理。
本文并不是对已发表的大模型论文的技术总结,不是一篇综述文章,而是基于笔者自己的研究分析去探索这些问题的答案。希望能起到一个抛砖引玉的作用。
本文的第一节给出了一些铺垫性的背景知识,略显枯燥。熟知GPT技术的小伙伴们可以直接从第二节开始阅读。本文的写作跨度比较长,大部分的写作完成于OpenAI推出plugins功能之前,所以有少部分技术内容显得有些滞后了。
#01
ChatGPT会带来新的技术革命吗?
最近关于ChatGPT的报道可以用铺天盖地来形容。科技界、产业界、投资界对这个新生事物的热情可以说是史无前例了。各大厂纷纷争先恐后的入局,连谷歌这样的科技头号大厂也被倒逼着进行搜索引擎的改革。比尔盖茨将ChatGPT的诞生比作PC和互联网的发明,埃隆·马斯克说不亚于iPhone,而国内360的掌门人周鸿祎直言ChatGPT可能会带来一场新的工业革命。
与此同时,也不乏各种反面质疑的声音。很多人认为这只是一场泡沫,因为ChatGPT存在一些致命的问题,主要集中在:1.超大语言模型知识更新困难,迭代成本高,覆盖面有限,很难进入行业的细分领域;2.超大语言模型会编造事实,喜欢一本正经的胡说八道,让人难辨真伪。
本文就超大语言模型会不会带来技术革命,会出现怎样的新的软件服务计算构架,专业细分领域能不能进去,如何进去,为什么超大语言模型会编造事实及其解决思路等一系列关键性问题进行了比较全面的探讨。
ChatGPT到底是个什么东西,它能做什么,不能做什么?它的边界在哪里?对普通用户来说,ChatGPT感觉就像一个聪明的虚拟人类助手,能够正确理解你的意图,回答你的问题,执行你的任务,不再是人工智障了。但是它的专业知识性显得有些不足。就拿法律领域来说吧,北大法宝的人工智能研究院对ChatGPT的能力进行了比较多的测试,我们发现ChatGPT回答中引用的法条基本上都是错误引用,是捏造的。这就说明ChatGPT现在还记不住中文法条的内容。ChatGPT的英文方面的能力要远好于中文,因为ChatGPT训练中使用的中文语料的数量很少。ChatGPT英文法律法规的引用还是比较准确的,但是到了具体案例和文献引用这一层,ChatGPT还是会出现瞎编乱造,以假乱真的情况。
有些用户认为,这是因为ChatGPT的目前的商业应用还没有顾及到法律这个垂直领域,一旦资本到位,这些知识性不足的问题都是可以通过大量法律领域语料的训练得到完美解决。我们的观点是,大量法律领域语料的训练肯定是可以缓解这些专业知识性不足的问题,但是不能彻底解决。原因很简单,ChatGPT的模型一共是1750亿的参数,存放在硬盘里面也就是1TB的空间。而中国全部案例数据就接近1TB了,所以ChatGPT是不可能记住所有案例的信息的。
实际上,对超大信息的检索能力并不是人工神经网络(ChatGPT背后技术)的强项,在这一点上它的表现要逊于传统的计算机。ChatGPT强大,强大在它对自然语言的理解能力上,而这正是我们机器人和自动化产业所缺乏,所需要的。
我们人类也是记不住这些具体的司法案例的,但我们可以去北大法宝这样的搜索引擎查找。同理,ChatGPT也是可以主动使用关键词技术去搜索引擎进行检索的。ChatGPT可以自动的分析用户的问题,推断出合适的关键词,去搜索引擎搜出结果,然后对结果进行归纳总结,最后将答案返回给用户。微软的NewBing就是采用了这样新型的检索方式。ChatGPT最大的特点就是拟人性,所以ChatGPT是可以通过自主调用搜索引擎或者数据库的这种方式来弥补专业知识性不足的问题,从而进入到行业的细分领域。
ChatGPT目前还仅仅局限于通过对话的方式和人类进行交互,但是MetaAI的研究者们已经开始研究如何让大模型自己学会使用各种API。使用API的技能等于是给ChatGPT增加了一双手。一旦ChatGPT会自己上网搜索、能自己操纵电脑,能使用各种软件工具来完成布置给它的任务,那ChatGPT作为生产力工具的属性将会被极大的释放出来。这绝不是危言耸听,因为目前的ChatGPT已经展现出调用API的能力了。
现在有很多这样的例子,比如微软的NewBing。还有,台大的李宏毅最近发了一个很有意思的用ChatGPT玩文字冒险游戏的视频,里面ChatGPT不但自己生成故事,还可以自动将当前场景中的文字转换为Midjourney的API调用来生成游戏中的插图。这些生成的插图和游戏的场景很贴切。再如,微软团队最近展示了一个用ChatGPT来控制机器人完成各种任务的研究。他们发现可以用自然语言的方式将控制机器人API解释给ChatGPT,之后用户就可以通过自然语言和机器人交互,由ChatGPT将用户的自然语言自动转换为控制机器人的代码。在这个过程中,ChatGPT还展现出了将语料中学习到的世界知识和实际场景相结合的能力。
#02
ChatGPT带来的崭新技术—即时学习能力(in-context learning)
在OpenAI的GPT-3出现之前,以往的深度学习模型只是为某个特定任务开发的,比如,翻译、分类、摘要、信息抽取等等。每个任务都有一个专用的模型,都需要人类标柱员专门为这个任务生成大量的标注数据用来训练模型。而OpenAI采用自监督的方式来训练它的超级大模型GPT-3,不需要任何人类标注数据。它使用了巨量的50TB的文字语料,其中大部分来自于互联网。而它所做的唯一一件训练任务就是根据文本中前面看到的文字,不断的预测下一个文字是什么。
这个1750亿参数的模型充分训练完成以后,就诞生了一件非常奇妙的事情:模型即时学习的能力,术语叫做in-contextlearning(也可翻译为文中学习)。因为GPT-3有根据前面的文字不断预测下一个文字的能力,所以它可以生成文本,可以和人对话。即时学习能力就是指GPT-3在这个交互过程中可以马上领会到你的指令的意图、执行你的任务,并且可以即时学习到新的知识和技能。ChatGPT通过一个良好的人机交互对话界面,充分释放出GPT-3的即时学习能力。
即时学习能力可以分为两种,一种叫zero-shot,另一种叫few-shot。zero-shot就是指你只要说出你的指令,讲解好你的任务是什么,模型就可以自动执行你的任务。你的指令及讲解通常被称之为prompt。比如,你对ChatGPT说,“请讲一个程序员的笑话”。ChatGPT明白了你的意图,马上给你生成了一个笑话,这就是zero-shotlearning。ChatGPT出现之前,如果要完成“讲程序员笑话”这么一个文本动态生成任务,就需要用大量的程序员笑话的数据集来专门训练一个生成式模型。few-shotlearning就是指不光要给出任务的定义,还有给出几个具体的例子来诠释一下。
我们可以看到,即时学习的能力其实和人类学习的方式非常相似。在ChatGPT中,所有的这一切都是通过自然语言交互的方式来实现的,因此就会给大家带来一种拟人性,感觉就像我们长期所追求的通用人工智能到来了。
那么,ChatGPT的即时学习能力现在有多强呢?已经强到把整个NLP行业的从业者卷得哀声载道,甚至有一种声音说NLP技术已经消失了。在开放(open)领域,ChatGPT在NLP的传统任务上可以说几乎已经没有对手了。以往的深度学习模型一般都是针对某个数据集进行调优,堆积各种各样的trick来提高指标的分数。这样带来的问题是,一旦换了一个稍微不一样的数据集,模型性能就会明显下降。比如,在SQuAD阅读理解数据集,一些模型的得分已经超越了人类水平,但是如果你换一个不一样的数据集,这些模型的成绩就会直线下降。
我们可以拿传统的机器翻译和ChatGPT做一个对比。机器翻译几乎是NLP领域目前最好的一个可以落地的应用了,因为现实中存在着大量的并行(双语)语料可以供模型训练使用。不过这些并行语料大多都是收费的,有版权的。ChatGPT并没有用到并行语料进行训练,但它的翻译水平比起这些线上最大机器翻译服务商,谷歌、百度、腾讯、科大讯飞,可以说是不逞多让。从网络媒体上,你能发现这些公司已经感受到了来自ChatGPT的压力,表现出明显的竞争意识。网上一些翻译从业者已经反馈说,ChatGPT的体验要好过这些传统的机器翻译了,特别是在并行语料缺乏的语种上,比如中日翻译。值得一提的是,ChatGPT的翻译水平跟给它的提示词(prompt)非常有关系,而且它能根据你的要求进行灵活多样的翻译。
以上我们做了足够多的铺垫,现在我们开始切入正题。诞生了这么强的即时学习能力以后,以ChatGPT为代表的大模型就成为了一个新的物种,区别于以往为专用任务开发的深度学习模型。大模型不再是任务的执行者,它的角色将转换为底层的赋能者,而它创造出来的各种形形色色具备即时学习能力的“虚拟人”将成为真正的任务执行者。机器学习训练的传统范式也将发生根本性的改变。我们先从下图中的一个简单的例子看起。
ChatGPT通过即时学习的能力记住了我教给它的新知识—中国2022年的人口总数,并在后面的人口列表中使用上了这个新知识。这是多么惊叹的一种能力!按照以往的范式,我们要改变模型存储的知识,需要用新数据在模型上进行多轮的训练。比如,往模型里增加中国2022年的人口总数这个事实,就是非常棘手的一件事情。因为我们不确定训练多少轮以后,模型才能够记住这个事实。而且,我们也不确定对这些新数据训练之后,是否会破坏模型中存储的其它知识。科研界目前也在努力解决这个问题,出现了一个新的研究方向,叫做neuralediting。但是大模型即时学习的能力实际上已经解决这个问题了,而且是用一种近乎完美的方式:一条指令,一步到位。
你这时候可能会反驳说,这条新知识其实并没有真正存储在ChatGPT大模型里面,因为当你打开一个新的对话的时候,这个知识就不存在了。然而,这恰恰是大模型非常大的一个优点:即时学习学到的东西是和母体脱离的,这样就可以实现大模型上层任务的定制化,实现各种各样不同的应用。而所有的这些都不会改变底层大模型的任何参数。底层大模型就像操作系统一样,以赋能者的身份存在。
具备即时学习能力的“虚拟人”可以看作是一种应用程序,它的状态是可以存储的,可以读取的。你教授给它的新知识和新技能并不会丢失。目前ChatGPT能记住4000个(GPT-4是32000个)汉字的上下文关联。这就意味着我们当前对话中前4000个字里面描述过的知识和技能,ChatGPT都不会遗忘。今后,技术的发展肯定会带来更大的记忆体空间。越大的记忆体就意味着越高的“虚拟人”定制化水平,越宽广的任务适用范围。
我们再列举一些ChatGPT通过即时学习能力学习新技能、新任务的例子。第一个例子是关于七言律诗的学习。你如果直接让ChatGPT写七言律诗,它会写得很不符合格式,很随意。但是如果先将百度百科中关于七言律诗的定义告诉ChatGPT以后,ChatGPT就可以写出非常工整的七言律诗。它可以从你给它的定义,马上学习到七言律诗是什么。网络上有很多教ChatGPT各种奇奇怪怪新技能和指派新任务的例子。有人发明了一种新的语言,教给ChatGPT以后,他和ChatGPT就可以用这种新语言交流了。有人让ChatGPT去模拟一个linux内核接受用户的指令,ChatGPT模仿的非常逼真。所有的这些新技能和新任务的学习也仅仅只是一个定义,一个prompt,一步到位。
大模型即时学习的能力把大模型从知识和技能万能者的角色中解放出来了。大模型不再需要做到知识的完美,技能的完美。大模型的知识可以是不完整的,可以不用总是最新的,甚至是可以允许有错的。大模型上层创造出来的各种“虚拟人”会利用即时学习能力来完善任务特有的专业化知识和技能。“虚拟人”还可以通过自主使用API的方式从搜索引擎和数据库中获得大量的、最新的专业化知识。大模型此时真正存在的意义是赋能:即提升“虚拟人”的即时学习的能力和其它能力,比如使用API。当然,在经费开销允许的条件下,我们还是应该尽量保持大模型知识的完整性、最新性和正确性。
即时学习能力也使得我们需要重新审视机器学习长期以来的训练范式了,其中最重要的一点就是任务训练是否可以移到虚拟人这一层通过“调教”虚拟人的方式来完成。我们从下面五个图表示的一个中文信息抽取任务的示例看起。
我首先把任务的简单定义告诉ChatGPT,即抽取给定文本中所有的中国男演员及其电影作品。然后再说明我会通过对话的方式不断地完善这个任务的定义。ChatGPT明白了我的意图,马上要求我确认一下对“中国男演员”和“电影作品”的定义。我遂即告ChatGPT,中国男演员包括港澳台地区的男演员,电影作品只包括电影。这样我们就对任务的定义达成了一致。
接下来,我给了ChatGPT一段文本让它进行抽取。这是金鸡奖的获奖介绍,里面包含比较复杂的人名和影片关系。ChatGPT进行了相当成功的抽取,只犯了一处错误,就是把《奇迹·笨小孩》中的齐溪作为男演员抽取出来了。我指出了这个错误,ChatGPT承认了这个错误,并将之进行了修改。这本质上是一个debug的过程。通过这种表面上简单流畅的对话纠错方式,ChatGPT在内部强化了对“男演员”这一特征的抽取逻辑。在随后的五个抽取测试中,ChatGPT再也没有犯过将女演员抽取出来的错误。我在测试的末尾,对ChatGPT重新进行了这段金鸡奖文本的测试,ChatGPT也没有犯错。
在我后面的五个其它电影节获奖介绍的文本抽取测试中,ChatGPT只犯了一处错误,没有将《我不是药神》中的徐峥抽取出来。考虑到测试文本中人物关系的复杂性,国籍的复杂性,ChatGPT的表现可以算是非常良好。我在测试的过程中,还尝试让ChatGPT重新显示出抽取任务的定义,ChatGPT给出了准确清晰的答案。
如果我们用OpenAI提供的ChatGPTAPI将上述示例中的对话封装起来,就成为一个可实际应用的关系抽取程序。如果将来ChatGPT可以提供指定输入输出文件的功能,你会发现整个过程就不需要任何程序员的介入了。这个NLP抽取的训练任务在一个很高的概念层次完成了,是不是很神奇?当我们发现任何抽取错误的时候,我们都可以通过对话交流的方式让ChatGPT认识到错误,并加以修复。而且所有的这一切都在自然语言交流的情况下发生。
我们再来看一下传统的机器学习范式是怎样处理这个抽取问题,比如用当下流行的BERT模型。我们无法告诉BERT什么是男演员,什么是中国国籍,因为它不懂这些概念。我们只能依靠人工标注成千上万的中国男演员及其电影作品的文本样本,交给BERT模型进行训练。这种训练完全是一种模式上的识别和匹配。在数学上相当于,我们可以直接把函数的定义告诉ChatGPT,但只能用数据点插值的方式让BERT去近似这个函数。在上亿参数的高纬空间里,这种插值定义很难做到高精准,更何况数据集中难免还会存在一定量的错误标注。这也正是为什么许多信息抽取模型到了90分这样的瓶颈就很难再往上提高的原因。当你用一批新标注的数据点去修复模型中的一个错误的时候,往往会带来其它的错误。
从ChatGPT开始,大模型强大的即时学习能力会逐渐让我们把整个任务训练的生命周期都移到虚拟人这一层来完成。这势必是大模型技术的一个发展方向,因为这样做的优势太大了、太诱人了!这将使得我们训练一个任务就像训练一个人类助手一样。我们首先将任务的定义告诉虚拟人,还可以在今后的工作中通过自然语言对话的方式不断地完善改进任务的定义。我们可以让虚拟人阅读完成任务所必要的专业化知识的文章。当我们发现任务执行中的错误的时候,我们可以通过对话交流的方式来Debug。比如说,上例中如果我们发现ChatGPT只抽取了中国内地的男演员,并没有抽取港澳台地区的。我们可以告诉ChatGPT中国男演员是包含港澳台地区的。这就是最精准的、最完美的解决问题的方式。
这将给整个社会带来多大的生产力的释放啊!很多行业花了很多的人力做一些单调的重复性工作,比如,文档归类。每个行业、每个公司的文档归类的定制化需求都不太一样,而对于一些小公司来说,找一个软件开发公司开发一个这样的产品开销太大。有了ChatGPT以后,小公司里的普通员工就可以自己调教一个文档归类的虚拟人,而且可以根据公司的动态需求不断地改进分类的效果。
当然,我们也发现目前ChatGPT的即时学习能力还是存在一些缺陷的。比如,对话不能太长,否则ChatGPT会忘记最开始给它任务设定prompt。还有就是,长对话中杂乱的文本内容对任务定义本身还是会有一定的干扰。
随着任务复杂度的增高,整个虚拟人对话记录的长度也会不断增长。还有,将来如果我们真想训练出一个工作中的全能助手,那整个虚拟人对话记录的长度势必达到几十万、几百万的字数级别。这个时候,如果还是使用现在的Transformer技术对每个字符进行注意力计算,每次都动态地整合散落在整个对话记录中的专业知识以及关于任务的定义、补充、修改和纠错,那计算复杂度势必会激增到无法控制的地步。这种重复计算对计算时间也说也是一种极大的浪费。所以我们需要借鉴人脑的工作方式,给虚拟人引入一个长期的记忆体。这些重要的专业知识和技能都会转储在长期记忆体中,而且长期记忆体中存储的内容可以用文字的方式显示给用户进行检查。我们称这项技术叫做“可显示的长期记忆体”。我们将会在第五节《ChatGPT存在的重要技术问题》中进行更深入的探讨。
所以,当前如果你想用ChatGPT生成和封装NLP任务,还是需要尽量保持对话的短小精炼,尽量使得任务的定义清晰,尽量引入具有代表性的少量示例。引入过多的示例反而会造成任务性能的下降。微软的NewBing中也发现了类似的问题,过长的对话会使得ChatGPT偏离一开始对它的Prompt任务设定。
我们并不清楚Transformer如何在算法层面实现这种神奇的即时学习能力,如何通过一条指令就实现了一个算法任务,这是属于神经网络的“魔法”。但在第四节《即时学习能力和强泛化的解释》中,我们会在训练方法等概念层次上对即时学习能力的来源进行深入的探讨。
#03
ChatGPT会带来的新的软件服务计算构架的设想
ChatGPT这次带来的冲击和计算机发展历史中的一个大事件惊人的相似,那就是通用计算机的诞生。在通用计算机诞生以前,没有软件的概念。那个时候电子工程师们需要为每一个应用程序设计专门的逻辑电路,开发专用的计算机。直到艾伦·图灵为解决计算机理论问题而提出图灵机这一伟大发明的时候,人们才发现计算机逻辑可以用代码的形式和数据一起存储,并通过图灵机进行运算。艾伦·图灵并在理论上证明了图灵机这种通用形式可以解决所有专用计算机能解决的问题。
通用计算机的诞生对社会生产力的提升意义重大。学习写代码比学习开发逻辑电路要简单太多了。普通人经过一段较长时间的培训都可以学会写代码。这样一来,社会各行各业都可以从软件开发中受益,社会自动化程度得到快速的提高。
这次ChatGPT的技术变革会带来社会生产力更高层次的跃升。在ChatGPT为代表的通用人工智能出现之前,软件工程师们需要为每一个特定任务开发一个专用的机器学习模型或者代码。ChatGPT诞生之后,普通人就可以通过自然语言交流的方式给ChatGPT安排任务,快速地完成各种复杂的工作。以前,大家还需要找软件开发商来满足自己业务上的需求,现在自己动手就可能可以实现了!将来使用ChatGPT就会像现在使用Word,Excel等办公软件一样的普及。
我们可以设想一下不久的未来ChatGPT将会带来的新的软件服务计算构架,主要可分为赋能层(母体)和应用层(虚拟人世界):
1.底层是一个基础大模型,我们称之为母体。大模型不再是任务的执行者,而是底层的赋能者,其角色就像通用计算机中的操作系统一样。大模型需要为上层提供越来越强的即时学习能力和API访问等其它能力。在知识方面,大模型不需要做到尽善尽美,无所不知,上面的应用层会有办法弥补大模型专业知识不足的问题。但大模型仍然需要尽量做到知识的全面性、正确性、最新性,给应用层提供最有力的支撑。
2.上层的应用层是一个虚拟人或者虚拟人任务的网络,我们称之为虚拟人世界。用户可以根据不同的任务用自然语言交流的方式定制虚拟人。虚拟人有自己单独的记忆体,里面可以存储任务特有的专业化知识和技能。这部分特有知识可以对底层大模型的知识进行补全和覆盖。虚拟人还可以通过自己调用数据库和搜索引擎API来获取完成任务需要的专业知识。类似人类社会的分工机制,虚拟人也可以通过分工的方式来完成更加复杂的任务,这样就会构造出一个虚拟人的网络。虚拟人即时学习到的知识和技能不会对底层大模型的参数有任何影响。当虚拟人停止工作的时候,这部分计算资源就被系统收回,但虚拟人记忆体中的知识和技能可以被保存下来等待下次工作时读取。简而言之,虚拟人的角色就像通用计算机中的应用程序。
底层大模型的首要任务就是要为虚拟人提供强大的即时学习的能力,也就是文中学习的能力。除了道德伦理等必要方面,我们对大模型的限制性微调应该尽量的少,特别是不要破坏它的即时学习的能力,以至于影响到虚拟人的可塑性。
虚拟人的定制化是通过每个虚拟人记忆体中特有的知识和技能来实现的。我们上节说过,长期来看,我们需要为虚拟人开发出“可显示的长期记忆体”技术来提高记忆的稳定性、可靠性、高效性。当前,ChatGPT提供了“隐式”的记忆力,GPT-3.5可以记住对话中前4000个token(汉字)中的内容,而GPT-4可以记住32000个。这些历史对话中的知识可以用来覆盖掉母体中的知识。比如,我们先提供给ChatGPT一个中国人口的数据报告,然后再问它关于人口数据的时候,ChatGPT会优先使用报告中的数据而不是大模型中的数据。这是即时学习能力的一个基本特性,我们将会在下一节进行详细的讲解。
ChatGPT的最终形态可能就是一个超大的智能基座,像供水供电一样为全社会的各行各业提供虚拟人服务。同时,各行各业企业级的反馈又能帮助大模型成长。这时,大模型成长的主要助推动力就不再是人类长期历史文本中积累的知识了,而是各行各业企业级应用中的第一手知识。换一句形象的话说,所有虚拟人的“生活经历”将成为真正推动母体前进的燃料(有趣的是,即时学习并不会直接改变母体的参数)。特别地是,各类大小企业会将在虚拟人应用中遇到的各种错误反馈给智能大基座,为了快速的解决这些问题。因为有利益驱动,所以这些反馈都会是高质量的语料,可以用来不断提升智能大基座的智能水平。
在这个新的计算架构下,我们可以看出知识和技能有两处可选择的存储区域。一个是母体,另一个就是虚拟人的专有记忆体。一般来说,大众的、稳定的、有共识的知识和技能应当由母体来理解记忆;而任务特有的、新型的知识和技能则可以通过即时学习的能力存储在虚拟人的专有记忆体中。
本文章写作时间跨度比较长,文章还差结尾的时候,OpenAI就把ChatGPTplugins的功能推出市场了。因为plugins是一个特别好的可以用来说明如何巧用两处存储区域的例子,我们在这里插入补充一下。plugins作为一种新的技能,可以有两种实现的方式。一种就是通过对母体的预训练来实现,另一种就是通过即使学习的能力直接教授给虚拟人。OpenAI选择的是第二种方式,因为这种方式实现起来很快,成本很低。而第一种方式需要专门的训练语料,如果让人来标注,成本非常高。但是第二种方式也存在着一个较大的问题,就是各种pluginAPI的自然语言描述Prompt加起来会占去虚拟人专有记忆体很大的空间。
这个时候其实有一个巧妙的解法,不知道OpenAI是否也是这么想的。如果我们把所有用户使用plugins的全部过程,包括在plugins内部点击选择的步骤,都详详细细地记录下来作为语料反哺给母体进行训练。一旦母体获得掌握这些知识技能之后,我们就不再需要虚拟人用即时学习能力去学这些pluginAPI了。甚至,用户都可以不用再在plugin内部进行点击选择了,所以的一切都会按照用户的任务目标自动进行。虚拟人只需要返回给用户一个plugin使用的确认报告就行了。
这就给我们的计算架构提供了一种引入新的大众技能的范式。即,先通过虚拟人的即时学习能力 用户辅助来先实现这个功能,然后在大量用户使用之后,逐渐将这个技能知识沉淀到母体,随之就可以释放掉虚拟人这部分的技能定义Prompt。
大模型的优势在于它可以容纳几乎无止尽的知识。包含的知识越多,知识的多样性越高,会进一步促进大模型的泛化能力、理解能力,从而涌现出更多的高级能力。人类拥有的知识在急速地增长,而人的生命有限。一个人不断的学习,成长到三十多岁的时候才有可能达到某个学科某个细分领域的最前沿,为之做出一点点贡献。这无疑将成为人类文明发展的瓶颈。大模型此时的出现恰好可以成为人类知识的超级大脑,融会贯通人类各行各业的知识,帮助人类去探索攀登智慧的更高峰。目前大模型的规模主要还是受限于GPU的显存大小和算力,但是计算机硬件发展的速度会很快。十年之后,GPT-3的1750亿的参数模型可能一张显卡就可以放下了。
目前ChatGPT还仅仅只是一个对话的工具,并没有提供给用户虚拟人的输入输出功能和自动访问各种API的能力,所以普通用户定制虚拟人任务时的自动化程度还比较低。但是,OpenAI已经发布了ChatGPT的API,程序员完全可以通过简单编程的方式将虚拟人和各种API工具缝合起来,实现虚拟人任务的自动化和多个虚拟人之间的协同作业。
微软的NewBing就是这样做的:虚拟人首先识别用户自然语言问题中的关键词,然后我们用这些关键词去检索Bing搜索引擎,将返回的前面几个搜索结果再交还给虚拟人。虚拟人读取理解这些网页中的内容,然后结合自己本身的知识,归纳总结出问题的答案。我们可以看出,真正智能化的工作都是虚拟人完成的,而程序只是起到一个胶水和管道的作用。现在ChatGPT的应用正以雨后春笋的势态不断涌现,微软近水楼台先得月,已经将ChatGPT整合到Office软件全家桶中。ChatExcel、ChatPDF、ChatDoC等等也在进入大家的视野。
虚拟人会重新定义用户流量的入口,就像当年移动端对PC端的改写一样。自然语言是人类本有的交流方式,这种交流方式比iphone带来的触摸屏交互还要自然。市场上的智能音箱、iphonesiri之所以没有普及,是因为它们使用起来就像“人工智障”一样。试想一下,当你有一个贴心的虚拟人助手的时候,你还会每天重复地在手机上点来点去的购买日常用品、订餐、打车吗?你会直接告诉TA,你想做什么,让TA去替你完成。TA还可以自动的去找各种优惠券,对比各处的价格。
如果你不放心,TA可以在每次执行实际任务之前给你一个报告,请求你的确认。这样一来,现有的这些手机APP会逐渐失去用户的直接访问,而只能和虚拟人“打交道”。就连谷歌、百度这样的搜索引擎的流量都可能会受到很大影响。搜索很多时候不是一个目标,只是一个手段,是用来完成整个任务目标中的一个步骤。当整个任务目标都可以由虚拟人来代为执行的时候,搜索还能剩下多少流量呢?
#04
即时学习能力和强泛化的解释
因为“泛化”这个词我们下文中会经常使用,为了非机器学习专业的读者便于理解,我首先做一下“泛化”的名词解释。泛化对应的英文单词是“Generalize”,它表示从具体的事物或情况中提取出共同特征,以形成一个更普遍的规律或原则可以应用到其它的事例上面。通俗一些说吧,泛化就是举一反三的能力。关于ChatGPT是不是能代表通用人工智能,学术界和工业界有很多争议。不过大家普遍认可的一点就是ChatGPT表现出强大的泛化能力。
我们现在开始分析一下ChatGPT的即时学习能力(in-contextlearning,也可翻作“文中学习”)从何而来。OpenAI公布的文档中提及过ChatGPT即时学习能力是通过无监督训练的方法从巨量的人类文本语料中学习来的,后期的有监督训练并没有提升ChatGPT的即时学习能力。这个无监督训练方法非常简单朴质,就是根据文本中前面看到的文字,不断的预测下一个文字是什么。现在我们把眼光稍微放开一些,这个任务本质上就等于根据前面文本的约束条件生成后面文本,只不过是以一种分步走的形式来进行。我们再引申一下,这个任务可以进一步看成自然语言约束条件下的前因推后果的任务,由前文的“因”推出后文的“果”。
而前因推后果这个任务是一个超级任务,是所有具体任务的元任务。GPT实际上就是在训练这个超级任务。因为它是一个超级任务,非常难,所以它需要非常庞大的参数模型和巨量的语料来训练。这可能这就是大模型能力涌现现象的原因所在。对于单任务模型来说,泛化意味着从此任务的已知数据点泛化到此任务的未知数据点上。对于GPT来说,泛化意味着从已知的不计其数的任务泛化到未知的任务上面。这就解释了为何ChatGPT拥有即时学习能力,有掌握全新的知识和技能的能力。要做到这样强的泛化能力,就需要GPT通过在巨量语料上的训练在其内部建立起一个良好的世界知识的模型。GPT-3的96层的Transformer模型是怎样做到这一点的对我们来说仍然是未知之谜。
深刻理解“前因推后果”这个训练本质能指导我们更好地使用ChatGPT,构造出理想的Prompt。我们举一个例子(见下图),如果我们给ChatGPT一个人口的数据报告,然后再问它关于人口数据的时候,ChatGPT会优先使用报告中的数据而不是大模型中的数据。这是因为报告起到了一个前因的作用,所以后面的数据分析肯定是会基于前面这个报告得出的。
ChatGPT用到的通用语料中的文字都是上下文相关的,不可能说前面放了一个报告,紧跟着却去说与报告无关的事情,这样的概率很小。同理,如果我们可以给ChatGPT设置一个很好的“前因”,把它带到我们想要的场景中,那么就会得到更符合我们要求的“后果”。比如说,我们要ChatGPT翻译一段文字,如果直接让它翻译,它可能就是按照互联网语料中的普通水平进行翻译。而如果我们可以把它带入到专业翻译家的“前因”中,它就有可能按照专业的水平进行翻译。这也就是为什么网上流行的Prompt都要先给ChatGPT设定一个角色,然后再让它干活的原因所在了。
ChatGPT用在指令对齐、多轮对话这些有监督学习上的训练语料其数据格式也是符合前因推后果的文本流。有监督和无监督学习中的文本语料遵循同一格式,这给训练带来了很大的便利。完全由无监督任务训练而成的GPT-3在和人类交互中存在很大的障碍,但是通过在几十类任务上的指令对齐训练很快就产生了泛化效应,模型在从没见过的新指令上也能生成有效的回答。模型能够快速理解和泛化指令对齐,是因为这些有监督的训练语料同样遵循着前因推后果的范式,和无监督语料中的数据类型是完全一致的。因此,从理论上说,即使我们对GPT做完有监督训练之后,仍然可以对之进行无监督的语料训练。有监督、无监督可以混合进行,这是GPT类模型非常大的的优势。
下面我们接着探讨一下GPT强泛化能力的来由。
网上有一种说法,说ChatGPT是巨型鹦鹉,是复读机。这种说法会误导读者以为ChatGPT只是在对训练语料的死记硬背。传统的基于N-grams的语言模型确实是这样的。这种语言模型就是把语料中所有长度不大于N个字的排序变化都完整的记录下来,并且计数(counting)。然后就可以根据前面N-1个字,生成第N个字的概率分布。
用这样的语言模型来做文本生成,其表现确实像一只巨型鹦鹉,能说出通顺的话,却没有实质的内容。这种N-grams的语言模型N的取值不能太大,因为当N达到5或6的时候,用N-grams去计算用户新输入文本的困惑度值的时候就会有大量缺失的情况出现,必须通过平滑来处理。笔者在国外刚上博士课程的时候,辅导员就说论文写作中只要6个连续的单词和别人一样,就算是抄袭。所以说,死记硬背这条路是根本走不通的,因为自然语言中单词排序变化的数量太大了,更何况GPT中可往前回溯记忆的N值高达成千上万个单词。
根据前面的文本预测下一个字确实是一个概率行为,看似简单,但想做好却是一件异常复杂的事情。我们人类是怎么做的呢?我们需要理解前文的语义,我们大脑要有世界的知识模型,我们要预测出后面将会发生什么事情,最后我们需要根据语法规则挑选出合适的下一个字。只有这样才能生成符合逻辑的文本。GPT可能也是在做类似的事情,因为它生成了非常符合逻辑的文本,GPT-4在各种任务上文本生成的表现已经接近甚至超越了普通人的智能水平。
很多人认为大模型的训练只是对语料中的数据进行一个拟合,或者叫做近似。但他们不了解大模型中用到随机梯度下降算法实际上是一种泛化在先的拟合算法,即通过泛化的形式来进行拟合。这种算法会先拟合所有数据点中最共性的特征,然后再拟合次共性的特征,以此类推,最后拟合每个数据点中最个性的特征。这时才等于把所有数据点都记忆下来了。
深度学习中的随机梯度下降算法甚至不属于标准意义上的NLP统计算法,因为它的最小计算单位不再是字或者字符,不再通过计数(counting)字或者词之间关联的方式来研究语义,这和其它的传统机器学习算法,比如贝叶斯、SVM、HMM等等非常不同。大模型用高纬度向量来表达字,相当于把离散的一个个字的边界都打碎了,把字碾成了粉末,每个字其中包含的语义变成连续的、可以流动的东西,这是为了方便求导的数学运算。
下面,我们用一个非常形象但不是特别准确的例子来解释一下随机梯度下降算法中的泛化在先原则。例子中用到的随机梯度下降优化算法为Mini-batchSGD。假设我们的世界知识是一棵长满绿叶的大树的照片,我们可以把树的叶子比喻成语料,一片叶子相当于一个文字。我们的模型初始化的时候是一张空白的纸。我们不能看见树的全观,只能通过一个个小窗口看见窗口内的树叶。一个窗口就相当于一次采样。我们的目标是要通过随机梯度下降优化算法使得模型内部构建出这颗世界知识的大树。
我们使用和GPT同样的训练任务,即我们通过窗口内已经看到的树叶去预测与它们最相邻的一片叶子,而GPT是使用一段文本中前面的文字去预测下一个文字。和GPT训练方法一样,我们使用Transformer掩码(masking)的方式可以同时完成窗口内每一片叶子的被预测的训练任务,并且同时完成多个窗口(多次采样)上的全部训练任务,因为我们采用的是Mini-batchSGD。
这就是说,对模型参数的每一次更新实际上是基于很多个预测下一片叶子的训练子任务。我们知道,我们是通过梯度的方向来对模型参数进行更新,而梯度的方向就是真实和预测之间变化差异最大的方向。每次模型更新的梯度实际上是多个训练子任务上的梯度的叠加。所以这个总梯度可以说是一个共性的表现,因此每个训练子任务上面共性的东西就容易被放大,而个性的东西就容易被抵消,特别是在共性的东西尚未建立的混沌状态中。从统计的角度来说,大量训练子任务梯度叠加的方向近似于真实的世界知识和模型内部构建的世界知识差异最大的方向。
最开始的时候,当我们的模型还是一张空白纸,它和那棵真实的“世界知识大树”差异最大的方向是什么呢?那必定是满屏的绿色,这就是所有知识(叶子)最最共性的特征。所有预测下一片叶子的子任务的梯度中都会有明显指向这个方向的向量维度。所以,模型最先拟合的特征就是叶子的绿色,相当于我们在白纸上画上了一片绿色。一旦绿色的特征被基本上拟合之后,次共性的特征就会变得显著,这些特征可能包括树叶的轮廓和内部脉络的基本形状。
一旦这些次共性的特征被拟合之后,次次共性的特征的差异性就会显露出来了,可能包括树叶所在的区域,顶部、中部、边缘、底部,或者树叶有没有被虫咬,树叶的菌斑等等树叶之间的普遍关联特征。当共性的特征都被拟合完成之后,模型会开始着重拟合个性的特征,每片叶子具体的特点,特定叶子与叶子之间的关联关系等等。直至最后,真实世界知识大树和我们模型内部表征出来的大树之间的差异没有了,梯度消失了,我们的训练也就停止了。
通过上面这个例子我们可以看出,随机梯度下降算法是和“死记硬背”完完全全对立的一种算法。它具有非常强的泛化性,是一种泛化在先的算法,因为它总是先拟合共性的东西。GPT也是使用了相同的方式从巨量的人类语料中学习并构建出来人类的“世界知识大树模型”。但是,机器这种在连续空间里面找共性的“思维方式”对于我们人类来说是很难理解的,因为我们习惯于在基于离散的字的空间上去思考问题。人类语料中最共性的特征是什么呢?次共性的特征又是什么呢?是词性之分、基本语法、等同关系、还是别的什么?实际上,我们可以从不同阶段的GPT训练模型的文本生成效果去分析探索这些问题的答案(如果我们有机会可以在OpenAI供职的话)。
众所周知,ChatGPT有时候会一本正经的胡编乱造,不知道问题答案的人很容易会被它蒙骗。而这种胡编乱造的本领其实正是GPT大模型强泛化能力的一个具体表现。泛化就是理解的能力,举一反三的能力。编造不存在的东西达到以假乱真的程度正是说明GPT对它所需要描述的事物有着充分的理解,是一种“高智商”的体现。而关于ChatGPT为什么会胡编乱造以及对应方法,我们在下一节会详细地进行讲解。
#05
ChatGPT存在的重要技术问题的探讨
ChatGPT一本正经胡说八道的问题是大模型落地应用道路上的一大障碍。在这一节里,我们将会对这个问题的本质进行深入的探讨,并给出长期和短期的解决思路。如果篇幅允许,我们还会讨论一下ChatGPT中存在的其它一些重要技术问题。
ChatGPT胡编乱造的问题牵扯到一些大模型中非常本质的东西。ChatGPT胡编乱造最主要的原因是GPT在巨量语料的预训练中完全是以旁观者的身份存在的,这里面缺少一个“自我”。语料中的内容是客观存在的,并不以GPT知不知道这些内容有任何的变化。GPT只是在模仿这些内容的生成。当然我们上节说过,这是一种基于“理解”的模仿,并不是单纯记忆。
咱们举个法律领域的例子。假设GPT的语料中有一些案件分析的文本。这些文本首先会交代一个案情,然后法官会分析解剖这个案件,给出这些案件的法律适用(法条),最后法官还会给出几个以往的类似案例作为参照。我们使用ChatGPT做案件分析的时候,它其实是在模仿语料中的这个过程。但是如果大模型的法律法规训练得不够充分,ChatGPT找不到合适的法条的时候,它知道这个位置需要生成一个法条,它就会运用它的泛化能力编造一个最像的法条。ChatGPT不会说,我找不到合适的法条,因为它学习模仿的语料文本中不会发生这样的事情。
经过模仿学习“修炼”而来的GPT,实际上可以看作一个万能的角色扮演者。它用它掌握的世界万物的知识和因果推理的关系来和你进行对话,但它并没有一个自我的存在,没有一个固定的个性。很多时候你以为你在和它聊天,聊它的感受,其实它只是一个“演员”,它只是在客观地判断应该发生什么事情。就如同,我们这些看电视的观众其实也可以替剧中的演员说话,我们看见一位医生一整天地救治病人,救治结束之后,我们可以替演员说,“我很疲乏了”。但其实我们只是根据事实在做推理,医生的真正的状态我们并不知道(当然,剧中人也是在演戏)。了解ChatGPT模仿学习的工作原理对我们在业务中使用好ChatGPT非常重要。我们只有把ChatGPT带到我们希望的业务场景之下,清楚它是如何运作的,成为一名好“导演”,ChatGPT才能更好的“入戏”,为我们服务。
造成ChatGPT胡编乱造的第二个原因是训练不充分。从某种角度来说,胡编乱造不是大模型的一种错误,而是对相关知识未充分训练的一种中间状态。假设人类世界的知识是有限的(closedworld),大模型装下了所有的知识,并对之进行了充分的训练,那么绝大多数胡编乱造的情况会消失。因为大模型可以清楚地知道知识的界限在哪里,哪些是存在的,哪些是不存在的。
但是实际上,人类世界的知识可以说是无限的(openworld),大模型虽然知道很多知识,但它并不知道边界在哪里。训练语料中存在着大量的边缘知识,出现的次数比较少,大模型没有机会进行充分的训练,以至于不能很好地理解掌握这部分知识。如果在对话中涉及到这部分边缘知识,ChatGPT就会出现胡编乱造的现象。其实这就是大模型从不懂通向懂之间的一个未完成状态,并不是什么很奇怪的事情。
下面我们看一个例子。我们让ChatGPT和百度文心一言同时生成演员张涵予的生平介绍。ChatGPT给出的张涵予的信息貌似有模有样,实际上都是胡诌的,出生时间和地点都是错的。不过ChatGPT大体上知道张涵予是演电影的,而且也说对了其中的一部电影《湄公河行动》。百度文心一言给出的张涵予的信息基本上都是对的,但也存在一点小错误。我们知道,ChatGPT训练中使用的中文语料是很少的,而百度使用的语料绝大部分都是中文而且训练是比较充分的。可以看出,经过充分训练之后大模型在演员张涵予生平介绍上的胡编乱造情况得到了大大的改善。
解决ChatGPT胡编乱造的问题可以从上述的两个原因入手,还可以分为长期、短期两类方案。最正统的长期方案就是通过与外界交互式的训练,让ChatGPT拥有“自我”,可以根据“自我”的状态调整对话的内容。这样,当ChatGPT不拥有准确地回答某些问题的知识的时候,它就会回答“我不知道,我不太清楚”。实际上,OpenAI也正走在这条路上。
基于人类反馈的强化学习(RLHF)就给了ChatGPT和外界交互的机会,它就不再仅仅是一个世界的旁观者了。当ChatGPT胡编乱造的时候,我们人类可以对它进行纠正,告诉它这个时候正确的回答是“我不知道”。当这种反馈训练达到足够量级的时候,ChatGPT就可以将这种胡编乱造的场景和自身的知识掌握状态联系在一起,进行泛化。GPT-4发布时公开的官方文档也显示出了RLHF正在有效地解决幻觉的问题:经过RLHF训练之后的ChatGPT在TruthfulQA的问题集上有50%以上的改善。
理论上,我们从算法层面应该也可以捕捉到ChatGPT胡编乱造的状态。GPT-4发布时的官方文档显示出一个有趣的现象,预训练完成之后GPT-4在做MMLU测试集的时候,它对所选择答案输出的概率和它实际上答对这道题的正确率几乎完全一致。这说明GPT-4对答案的正确与否是“心中有数”的。所以,当ChatGPT“胡编乱造”时生成的文本,其相对应的概率曲线或者entropy曲线可能也具有某种明显特征,应该可以和“胸有成竹”时生成文本的曲线区分开来。但是,OpenAI迟迟没有推出这个功能,说明这个算法可能存在着某种我们未知的困难,并不是那么容易实现。当然这也有可能和计算成本有关系。
我们还可以稍微发散一下思维。在算力允许的条件下,将元宇宙和我们第二节中所说的“虚拟人世界”相结合可能是让GPT拥有“自我意识”的更快速的一种进化方法。在元宇宙中,我们可以模拟一个与真实世界相似的物理世界和社会环境。虚拟人在这个元宇宙中就可以充分地和外界进行交互,即可以和其它的虚拟人交互,也可以和我们这些真实人扮演的角色进行交互。在元宇宙中还可以很容易的设定优胜劣汰、适者生存的规则,建立一个统一的进化用的目标函数。在这种虚拟真实的环境下,GPT可能可以更快速地发展出“自我意识”。当然,这个机器的“自我意识”真的是我们人类所需要的吗?这是很值得探讨的一个问题。
解决ChatGPT胡编乱造的问题的第二条路就是让大模型尽可能多地吸收语料知识,并对之进行充分训练。多吸收各方面的语料知识就是扩大大模型知识的范围,使得用户提出的问题基本上可以落在大模型边缘知识以内的部分,即大模型可以充分理解的知识范畴之中。充分训练就是让大模型可以完全掌握并记忆住这些知识。前文中我们举的那个张涵予的例子可以说明充分训练的必要性。
但是大模型的容量有限,不可能包含世界上所有的知识。就拿中文法律领域来说吧,全量案例加在一起就有1TB的数据量了。而1750亿参数的GPT-3模型的总共容量也就只有1TB。所以,至少目前大模型是不可能包含全量的案例信息。那么我们在训练大模型的时候就会面临一个语料的取舍问题,哪些是该放的,哪些是不该放的,以及训练程度问题。
对于法律领域来说,训练至少要做到对全部法律法规的准确记忆,因为这是理解法律知识和关系的基础。全量案例不宜于都加入到语料之中,因为这么做会造成同一模式的语料占比过高,容易破坏语料的多样性,影响到大模型的泛化理解能力。案例数据在训练中起到的主要作用应是,通过对法律法规的大量实践应用,加深对法律法规的全面理解,将实际应用和法律法规条文的字面意思一一对应起来。而准确记忆和索引案例数据这个任务则交由外部的法律信息搜索引擎,比如北大法宝,来完成。
通过虚拟人的即时学习能力,我们可以直接告诉ChatGPT对话机器人,“凡是需要引用实际案例的地方,请调用北大法宝来搜索案例”。ChatGPT可以理解你的命令,按照你的命令执行,因为这个命令并不涉及到ChatGPT“自我”的状态,而只是对一个客观知识(案例)的认知和理解。最近微软发布的154页的GPT-4调研报告《通用人工智能火花》的中充分展示了ChatGPT在这方面的能力(见下图)。ChatGPT可以在凡是需要数学计算的时候能够自动调用计算器来解决问题。实际上,OpenAI最近发布的5000多个ChatGPTplugins就是建立在上述方法上的一个应用。
所以,即使OpenAI在第一条“让ChatGPT拥有自我”的路上受阻,我们仍然可以通过第二条路,充分训练 锁定范围,来有效地规避掉ChatGPT胡编乱造的问题。虽然ChatGPT“不知道”自己知不知道,但我们可以通过训练来控制它不知道的范围。只要我们清楚它的知识范围,我们就可以通过自动调用外部工具的方式来弥补它的不足,比如在案例和文献的引用方面。
本节的最后,我们来分析讨论一下网络上著名的段子“林黛玉倒拔垂杨柳”出现的原因。我们首先让ChatGPT返回红楼梦前五回的题目和概要,结果详见下图。可以看出,ChatGPT其实根本不知道《红楼梦》书中记载了什么,它的叙述完全是胡编乱造的。
我们再拿同样的问题问一下百度的文心一言,返回结果见下图。文心一言的回答要好一些,题目大致是对的,但是概要中很多也是胡诌的。在ChatGPT完全不知道《红楼梦》书中发生了什么故事的时候,你要它回答出“林黛玉倒拔垂杨柳不是书中的故事”是不可能的事情。所以要解决这个问题,我们首先要做的事情就是比较充分地训练《红楼梦》一书,让大模型至少知道书中的完整情节。众所周知,GPT训练语料中包含的中文语料非常少,所以ChatGPT对《红楼梦》的浅薄认识可以理解。但为何百度的文心一言也出现了大量胡编的成份呢?笔者猜想,这可能和大模型语料的训练机制有关。
大模型语料预处理工作中普遍都会引入文档级的去重机制,其目的为了提高大模型的泛化能力。《红楼梦》小说的全文版本在互联网上出现的次数虽然很高,但是经过去重之后在大模型的语料中可能就只出现一次。语料中其它地方可能存在许多对红楼梦情节的叙述引用,但都只是片段。所以,最终的训练结果就是文心一言对《红楼梦》整体情节的缺失。因此,我们应该针对语料的重要性,赋予不同的权重。像法律法规这样必须死记的东西,要给予最高的权重。《红楼梦》这种大众统一的知识,也相当于是一种规范,可以给予次要的权重。
模型训练中用到的上下文长度也会影响到模型对长文本中知识的整体吸收能力。大模型训练用的上下文长度一般在几千个token左右,相当于几千个汉字。但是长篇文章,比如《红楼梦》、《民法典》等等,都长达几十万字。因为大模型每次训练装不下这么长的文本,只好将长篇文章截断成为几千个字一段的短文本的集合。如果不经过特殊的数据预处理加工,这些集合中的短文本在实际操作中会被当成孤立的、不相关的文本进行训练。这样一来,这些文本中的内容就很难在大模型内部形成统一的、连贯的、有序的知识。
结束语
我们无需嘲笑机器的模仿学习,因为我们人类其实也是在模仿学习。我们模仿鸟儿的飞行,才有了飞机的诞生;模仿生物的大脑,才有了人工神经网络,才有了GPT。如果没有这些东西的存在,我们会有这样的想象力吗?飞机,我没有确切的把握,但是人工神经网络这条路人类肯定是不会发现的。因为这种简单的大量连接的网络,基本上基于矩阵的乘法运算能诞生智能,如果不是因为有生物大脑的背书,是完全不可思议的事情。事实上,人工神经网络在几十年的发展道路上也是饱经各种各样的批判,很多时候认为完全走不通。即使现在,GPT是怎样在内部一步步实现智能的能力也几乎是一个黑盒。
人类社会发展的车轮很难停止下来,不管我们愿意不愿意。这场ChatGPT引发的技术变革对人类来说到底是好事还是坏事,很难预料。但是这场大模型的竞赛最终会演变成国家之间生产力的对抗,所以我们不能输。我们必须做好中文的大模型,别无选择。
相关文章
猜你喜欢