GPT 读《GPT 是互联网上所有文本的模糊图像》

ChatGPT 发布两个多月以来,我一直试图让它做一些真正的工作,例如帮我读长文,或者写一些简单的摘要,由于结果往往较差,我最后回到了 GPT-3,并且测试了各种带类似功能的应用。

经过一段时间的优化,类似 Ghostreader 这样的平台,已经能将一篇 5000 词以内的文章总结得基本完整,更长的文章则需要多试几次才能得到自己想要的结果(猜测算法会随机抽取或递归抽取文本内容来进行多阶总结),不幸的是,所有这类应用(哪怕来自中文开发者)也几乎都是残废。

到了二月,终于有一个应用允许快速总结中文内容(无论是PDF还是网页)。因此,多少带着一些恶趣味,我用使用 Bearly 分别总结了特德·姜《GPT是互联网上所有文本的模糊图像》一文的中英文版本,并得到以下两个结果:

中文结果:一家德国建筑公司注意到,他们的施乐复印机对他们所复印的平面图进行了细微而又显著的改变。经过调查,发现复印机使用的是有损压缩格式,而不是无损压缩格式,这导致复印机识别出图像中的类似区域,并只存储一份副本,导致所有房间都被标为 14.13 平方米。这个故事提醒我们,当准确性很重要时,使用有损压缩算法的潜在危险,例如 ChatGPT 这样的人工智能程序。
英文结果:2013 年,一家德国建筑公司的工人注意到他们的施乐复印机有一些奇怪的地方:当他们复印一所房子的平面图时,复印件与原件有细微但显著的不同。原来,复印机使用的是一种被称为 JBIG2 的有损压缩格式,它可以识别图像中看起来相似的区域,并为所有这些区域存储一个副本。这导致打印平面图时,指定房间面积的标签被重复使用。这一事件被用来解释大型语言模型(如 ChatGPT)的「幻觉」,它容易对事实问题作出无意义的回答。这是因为这些模型本质上是有损的文本压缩算法,它们生成的文本似是而非,不会被立即识别为不正确。对有损压缩的类比也被用来解释大型语言模型在「词汇空间」的两点之间插值并生成占据两点之间位置的文本的能力。还有人提出,更好的文本压缩将有助于创造人类水平的人工智能,因为它需要理解文本。最后,有人质疑文本中的统计规律性是否与现实世界的真正知识相对应,并提出大型语言模型可能不适合做算术。

显然,同一套 API,同一套咒语(Prompt),同一个前端,同一个后端,同一篇文章(两个语言的版本基本没有误译问题)——唯一重要的变量是语言——得到了截然不通的结果,这也简单印证了许多人过去几周以来的观察:OpenAI 模型的英文能力远比中文能力更强。

墙外的花不够香的现实吸引了大量墙内的科技果农,他/她们希望在自己的大棚里栽培出中国的 OpenAI 和 ChatGPT。有人要投机取巧,自然也有人泼冷水:骆轶航在讨论「谁拖了中国 ChatGPT 的后腿?」时认为,正是国内投资机构长期以来的高度投机性,使得它们缺乏对技术和未来的信仰,未来也难以支撑起改变世界的伟大愿景。

愿景是否到位或许根本不重要,有许多显而易见的理由支持中国企业或科学家开发自己的语言模型:其一,钱当然不能让 OpenAI 全都赚去,中国企业无论如何也想分一杯羹,更怕被时代甩在后头;其二,简单调用OpenAI的模型完全不可行,因为这个模型是如此可悲,完全不具备党性和对社会主义的信仰,无法在中国活下去;其三,哪怕开发不出来,骗点补贴也是可以。

哪怕抛开这些功利的、商业的需要,科学家们也还是有动力创造一个中文的(而不止是中国的)大型语言模型。最新研究已经表明,模型的参数量与语料的数量需要存在一定的匹配关系,才能将模型能力最大化,更简单的说:模型参数特别多,且语料不够时,模型能力很差。因此事实摆在眼前:如果要沿用 GPT-3 的大模型(1750 亿参数),那最好是恶补语料库;不然,最好是从头训练。

语言是透明的墙

回到语言模型在多语言测试时的能力差距上。对此,最简单的解释是考虑「语料的多寡」。OpenAI 的 GPT-3 模型本身就没有对非英文进行过特殊优化,训练过程中英文语料高达 92% ,而中文在整个语料库中的比例不足 1%,这意味着中文的专门训练可能严重不足,如果补充更多语料,可想而知将得到更好的效果。

从语料出发的另一思考维度是「语料的质量」。由于网络长城和各家企业的局域网(例如小红书和公众号),中文研究者能够获得的优质、新鲜语料非常有限,36Kr 的文章中甚至提到研究者不得不在 QQ 群中采集语料,并且训练出了喜欢连续打三个句号当省略号的 AI。

以上两种可能都可以做一些简单的研究来验证,例如设计一个实验,对比一些需要较新或较高质量语料的任务,再对相关任务的稳健性和结果进行评分。但我个人更关注的是第三种可能,是一种极具理论意义的可能,也是一种短期内难以进行恰当检验和评判的可能。

还有最后一种可能,也是最有理论意义的可能,也即「语言的结构」差异。用最简单的方式说,由于 Transformer 模型所做的工作是根据上下文,来预判下一个通证(token)最有可能是什么,那么显然,不同语言对「通证」的定义很有可能影响模型的表现。

按多轮测试的结果,在英文中,一个「通证」就是大约是 4/3 个词;在中文中,一个「通证」则是一个字,这也符合中英文组成句子最小单位不同的特征。这种界定直接导致,OpenAI 的模型能够单次读取、持续记忆的中文信息量只有英文的 60% 左右,处理同样信息的文本消耗的费用也高了 40-60 %,与此同时响应速度也有相当相当程度的下降。

即便不考虑速度、容量与费用问题,仅讨论GPT回答的有效性,我们也需要意识到,西方语言中的一个「通证」往往是独立的语义单位,现代中文中的单字则不是——例如「中」和「文」必须连起来,两个字的意义才能得到准确表达。尽管当下大部分团队也都会在处理中文语料时进行分词,但我们仍可以认为,分词问题并不能根本性的解决语言的差异(在日语和韩语这样书面表达更加混杂的语言中,情况或许更复杂)。

墨磊宁在《中文打字机》中考察了二十世纪的中国人将中文艰难地「塞进」打字机里的过程,这一过程同时也展现了语言与技术之间的艰难结合。或许有些危言耸听的意味,但如果分词、断句等等问题确实对大型语言模型的结果有所影响,那么二十一世纪,语言和技术的又一次结合可能意味着一种新的紧迫性:要求东方国家(非英文国家)再次发明一种方式来让自己的语言能够(并且至少相对低成本地)接入新的技术,从而不被时代甩在后面。

规则、知识与巫术

「从很多人对语言模型有误解,以为它是把人类说过的话通过统计学方式组合成了一段话。但实际上语言模型的技术是,AI通过学习海量的语料,掌握了语言规则,可以根据提示写出任何的东西。也就是说 ChatGPT 不需要 Stackoverflow 作为输入。而中文语料质量差也没关系。因为规则未变。」

对于语言特殊论,无论是假定差距来自语料数量、语料质量还是语言结构,一种常见的反驳是,认为语言模型并不是将语料作为统计资料输入(也即上一代对话AI的常见做法),而是「掌握了语言规则」,在这些规则的基础上,进行的专门训练和调优将为它提供更多的「知识」或「风格」。

这一思路对语言存在根本性的误解。语言的规则(语法)并不完全与语言的内容(语义)正交:在一些情况下,同样的句子结构可以表达截然不同的含义,只是因为内容变了,如「这是苹果」或「这是葡萄」;在另一些情况下,说话的方式本身就界定了话语的寓意,如「苹果就这」和「苹果就只是这样」。

因此,大型语言模型习得的绝不是「规则」+「知识」的组合,而是「规则」和「知识」的混合物:它能轻而易举地按照科学家的方式陈述相对论,可如果你要求它(或者任何一个科学家、脱口秀演员)用一个脱口秀段子来陈述相对论,它会做得很蹩脚,因为人类语言的本质之一就是结构从来不能完全脱离意义而存在。

因此,语料数量与语料质量对大型语言模型都至关重要:并不是为了让 AI 学会基本的语言表达,能够和你唠嗑——早在五年前,上一代对话机器人就可以做到这一点——而是为了让 AI 掌握更多、更好的说话方式、思考方式和写作方式,以及用合适的方式表达合适的内容的能力。

我们也可以在此考虑另一个命题:AI 掌握的只是一种统计规律,它知道「煎饼」后面大概率出现「果子」,尤其是上下文提到「北方」、「食物」等等关键词时,因此,AI 并不掌握真正的知识,更不掌握推理能力。对于后半命题,即 AI 不掌握推理能力,我没有任何疑问,但是对于 AI 是否掌握知识,我们可以提出两个反驳:

首先,在相对抽象的层次上,人类大脑的神经元也按照这一方式运作,只是或许更加敏捷与发达,没有理由和证据认为这种连接和通过神经元唤起的连接之间存在质的差别;其次,人类知识中原本就存在一个部分,体现为词语之间的关系,例如知道「布迪厄」与「社会学」「法国」「阶级」「品味」等等词语的高度关联,本身就是一种人类认可的知识。

然而,人类知识中也有一些部分,不体现为这种关联:例如前文所说的推理,语言模型当然可以通过大量学习「知道」1+1=2 或 2+2=4,但是要让它知道 10086+3=10089,在不调用 API 的情况下,或许有些强人所难;又比如语言和世界的对应关系,例如「A 颜色是普鲁士蓝」或「面前是土黄色的墙」;再比如一些语言本身的「知识」,或者说感知的知识,将《诗经》翻译成英文后丢失的东西,就是这样一种知识。

因此,在我们可以想象到的短期之内,我们暂时不会看到一个足够强大(掌握了足够多的写作风格与思考风格)的大型语言模型。对我们来说,大型语言模型更多的用处是做基本的读写或检索工作,以及用来作为其他类型的 AI(图文、音频)的交互接口。但正因为它不会很强,在大公司的勤劳和寻常人的懒惰之下,我们和我们的语言将变得更弱,以便于我们与 AI 相匹配,允许我们和它自由地交互。

这种关于语言削减的可能还存在更强大的作用:有人指出,大型语言模型很可能在学习的过程中掌握了一种「元语言」,其输出总是将这种元语言转换成其他人类语言来完成。这一思路解释了即便 OpenAI 的开发者自身都存在的困惑:为什么他/她们只使用了很小的一部分非英文语料,但是非英文的 ChatGPT 表现仍然很不错?如果确实如此,那么未来的大型语言模型将和今天的英文一样,通过强制性地转译来迫使人们放弃特殊的、本地的、人类的语言知识。

如果暂时忘掉人和机器交融的乌托邦或反乌托邦设想——取决于你是否在意语言的风格、思考的风格以及那些微妙的品质,或是认为推理能力才是人类智能的皇冠——面对不确定的语言及其未来,我们会说,大型语言模型将是一台玩具,同时也是一种工具,用来估计人类有多少知识在语言之中,有多少知识在语言之外,又有多少知识在语言内部深深浅浅的沟壑里,只能在跨地、跨国、跨越物种界限的漫长旅程中渐渐丢失。