ChatGPT在做什么… 以及为什么它能发挥作用?
ChatGPT在做什么… 以及为什么它能发挥作用?

ChatGPT在做什么… 以及为什么它能发挥作用?

Tags
Published
notion image

只是每次增加一个词而已

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