我首先要说明一下,我将把重点放在正在发生的事情的大的方向上,虽然我会提到一些工程细节,但我不会深入研究它们。(我所说的实质内容也同样适用于目前其他的 “大型语言模型” LLM 和 ChatGPT)。首先要解释的是,ChatGPT 从根本上说总是试图对它目前得到的任何文本进行 “合理的延续”,这里的 “合理” 是指 “在看到人们在数十亿个网页上所写的东西之后,人们可能会期望某人写出什么”。因此,假设我们已经得到了 “人工智能最好的是它能去做 ……” 的文本(“The best thing about AI is its ability to”)。想象一下,扫描数十亿页的人类书写的文本(例如在网络上和数字化书籍中),并找到这个文本的所有实例 —— 然后看到什么词在接下来的时间里出现了多少。
ChatGPT 有效地做了类似的事情,除了(正如我将解释的)它不看字面文本;
它寻找在某种意义上 “意义匹配” 的东西。但最终的结果是,它产生了一个可能出现在后面的词的排序列表,以及 “概率”。
值得注意的是,当 ChatGPT 做一些事情,比如写一篇文章时,它所做的基本上只是反复询问 “鉴于到目前为止的文本,下一个词应该是什么?” —— 而且每次都增加一个词。(更准确地说,正如我将解释的那样,它在添加一个 “标记”,这可能只是一个词的一部分,这就是为什么它有时可以 “编造新词”)。在每一步,它得到一个带有概率的单词列表。但是,它究竟应该选择哪一个来添加到它正在写的文章(或其他什么)中呢?人们可能认为它应该是 “排名最高” 的词(即被分配到最高 “概率” 的那个)。但是,这时就会有一点巫术开始悄悄出现。因为出于某种原因 —— 也许有一天我们会有一个科学式的理解 —— 如果我们总是挑选排名最高的词,我们通常会得到一篇非常 “平淡” 的文章,似乎从来没有 “显示出任何创造力”(甚至有时一字不差地重复)。但是,如果有时(随机的)我们挑选排名较低的词,我们会得到一篇 “更有趣” 的文章。这里有随机性的事实意味着,假如我们多次使用同一个提示,我们也很可能每次都得到不同的文章。而且,为了与巫术的想法保持一致,有一个特定的所谓 “温度” 参数(temperature parameter),它决定了以什么样的频率使用排名较低的词,而对于论文的生成,事实证明,0.8 的 “温度” 似乎是最好的。(值得强调的是,这里没有使用任何 “理论”;这只是一个在实践中被发现可行的问题)。例如,“温度” 的概念之所以存在,是因为恰好使用了统计物理学中熟悉的指数分布,但没有 “物理” 联系 —— 至少到目前为止我们如此认为。)在我们继续之前,我应该解释一下,为了论述的目的,我大多不会使用 ChatGPT 中的完整系统;相反,我通常会使用更简单的 GPT-2 系统,它有一个很好的特点,即它足够小,可以在标准的台式电脑上运行。因此,对于我展示的所有内容,包括明确的沃尔弗拉姆语言(Wolfram Language)代码,你可以立即在你的计算机上运行。(点击这里的任何图片都可以复制其背后的代码 —— 译者注:请查看文末的 “原文链接”,在其中点击图片获取代码)。例如,这里是如何获得上述概率表的。首先,我们必须检索底层的 “语言模型” 神经网:稍后,我们将看看这个神经网的内部,并谈谈它是如何工作的。但现在我们可以把这个 “网络模型” 作为一个黑匣子应用于我们迄今为止的文本,并要求按概率计算出该模型认为应该选择的前五个词:这就把这个结果变成了一个明确的格式化的 “数据集”:如果重复 “应用模型” —— 在每一步中加入概率最高的词(在此代码中被指定为模型的 “决定”),会发生什么:如果再继续下去会发生什么?在这种情况下(“零温度”),很快就会出现相当混乱和重复的情况:但是,如果不总是挑选 “顶级” 词,而是有时随机挑选 “非顶级” 词(“随机性” 对应 “温度” 为 0.8)呢?人们又可以建立起文本:而每次这样做,都会有不同的随机选择,文本也会不同 —— 如这 5 个例子:值得指出的是,即使在第一步,也有很多可能的 “下一个词” 可供选择(温度为 0.8),尽管它们的概率下降得很快(是的,这个对数图上的直线对应于 n-1 的 “幂律” 衰减,这是语言的一般统计的特点):那么,如果继续下去会发生什么?这里有一个随机的例子。它比顶层词(零温度)的情况要好,但顶多还是有点奇怪:这是用最简单的 GPT-2 模型(来自 2019 年)做的。用较新和较大的 GPT-3 模型,结果更好。这里是用同样的 “提示” 产生的顶部文字(零温度),但用最大的 GPT-3 模型: