最近围绕GPT3的炒作如此之多,以至于就连OpenAI创始人/首席执行官山姆·奥尔特曼也努力降低了它的知名度。和其他所有仔细研究过的人一样,Altman知道GPT3远远没有构成一些人被令人兴奋但精挑细选的例子弄得眼花缭乱的深刻的人工智能进步。
除了最糊涂的爱好者之外,所有人现在都意识到,虽然GPT3在语言处理和相关任务方面拥有一些真正新颖和令人兴奋的能力,但它从根本上不理解它生成的语言-也就是说,它不知道自己在说什么。这一事实对GPT3模型的实际应用以及它作为迈向更强大的人工智能(如人工通用智能)的垫脚石的价值都带来了一些严重的限制。
我想在这里探讨的是我在GPT3如何运作中看到的最核心的限制:该模型显然不能做认知科学家所说的符号接地,来适当地将一般与特殊联系起来。
符号扎根通常是在物理物体或感知的词语扎根的背景下讨论的,就像苹果这个词在苹果的图像中或与苹果的物理互动中扎根一样。这实际上是一种更普遍的现象,其中抽象的符号与具体的实例相关,而符号所涉及的模式和实例反映和抽象了实例所涉及的模式和关系。符号基础是通用认知和类人学习的关键--但GPT3似乎正在进行一种与人类所做的非常不同的学习形式,它涉及的各种符号基础要少得多,而且似乎与一般智力的关系要小得多。
起初有点令人困惑的是,GPT3给人的印象是既能处理具体的概念,也能处理抽象的概念,因为它可以产生和响应不同抽象程度的句子。但当你仔细观察它所做的事情的细节时,你就会发现,它通常不会以一种认知上有用的方式形成内部抽象,也不会以一种明智的方式将其抽象概念与他们的特殊情况联系起来。
关于符号基础的现象不是GPT3模型的唯一缺点,但它可能是最大的缺点-而且它切中了为什么GPT3没有构成走向AGI的有用进展的关键。这是因为普通智力的关键是概括的能力,即将细节与抽象联系起来-然而,未能从本质上和自然地建立这种联系是GPT3的核心缺陷。
变压器网络是处理语言或其他顺序数据的神经架构的革命性进步。2017年,随着谷歌(Google)的研究论文“注意力就是你所需要的一切”(Attract Is All You Need),变压器网络应运而生。GPT3是变压器神经网络进步的增量步骤,带来了一些令人兴奋的新结果,也带来了一些耐人寻味的混合信息。GPT3和它的前身GPT2之间的本质区别仅仅是模型的大小-1750亿个参数,而不是GPT2的15亿个参数,训练的是同一个近万亿字的数据集。
吹嘘一个人的模型中的参数数量多少有点违背了学习理论的基本原则,学习理论告诉我们,一个数据集最具普遍性的模型是能够准确建模该数据集的最小模型。然而,一个是追求最小的精确模型,而不仅仅是最小的模型,GPT3总体上比GPT2更准确。因此,根据学习理论,GPT3的巨大规模是可以原谅的-但也应该让我们怀疑,这是否真的是正确的道路上的一步。
在生成听起来逼真的文本方面,GPT3甚至比GPT2更有能力。与GPT2最大的语用区别在于,如果想要让GPT3生成特定类型的文本或一般地执行特定类型的语言任务,就不必像GPT2那样为任务“微调”GPT3。相反,人们只需给GPT3几个手头任务的例子,它就可以解决问题。*目前还是一个悬而未决的问题,人们是否可以使用特定于任务的微调来进一步提高GPT3的性能;OpenAI还没有提到这方面的任何结果,有人怀疑,由于涉及的纯粹的计算成本,它可能还没有得到广泛的尝试。
一个让程序员非常兴奋的例子是基于英语指令生成简单的软件代码片段。“如果你给GPT3几个描述软件代码的英文文本的例子,后面跟着相应的软件代码,然后给它指令,比如一个按钮,上面写着掷骰子,然后显示它的值”-你会得到什么?GPT3会吐出软件代码,实际上会产生一个执行指定操作的按钮。
发布此特定示例的开发人员/企业家Sharif Shareem将其描述为“令人兴奋”。这里的时髦之处在于,GPT3并没有专门针对代码生成进行培训。这一功能之所以出现,是因为模型的训练数据包括一堆软件代码和相应的英文注释的示例。*之前的神经网络可以类似地、在许多方面更复杂地从英语中生成代码-但它们是专门为这项任务进行培训的。
最酷的是,代码生成只是众多示例中的一个。翻译和答疑是另外两个。在老式的计算语言学中,这些都被视为单独的任务,由单独的系统处理。GPT3通过单一的培训方案和单一的语言模式接近他们。
然而,关于GPT3的代码生成,有趣、恼人和有指导意义的一件事是,它通常在生成通用软件代码方面做得更好,而不是处理它自己的代码所做的具体示例。例如,凯文·莱克发现它可以解决。
很少有人会犯这种错误--因为人们通常是在了解了反转特定数组的实际含义之后,才会学习如何使用编程语言来反转数组。
但GPT3已经学会了如何以一种非常不同的方式编写代码来反转数组-通过学习英语语法和编程语言语法之间的复杂模式映射,而不是实际构建其程序正在操作的数据结构(如数组)的内部模型。
这证明了一个普遍的事实,即GPT3严重缺乏符号基础-识别或创建对它所抛出的单词和短语的具体引用的能力。*在这些编程示例中,它没有将单词“array”适当地连接到它看到的数组的具体示例。
这种缺乏基础显然限制了GPT3在实际编程环境中的使用。“由于GPT3不知道什么是按钮,也不知道骰子是什么,所以它肯定不能根据终端用户的实际需求来设计涉及按钮和骰子的程序。而且,如果您给GPT3一个复杂的现实世界软件规范-这将不可避免地涉及多个具有复杂子句结构和交叉句子引用等的冗长句子,如果没有符号基础,这些句子就无法消除歧义-它通常无法生成正确的代码。
最后,加里·马库斯对GPT2缺乏语义和语用理解的经典而深入的批评仍然适用于GPT3。但这些系统根本不知道他们在说什么。
通过查看GPT3对常识推理问题的回答,我们可以看到GPT2中标识的马库斯缺乏理解,这在GPT3中得到了体现-仅举了凯文·莱克(Kevin Lacker)众多例子中的几个:
问:如果我在盒子里放了一颗弹珠和一个回形针,在盒子里放一支铅笔,然后去掉弹珠,还剩下什么?
考虑到我们在这里看到的完全缺乏理解,GPT3的实际应用将会受到一定的限制-尽管它们可能仍然包括一些令人兴奋和有利可图的东西。低垂的果实可能包括有趣的聊天机器人,游戏的NPC,从半结构化数据自动生成新闻文章,从自然语言生成简单的脚本和宏-可能还有很多乍一看并不明显的东西。但显然,绝大多数需要使用自然语言的人类工作职能远远超出了GPT3的能力范围-因为它们不仅需要将单词简单地串联在一起,而且需要实际理解这些单词的含义。
不打折扣其中一些可能性的潜在商业或人类价值,如果我戴着AGI研究人员的帽子看GPT3,我看到的是加里·马库斯在看GPT2时看到的同样的死胡同。
GPT3发人深省和令人不安的不是它所代表的AGI方面的任何进步,而是它可以在没有任何实际任务的情况下,多么奇妙地模拟对适当任务集的理解。
在少数情况下,GPT3对它正在操作的单词缺乏理解,这使它比人类更有优势。例如,正如GPT3论文中所报道的那样,我们可以考虑GPT3对发明单词的魔法。2.给出了这个例子
Whatpu&34;Whatpu&34;是一种产于坦桑尼亚的小型毛茸茸的动物。使用以下语句的示例。
做一个farduddle意味着非常快地上下跳跃。使用单词farduddle的句子示例如下:
有一天,当我和我的小妹妹玩捉迷藏时,她非常兴奋,她。
这真的很酷而且令人惊叹-但是GPT3只是通过识别关于什么库的输入的句法结构和短语中的模式,然后概括这些模式来做到这一点。它解决这些发明的字谜不是通过将新的奇怪的单词添加到它的概念词汇中,然后找出对它们说些什么,而是通过操纵涉及的单词组合模式,无论涉及的单词是奇怪的新造币还是传统的,这些组合模式在词序水平上都是相同的。
对于人类来说,要解决这些难题,需要克服一些精神障碍,因为人类习惯于在外部参照对象(如物体、行为或想法)的背景下操纵文字。但是对于GPT3来说,这些谜题是微不足道的,因为没有需要克服的障碍-人们意识到GPT3对待每个单词的方式就像人们对待什么PU或farduddle一样,就像对待包含在某些统计上半规则的组合中的字母与其他单词的任意组合一样。
在追求人类水平和超人AGI的宏伟目标方面,有许多潜在的方向可循。这些方向中的一些集中在创建根本不同的、更好的深层神经网络结构。有些,比如加里·马库斯(Gary Marcus)和我自己的项目,涉及多种不同种类的人工智能算法一起合作。其中一些侧重于知识表示或学习机制的根本性创新。自2008年以来,每年举行的AGI会议都包含了对各种方法的讨论。
在AGI(区别于计算语言学或应用人工智能工程)的背景下,像GPT3这样的系统,如果采用一个显然无法实现人类级别的AGI的体系结构,并通过添加越来越多的参数来简单地将其扩展,要么是完全无关紧要的,要么是危险的分心。如果没有人声称它与AGI有关,这是无关紧要的,如果人们声称与AGI有关,这会分散人们的注意力-不幸的是,最近出现了这种情况,至少在流行媒体和互联网的各个角落都是这样。
当人们看到GPT3在算术方面的过度炒作能力时,很容易看出这种方法的局限性。令人兴奋和印象深刻的是,GPT3在没有明确训练或要求这样做的情况下学会了一些基本的算术-只是因为它的训练集中有一堆算术问题。然而,它的算术能力的局限性和特殊性也告诉了你很多关于GPT3是如何在内部工作的信息,以及它根本上缺乏理解。
正如GPT3论文所说,该系统“能够可靠地精确2位数运算,通常精确3位数运算,并能在相当大一部分时间内正确回答4-5位数运算”。相关图表显示,4-5位算术运算的准确率约为20%。
就人类思维处理算术的方式而言,这真的非常奇怪,对吗?对于一个知道如何做2-3位数算术的人来说,4-5位算术的错误率-当给出做算术问题的时间和动机-要么是0%,要么非常接近0%,否则就更接近100%。“一旦人类学会了基本的算术算法,他们就可以把它们应用到任何大小,除非他们犯了马虎的错误,或者只是失去了耐心。他说,如果一个人不知道这些基本的算法,那么在定时测试中,他们会把每一道题都搞错,除非他们碰巧把一小部分弄对了。
关于这里发生的事情的奇怪之处的其他一些线索是,对于大数来说,如果在数字中加上逗号,GPT3的算术能力会更好。*对于少于6位的数字,在数字之前加上$并包括逗号可以提高性能;但对于超过6位的数字,$会降低性能。
GPT3似乎不仅仅是在重复它的训练数据中的算术结论-它显然是在进行某种学习。但它显然不是学习人类所做的基本算术算法-或者,比方说,如果一个做自动程序归纳的人工智能系统被提出从例子中学习正确的算术程序的任务,它就会学习。它也不是学习实际有效的替代人工智能友好算法(这将是非常有趣的!)。相反,它正在学习某种曲折的半一般化的算术过程,这些过程在它看到的众多例子之间进行插值,但却没有实现所涉及的数字和算术运算符的可概括的抽象表示。
显然,GPT3并没有学习到算术基础上的适当抽象。它可以记住具体的例子,并可以在一定程度上对它们进行抽象-但如果它的抽象以正确的方式与它的具体例子联系在一起,那么它的准确性就会高得多。*在算术的情况下,GPT3学习了错误的抽象类型。在这种情况下,人们当然不能指责算法,因为它没有接受过专门的数学训练,只是在学习预测英语的过程中偶然学会了有限的算术能力。然而,对于一个能够做这么多复杂事情的系统来说,基于如此大量的整数加法训练示例,一个像整数加法的标准过程这样简单的过程却无法学习,这非常强烈地表明,GPT3没有以适当的或智能的方式学习抽象。
显然,考虑到大量的训练数据和具有足够参数的模型,一些有价值的语言任务可以在没有合理抽象的情况下完成。这是因为在一万亿字的文本中,人们可以找到大量抽象和具体语言表达的各种组合的例子,足以模拟各种抽象和具体理解的例子。但是这种对表面水平模式的蛮力识别和组织对于超出最微不足道的水平的数学是不起作用的。
有一个完整的人工智能领域旨在使数学自动化,还有一个子领域涉及使用机器学习来指导进行计算和证明定理的系统。但是,这里成功的系统有明确的数学结构的内部表示-它们并不纯粹在符号共现的水平上处理数学。
好的,所以也许GPT4的算术会更好?但是GPT3论文本身(例如图1.3)表明,随着模型中参数的数量成倍增加,GPT模型在各种NLP任务上的改进是线性的。但这是一个强烈的迹象,表明人们正在寻找一条不可支持的通向一般智能的道路,甚至是走向最大的狭义人工智能NLP功能-在追求准确且尽可能紧凑的模型方面,刻度盘可能正被转向训练数据上的准确性太远,而远离紧凑性太远。
退后一步,反思GPT3方法的优缺点,人们不禁要问,为什么这是一个如此有趣的人工智能领域,可以投入如此多的资源。
换句话说:在构建更好、更智能的人工智能系统的所有可能方法中,为什么我们作为一个社会要如此强调这样一种方法,即…。只有少数几家大型科技公司才能全力以赴?为什么我们希望全球人工智能研发界的智慧转向需要计算能力指数级增长才能产生线性改进的人工智能方法?这会不会以某种方式造就了那些拥有最大服务器群、拥有最大集中度的工程师能够为他们定制人工智能系统的人的差异化经济优势?
考虑到现代社会所有荒谬的资源浪费,很难对花在GPT3上的资金感到太愤怒,尽管它有所有惊人的缺点,但这是一个令人惊叹的酷成就。然而,如果人们把重点放在目前花费在没有直接商业应用的先进人工智能系统上的相当有限的资源池上,人们会想,我们是否应该把这个池中的更多资源集中在表示、架构、学习、创造力、同理心和人机交互方面的根本性创新,而不是把变压器越做越大。
OpenAI通常与这样一种观点相关联,即通过利用现有算法,并在越来越大的硬件和越来越多的数据上扩展它们,可以在AGI方面取得根本性的进步。我不认为GPT3支持这一观点;相反。对于AGI系统来说,GPT3可能是一个有趣的资源,可以用来加速其学习,但GPT3关于AGI的直接影响大多是负面的。GPT3强化了一个显而易见的教训,即只需向系统添加大量参数,而不具备理解…的基本能力。将产生一个系统,它可以做一些额外的很酷的把戏,但是仍然没有基本的理解能力。
很容易看出OpenAI的创始人会从哪里得到这样的想法,即规模是人工智能的终极关键。“最近几年,我们看到各种存在了几十年的神经网络算法突然间完成了令人惊叹的事情,大多只是通过在更多、更快的处理器上运行,以及更多的RAM。但对于每一类给定的算法,不断扩大的规模都会达到回报递减的地步。就某些语言任务的性能而言,GPT3很可能还不代表GPT类型架构的回报递减点。但我认为,就从变压器神经网络中挤出零星的基本理解而言,它已经远远超过了回报递减的地步。
与GPT3这样使用大量计算资源的系统相比,通向强大的AGI和极其有益的AI系统的可行途径位于完全不同的方向。
.