在我们继续之前,我应该解释一下,为了论述的目的,我大多不会使用 ChatGPT 中的完整系统;相反,我通常会使用更简单的 GPT-2 系统,它有一个很好的特点,即它足够小,可以在标准的台式电脑上运行。
因此,对于我展示的所有内容,包括明确的沃尔弗拉姆语言(Wolfram Language)代码,你可以立即在你的计算机上运行。(点击这里的任何图片都可以复制其背后的代码 —— 译者注:请查看文末的 “原文链接”,在其中点击图片获取代码)。
例如,这里是如何获得上述概率表的。首先,我们必须检索底层的 “语言模型” 神经网:
稍后,我们将看看这个神经网的内部,并谈谈它是如何工作的。但现在我们可以把这个 “网络模型” 作为一个黑匣子应用于我们迄今为止的文本,并要求按概率计算出该模型认为应该选择的前五个词:
这就把这个结果变成了一个明确的格式化的 “数据集”:
如果重复 “应用模型” —— 在每一步中加入概率最高的词(在此代码中被指定为模型的 “决定”),会发生什么:
如果再继续下去会发生什么?在这种情况下(“零温度”),很快就会出现相当混乱和重复的情况:
但是,如果不总是挑选 “顶级” 词,而是有时随机挑选 “非顶级” 词(“随机性” 对应 “温度” 为 0.8)呢?人们又可以建立起文本:
而每次这样做,都会有不同的随机选择,文本也会不同 —— 如这 5 个例子:
值得指出的是,即使在第一步,也有很多可能的 “下一个词” 可供选择(温度为 0.8),尽管它们的概率下降得很快(是的,这个对数图上的直线对应于 n-1 的 “幂律” 衰减,这是语言的一般统计的特点):
那么,如果继续下去会发生什么?这里有一个随机的例子。它比顶层词(零温度)的情况要好,但顶多还是有点奇怪:
这是用最简单的 GPT-2 模型(来自 2019 年)做的。用较新和较大的 GPT-3 模型,结果更好。这里是用同样的 “提示” 产生的顶部文字(零温度),但用最大的 GPT-3 模型:
这是 “温度为 0.8” 时的一个随机例子:
好吧,ChatGPT 总是根据概率来选择下一个词。但是这些概率从何而来?让我们从一个更简单的问题开始。让我们考虑一次生成一个字母(而不是单词)的英语文本。我们怎样才能算出每个字母的概率呢?
我们可以做的一个非常简单的事情就是取一个英语文本的样本,然后计算不同字母在其中出现的频率。因此,举例来说,这是计算维基百科上关于 “猫”(cat) 的文章中的字母:
服务热线
1391-024-6332