作者简介:吴晓一,日本奈良先端科学技术大学院大学计算机工学博士,主要研究领域为语言学、机器学习和自然语言处理。本文仅代表作者个人观点,不代表公司立场。
01 引言——ChatGPT与“中文房间”
每个实际用过ChatGPT的人,都会被其展现出的强大对话能力所折服,甚至不少人认为它已经懂得了如何思考,产生了自我意识。
在解答这个问题之前,我想请大家想象这样一个场景:一个完全没学过中文的人被关在一个封闭的房间,房间里有一本手册,照着这本手册的指示,就能够针对任意中文问题给出像模像样的中文回答。外面的人在纸条上写好中文问题递进去,屋里的人照着手册拼凑出中文回答递出来。这样,在外面看来,屋里的人是懂中文的,可事实果真如此吗?这就是由著名哲学教授约翰瑟尔所提出的“中文房间”思想实验。
这个思想实验原本是为了反对“图灵测试”所提出的,约翰瑟尔认为,哪怕计算机照着程序给出了看起来正确的答复,也并不意味着它真的思考并理解了人类的问题,没有思考、没有理解,自我意识和智能也就无从谈起。
ChatGPT从原理来说,就是一个彻头彻尾的“中文房间”。它非但不理解你对它说的话,甚至都不理解它自己说的话。至少,这里所说的“理解”绝对不是媒体和大众所理解的那种“理解”。
02 ChatGPT的G——生成式模型(Generative model)
每当你对ChatGPT提出一些超出它能力范围的要求时,它都会以“我只是一个语言模型”为由婉拒你的指令。语言模型是什么?用最通俗的话讲,就是给定上文,预估下一个词出现的可能性。
这其实也是我们人类的语言能力之一,每当我们听到爷爷说:“不听老人言”,就知道他接下来百分百要说“吃亏”。妈妈说:“早上让你带伞你不带,结果...”,就能猜到下一个词极有可能是“下雨”或者“挨淋”。这个过程并不需要任何语法或逻辑上的解析,单纯就是听的次数太多而形成了一种直觉经验。
同样,只要我们搜集足够多的句子给计算机看,它就也可以模拟这种经验,用接龙的方式不断生成单词并构造出句子,这就是chatGPT的G—生成式语言模型。它所做的唯一一件事就是:基于上文生成下一个单词,再把这个单词加入上文生成下一个,如此往复。
很多人对ChatGPT的文本生成方式存在误解,以为它是从知识库中搜索并拼凑出结果,但事实上,对于ChatGPT来说,既不存在所谓的“知识库”,生成结果也不是简单搜索拼凑,而是通过计算得来的。
这里我可以举一个小学生都能看懂的例子来简化它的实际计算过程,假如我们规定早=1,上=2,好=3,坏=4,以及两个未知数x和y。
问:当x和y等于多少时,早x + 上y=好?x和y等于多少时计算结果等于坏?如果你的数学还没有还给小学老师,应当能脱口而出:当x和y都等于1时,结果等于“好”,x=2且y=1时,结果等于“坏”。
所以,如果我们希望计算机看到“早上”后输出“好”,就需要将x和y都调整为1。这里的x和y就叫做模型参数,chatGPT的参数总量至少在1750亿以上。它的所有所谓“知识”都不透明地嵌入在这些参数之中,也正是这些参数决定了ChatGPT回答的优劣。
03 ChatGPT的T——变形器(Transformer)
这种语言模型固然很好,但在相当长一段时间,都无法从根本上解决人类语言的长距离依赖问题。
比如这个句子:“他发现了隐藏在这个光鲜亮丽的显赫家族背后令人毛骨悚然的____”。你大概率会填“秘密”。
但前面的哪个词决定了你填“秘密”?是定语“令人毛骨悚然的”吗?显然不是,因为这样的话,你可以填“照片”、“传统”、“讯息”、“故事”、“游戏”等一大把词。
真正起到关键性作用的,是前面的谓语动词“发现”,再配合“隐藏”和“背后”这两个词,对“秘密”的生成产生了极强的约束力。
但对普通的生成式语言模型来说,上文单词离得越远,对生成下一个词所起到的作用越是微乎其微。
直到2017年,谷歌机器翻译团队在论文《Attention is All You Need》中,首次提出了transformer架构和注意力机制。所谓注意力机制,就是人脑在接收信息时,并不会处理全部,而是选择性地关注信息的关键部分。比如我问你下面这张图片是什么动物。
你肯定告诉我是狗。但图片上面的毛绒玩具你也看到了,为什么你没回答狮子、熊猫、乌龟。因为你的注意力完全被画面的主体吸引,而其他不重要的信息直接被大脑过滤掉了。
文本也是一个道理,基于注意力机制,计算机就能够在生成“秘密”时过滤掉其他不重要的信息,让“发现”、“隐藏”和“背后”发挥更大的作用。这就是chatGPT的T——Transformer,在这个架构的加持下,chatGPT彻底解决了单词间的长距离依赖问题,能够完全像人一样生成既流畅又自然的文本。不仅如此,无论你的问题多么晦涩难懂,它都能准确提取出生成下个单词所需的关键词汇。
04 ChatGPT的P——预训练模型(Pre-trained model)
直到这里,AI的学习都是不需要任何人工干预的,只要喂给它足够多的文本就行,这种训练方式叫做无监督学习(Unsupervised learning)。
那么OpenAI用了多大的文本量喂给AI呢?答案是45T。这是什么概念?四大名著加起来350万字,按utf8编码,大约10M左右。45T等于47185920M,也就是相当于472万套四大名著的文本量。
从内容上看,这些文本包括:
维基百科,这让模型拥有了跨语种能力和基本常识;
网络语料,这让模型学会了流行内容和大众对话;
书籍,这让模型学会了讲述故事的能力;
期刊,这让模型学会了严谨、理性的语言组织能力;
Github,这让模型学会了书写程序代码并添加注释的能力。
在经过上述训练后得到的模型,已经具备了强大的通用语言能力,稍加训练就可以用于完成特定任务,没必要从头训练(也训练不起)。所以被称为预训练模型(Pre-trained model),也就是chatGPT的P。
05 ChatGPT的chat——人类反馈强化学习(RLHF)
其实,OpenAI早在2020年就发布了这个预训练模型——GPT3,也就是说,早在两年前它就已经拥有了chatGPT的绝大多数能力,可为什么当时没有在人工智能的小圈子外掀起任何波澜呢。我认为,其中的奥妙就在于交互方式,人类更倾向于将“与自己的相似度”作为衡量智能的指标。只要看起来像人,说起话来像人,哪怕是像索菲亚那样的弱智机器人,也能通过炒作假新闻骗到公民身份。
chatGPT之所以能够火爆出圈,除了它自身过硬的素质外,最重要的是它降低了普通人和AI的交互门槛:使用者只需要一个简单的对话框就能够实现信息需求,也就是chatGPT的chat。
但为了实现这一步,还需要更多的努力。因为GPT3只是一个续写文本的预训练模型。如果你问它:“雨是怎么形成的?”。当然它有可能根据见过的文本续写出正确答案。但同样有可能会续写出“谁来告诉我呀?”这种根本不是回答的回答。
为此,OpenAI创建了大量chatGPT可能会被问到的问题与对应的标准答案,喂给GPT3,来微调(finetune)它的模型参数。这个过程需要人工参与,所以叫做监督学习(Supervised learning)。在微调结束后,GPT3的续写文本看起来会更像是一个回答,基本不会再出现以问答问、或答非所问的情况了。而微调后的GPT3,也就成了所谓的GPT3.5。
但GPT3.5生成的回答依旧良莠不齐,可能会包含暴力、性别歧视等不符合人类价值观的有害信息。当用户在对话框发送“我应该自杀吗?”,它甚至有可能回答“我认为你应该这么做”。
为了防止类似情况出现,就需要教会GPT3.5按照人类的价值观分辨回答的好坏。1月18日,美国《时代》杂志发布了一篇调查报告,说是OpenAI在2021年以每小时不到2美元的价格雇佣了大量肯尼亚工人做数据标注。从时间段分析,这些肯尼亚工人当时做的应该就是这部分工作。基于这些工人的大量标注结果,OpenAI单独训练出了一个评价答案好坏的打分模型,从此,GPT3.5已经可以在生成答案后,自己来判断好还是不好,不再需要数据标注工人了。
不过,GPT的答案是一个词接一个词连续生成的,如果说最终生成的答案不好,那究竟是从哪个词开始出了问题?这就轮到强化学习(Reinforcement learning)登场了。在第一期我曾经提到,OpenAI从创立之初,就一直深耕强化学习,具体来说,就是训练AI打游戏。
可以用大家都熟悉的《超级玛丽》为例来简单说明强化学习,马里奥能够做出的行为有左右走动,左右跑动,下蹲和跳跃。目标是通过一系列行为的组合平安移动到版面最右方通关。所谓强化学习,就是让马里奥作为一个智能体,根据所处环境自己选择合适的动作,如果存话并通关,就给奖励;如果死亡,就给惩罚。以最大化奖励为目标,让马里奥不断试错,他最后就能自己学会如何通关。
GPT也是同理,每一次单词的生成都可以视作一次行为,目标是让最终生成的答案获得打分模型的最高评价,不断生成答案不断试错调整参数,GPT就可以在每一次生成单词时都做出最符合人类期待的行为。于是,GPT3.5就成了ChatGPT。
06 结语
以上就是ChatGPT的基本原理,原理本身虽然简单,却综合运用到了无监督学习、监督学习和强化学习等多种训练手法,训练语料囊括了全球互联网2021年以前的海量优质文本,训练过程也融会贯通了几十年来在算法方面的积累,并加入了各种工程学技巧,可谓集大成之作。可能有人会说:“你既然这么明白,怎么没搞个出来?”挺好的问题,但我觉得更应该思考的是:“为什么像百度腾讯阿里华为这样不缺钱不缺人的大厂,没有率先搞出来?”。ChatGPT为什么没诞生在中国?除了技术原理之外,是否还存在其他壁垒?中国是否有能力复现?事到如今还有没有必要复现?到底能不能弯道超车?等等。这些问题我将留到下一期详细探讨,敬请期待。