Skip to content

LLM 究竟是如何工作的?

How do LLMs work?

让我们来彻底搞清楚 LLM 究竟是如何工作、如何生成文本的。在深入了解 LLM 之前,我们需要先理解「条件概率」。设想有一群 14 个人:

llms p23 1

  • 其中一些人喜欢网球
  • 一些人喜欢足球
  • 少数人两者都喜欢
  • 还有少数人两者都不喜欢

条件概率衡量的是:在已知另一个事件已经发生的前提下,某个事件发生的概率。

llms p24 1

如果两个事件分别是 A 和 B,我们将其记作 P(A|B),读作「在 B 发生的条件下,A 发生的概率」。举例来说,如果我们要预测今天是否会下雨(事件 A),那么已知今天多云(事件 B)这一信息,就会影响我们的预测。由于多云天气下更容易下雨,我们会说条件概率 P(A|B) 较高。这就是条件概率!那么,这跟 GPT-4 这类 LLM 有什么关系呢?这些模型的任务,正是去预测(或者说猜测)序列中的下一个词。

llms p25 1

这本质上就是一个条件概率问题:在已经出现的这些词的基础上,接下来最可能出现的词是什么?为了预测下一个词,模型会针对每一个可能的候选词,基于前面已经出现的词(即上下文)计算其条件概率。

llms p25 2

条件概率最高的那个词,会被选作预测结果。

LLM 学习到的,其实是一个关于词序列的高维概率分布。

llms p26 1

而这个分布的参数,正是训练得到的权重!训练(或者更准确地说,预训练)本质上是一种监督学习。但这里有个问题:如果我们总是选择概率最高的那个词,输出就会变得重复单调,这会让 LLM 几乎失去实用价值,也扼杀了它的「创造力」。

llms p27 1

这正是「温度」(temperature)登场的地方。让我们来搞清楚它到底在做什么……为了让 LLM 更有创造力,模型不再是直接选出「最佳」token(为了方便理解,我们可以先把 token 想象成词),而是对预测结果进行「采样」。

llms p27 2

所以即便「Token 1」的得分最高,由于我们是在采样,它也未必会被选中。

此时,温度会对 softmax 函数施加如下调整,进而影响整个采样过程:

llms p28 1

让我们来看一个代码示例!

llms p28 2

  • 温度较低时,概率会集中在最可能的那个 token 上,生成结果趋近于贪心解码。
  • 温度较高时,概率分布会趋于均匀,生成结果会变得高度随机、充满不确定性。

这就是 LLM 工作和生成文本的方式。

本站内容仅供学习交流,版权归原作者所有。