如果你知道什么是马尔可夫链,就很容易把大语言模型想象成一个非常大的马尔可夫链,如果你知道,就把它等同于”句子补全“。
想象一下,你让一台计算机阅读世界上的每一本书,然后让它为书中的每一个三字短语构建一个列表。然后,对于每一个短语,你让它列出它所看到的在该短语之后出现的所有单词,并根据出现的频率进行排序。
然后你给它的短语是:
猫坐在___ |
然后你让它根据自己列出的单词表预测下一个单词是什么。它几乎肯定会预测出 "mat"(垫子),因为在全世界所有的英语中,这个短语最常用的完成方式就是 "mat"。
同样,如果你给它
美国首都是___ |
它可能会给出 "华盛顿特区",因为这同样是一个非常普通的短语。
但有趣的事情已经发生了,因为计算机看起来好像 "知道 "了什么:首都。但其实不然,它只是在进行单词补全。
现在放大 现在,把这个句子完成法放大,放大到几百万倍,你就得到了 ChatGPT,人人都在谈论的 LLM。你可以向 ChatGPT 提出一个问题,它会给出一个看似答案的东西.
问:猫坐哪里? chatGPT:猫坐在垫子mat上.... |
它不仅 "知道 "这个词应该是 "mat",还能告诉你为什么。但这并没有什么本质上的不同。它给出了答案,因为根据统计,答案通常是问题的后续。
它给出了上下文,因为上下文就是通常围绕这个短语的内容。
它仍然只是在做数学题,甚至不是非常复杂的数学题,只是规模非常大。它实际上什么也 "不知道"。
量变到质变 然而,神奇的事情发生了。在某一时刻,它所做的事情从看似完成句子变成了看似理解。
什么才算是理解,这是一个哲学问题,也是一个备受争议的问题,有些人认为计算机在这方面已经开始表现出真正的理解能力,但大多数人都认为这还只是数学而已。
不过,这究竟是真实的,还是令人信服的模拟,其实并不重要:在某些时候,看起来像理解一样,几乎和真正理解一样有用。
为计算机提供上下文 迄今为止,计算机在处理数据方面一直非常出色:它们可以堆积大量数据,对其进行分类、过滤、移动,然后再吐出来,所有这些都具有巨大的规模和惊人的速度。但它们无法做到的是将数据转化为信息。它们还无法理解自己在处理什么。但现在,如果你给计算机提供上下文,它似乎就能对这些信息进行推理。
它可从一组相关的事实中得出结论。(例如苏珊的年龄多大)
真正有趣的是,这组事实并不在它所接受的训练范围内。
当它阅读世界上所有的书时,苏珊的年龄并不在其中。事实上,我从来没有告诉过它苏珊的年龄。
预测下一个最可能的单词就成了推理。
这就是让我和其他许多人都感到惊奇和不可思议的结果,它让 LLMs 变得如此有趣。