ChatGPT总是根据概率选择下一个词

ChatGPT总是根据概率选择下一个词

首页卡牌对战四叶草剧场wiki更新时间:2024-06-07

欢迎来到四叶草堂,我是龙笑生。ChatGPT总是根据概率选择下一个词。模型是什么?更多精彩内容,敬请关注“四叶草堂”,今天继续分享《这就是ChatGPT》一书的精彩部分。

ChatGPT可以自动生成类似于人类书写的文本,这非常了不起,也非常令人意外。它是如何做到的呢?这为什么会奏效呢?首先需要解释,ChatGPT从根本上始终要做的是,针对它得到的任何文本产生“合理的延续”。这里所说的“合理”是指,“人们在看到诸如数十亿个网页上的内容后,可能期待别人会这样写”。假设我们手里的文本是“The best thing about AI is its ability to”。想象一下浏览人类编写的数十亿页文本(比如在互联网上和电子书中),找到该文本的所有实例,然后看看接下来出现的是什么词,以及这些词出现的概率是多少。ChatGPT实际上做了类似的事情,只不过它不是查看字面上的文本,而是寻找在某种程度上“意义匹配”的事物。最终的结果是,它会列出随后可能出现的词及其出现的“概率”(按“概率”从高到低排列)。比如ChatGPT写一篇文章时,它实质上只是在一遍又一遍地询问“根据目前的文本,下一个词应该是什么”,并且每次都添加一个词(更准确地说,它是每次都添加一个“标记”(token),而标记可能只是词的一部分)。

有人可能认为应该选择“排名最高”的词,即分配了最高“概率”的词。然而,这里出现了一点儿玄学的味道。出于某种原因(也许有一天能用科学解释),如果我们总是选择概率排名最高的词,通常会得到一篇非常“平淡”的文章,完全显示不出任何“创造力”(有时甚至会一字不差地重复前文。但是,如果有时随机性选择排名较低的词,就会得到一篇“更有趣”的文章。存在随机性意味着,如果我们多次使用相同的提示(prompt),每次都有可能得到略有不同的文章。ChatGPT使用一个所谓的“温度”参数来确定低排名词的使用频率,对于文章生成来说,“温度”为0.8似乎最好。需要指出的是,即使在温度为0.8的情况下,也有许多可能的“下一个词”可供选择,尽管它们的概率按幂律迅速减小。

ChatGPT总是根据概率选择下一个词,但是这些概率是从何而来的呢?让我们从一个更简单的问题开始:考虑逐字母(而非逐词)地生成英文文本。怎样才能计算出每个字母应当出现的概率呢?我们可以拿一段英文文本样本,然后计算其中不同字母的出现次数,例如统计维基百科上“cats”(猫)的条目中各个字母的出现次数。有了足够多的英文文本,我们不仅可以对单个字母或字母对(二元字母)得到相当好的估计,而且可以对更长的字母串得到不错的估计。如果使用逐渐变长的n元字母的概率生成“随机的词”,就能发现它们会显得越来越“真实”。现在假设像ChatGPT所做的那样,我们正在处理整个词,而不是字母,英语中有大约50000个常用词。通过查看大型的英文语料库(比如几百万本书,总共包含几百亿个词),我们可以估计每个词的常用程度。使用这些信息,就可以开始生成“句子”了,其中的每个词都是独立按概率进行选择的,概率与它们在语料库中出现的概率相同。接下来如何做得更好呢?就像处理字母一样,我们可以不仅考虑单个词的概率,而且考虑词对或更长的n元词的概率。可以想象,如果能够使用足够长的 n 元词,我们基本上会“得到一个ChatGPT文案,也就是说,我们能够生成像文章一样长的词序列且符合最大的正确概率。然而,我们根本不可能有足够的英文文本来推断出这些概率,在网络爬取结果中最多可能有几千亿个词,加上电子书中可能还有的另外几百亿个词。相比之下,假设只有4万个常用词,那么二元词可能的数量就达到了16亿,而三元词可能的数量更多,达到了60万亿。换言之,我们无法根据已有的文本来估计三元词的所有概率,更不用说n元词的概率了。为此,我们能做些什么呢?最佳思路是建立一个模型来估计序列出现的概率(即使在已有的文本语料库中从未看到过这些序列),“大语言模型”ChatGPT的核心正是模型已经被构建得能够很好地估计这些概率了。

模型是什么?假设像16世纪末的伽利略一样,你想知道从比萨斜塔各层掉落的炮弹分别需要多长时间才能落地。当然,你可以在每种情况下进行测量并将结果制作成表格。不过,你还可以运用物理理论来建立一个模型,用它提供某种情况下的计算答案,而不仅仅是在每种情况下测量和记录。需要指出的是,从来没有“无模型的模型”,任何模型都有某种特定的基本结构,以及若干个用于拟合数据的“旋钮”(可以调整的参数)。ChatGPT使用了许多这样的“旋钮”—实际上有1750亿个,ChatGPT用这些数量的参数生成了一个能“足够好”地计算下一个词概率的模型,从而生成合理的文章。

几个世纪以来,我们已经知道可以用一些“较为简单的数学工具”为来自物理学实验的数据建模。但是对于ChatGPT,我们需要为人脑产生的人类语言文本建立模型,对于这样的类人任务(human-like task)模型,(至少目前为止)还没有“合适的数学工具”可用,那么它的模型可能是什么样的呢?

假设我们的目标是为人类在识别图像方面的能力生成一个模型,真正需要解决的问题是:面对一个模糊的图像,并且不知道其来源,人类会用什么方式来识别它?目前,对于图像识别这样的任务,我们基本上已经知道如何构建不错的函数了。一般情况下,如果函数给出的结果总是与人类的意见相符,那么我们就有了一个“好模型”。例如,改变数字图像2中的一些像素,我们可能会觉得,仍应该认为这是数字2。但是随着更多像素发生改变,我们又应该能坚持多久呢?这是一个关于人类视觉感知的问题。针对不同的对象,如蜜蜂或章鱼的图像,答案无疑会有所不同,而对于虚构的外星人图像,答案则可能会更加不同。图像识别任务的函数,可以用“数学理论”来证明其有效性吗?不能,因为要做到这一点,必须拥有一个关于人类所做事情的数学理论,然而目前我们还没有合适的理论依据(相关性而不是因果性)。

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved