Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

1.2 LLM 从词(词元)预测中学到了什么?

“在任何时刻,我们知道多少?我相信,我们知道的远比自己以为知道的更多。” - Agatha Christie, 《魔手》

词预测究竟有什么特殊之处,以至于本书一开始就要讨论它?事实证明,大语言模型仅仅通过学习预测词语,就能以一种使其能力变得非常强大的方式获得海量知识。

要理解这个过程,可以先想一想人类如何获得知识和词汇。能够流利使用一种语言的人,在理解和生成语言时会调用大量知识。这些知识以许多形式存在,其中最明显的或许就是词汇:我们对词语及其意义和用法所拥有的丰富表示。因此,词汇为探索人类如何从文本中获取知识提供了一个有用的观察视角。

例如,据估计,年轻的美国英语母语者拥有 30,000 到 100,000 个词的词汇量(具体数值取决于估算所用的资源,以及如何定义“知道一个词”)。这些事实带来一个简单的推论:为了在 20 岁时达到实际观察到的词汇水平,儿童必须日复一日、每天学习约 7 到 10 个词。对小学高年级到高中阶段词汇增长的实证观察与这一速度相符。儿童如何达到如此快的词汇增长速度?研究表明,大部分知识都是阅读的副产品(Landauer and Dumais, 1997)。阅读是一种丰富的上下文处理过程;我们并不是孤立地逐个学习词语。事实上,在学习的某些阶段,词汇量的增长速度甚至会超过学习者接触新词的速度!这说明每当我们阅读一个词时,也在加深对其他相关词语的理解。

这些事实与 20 世纪 50 年代提出的分布假说(distributional hypothesis,第 5 章)一致。该假说认为,意义的某些方面可以完全从我们一生中接触的文本里学到,其依据是词语与共同出现的其他词语之间的复杂联系(以及那些词语与其共现词语之间的联系)。其基本思想是:如果两个词出现在非常相似的分布中,也就是它们相邻的词语相似,那么这两个词很可能具有相似的意义。

例如,假设你在看到下面两句话时并不知道英语单词 difficult 的含义:

It was difficult to make it up the steep hill.

What a difficult decision!

但假设你此前已经见过这些句子里的许多词语和概念,只不过当时出现的是 hard:

I found climbing the steep hill hard.

It was a very hard decision.

分布假说的观点是:观察到 difficult 与 hard 出现在相似的上下文词语附近(如 decisions、steep hills),可能会使你学到 difficult 与 hard 的含义相近。

分布假说表明,我们既能从文本中获得数量惊人的知识,又能在最初习得很久之后继续运用这些知识。当然,来自现实世界交互的落地信息(grounding),或者视觉等其他模态的信息,可以帮助我们构建能力更强的模型;然而,即便只有文本,其作用也已经十分显著。

现代 LLM 革命之所以成为可能,是因为大语言模型只需在(非常)庞大的文本语料库中,根据上下文一遍又一遍地学习预测下一个词,就能学到语言知识、概念知识和世界知识。我们把这种通过预测词语来归纳知识的过程称为预训练(pretraining)。LLM 在自然语言任务上的出色表现,源自它们在预训练中学到的知识。

这些知识是什么?模型通过学习预测下列下划线位置缺失的词(实际缺失词显示在方括号中),能够归纳出什么?在继续阅读下一段之前,请先思考每个例子:

With roses, dahlias, and peonies, I was surrounded by ___ [flowers]

The room wasn’t just big it was ___ [enormous]

The square root of 4 is ___ [2]

The author of “A Room of One’s Own” is ___ [Virginia Woolf]

The professor said that ___ [he]

模型可以从第一句话中学到本体论事实,例如玫瑰、大丽花和牡丹都是花。从第二句话中,模型可以学到 enormous 与 big 位于同一个程度尺度上,但程度更高。系统可以从第三句话中学习数学,从第四句话中学习有关世界和历史作家的事实。最后,如果模型反复接触最后一句这样的句子,它可能会把 professor 只与男性代词联系起来;它也可能学到其他类似关联,进而导致模型对不同人群作出不公平的行为。

1.2.1 提示 = 条件生成 = 词元预测!

你们都使用过提示(prompt):用户向语言模型发出的一段文本,用来让模型执行某种有用的任务。事实证明,提示之所以有效,依靠的正是词(更准确地说,词元)预测这一思想!当我们向 LLM 输入一段文本,也就是一个提示时,只需让 LLM 给出在该提示条件下最有可能出现的词,就能得到模型的响应。LLM 以提示和随后已生成的词元为条件,逐词继续生成文本。依据词元在先前上下文条件下的概率来生成词元,称为条件生成(conditional generation),因为我们生成的是在过去文本条件下概率较高的词元。

为什么条件生成能够产生问题答案或遵循指令?直观解释是:答案是问题的高概率后续文本,因为系统在训练时见过大量跟在问题之后的答案。

我们可以在一个更明确的例子中理解这种直觉:提示由一个问题和一个表示接下来应当出现答案的词元 A: 构成,如下所示:

Q: Who wrote ‘‘The Origin of Species"? A:

给定这个问题和 A: 词元,哪个词出现的概率最高?语言模型在训练时见过大量常见问题列表和包含事实型问题的表格,因此,一个优秀的语言模型会为 Charles 在这一问题上下文中出现赋予较高概率!如果我们再把 Charles 加入上下文:

Q: Who wrote ‘‘The Origin of Species"? A: Charles

那么,即便去掉 A: 词元,同类训练数据也会使语言模型为 Darwin 作为下一个可能词赋予较高概率。此外,语言模型还会通过一种称为指令微调(instruction tuning)的方法接受进一步训练,在这个过程中,它们会看到数十万个问题与答案或其他指令(第 1.6.2 节)。因此,即使语言模型没有在训练时见过这个完全相同的句子,它也很可能见过其他有关作者的问题,例如:

Who wrote ‘‘The Dream of the Red Chamber"? Cao Xue Qin

语言模型能够从训练数据中泛化,因此可以学到问题之后往往跟着答案。更不用说,《物种起源》以及大量介绍达尔文的书籍、网站和论文,本身就包含在模型庞大的训练数据中。

1.2.2 香农游戏与预测引擎的起源

最后,让我们讨论预测引擎的起源,并介绍香农游戏(Shannon game)这一隐喻,它有助于我们思考训练过程。

预测文本中后续词语的思想由计算机科学家克劳德·香农(Shannon, 1951)以及心理学家 George Miller 和 Jennifer Selfridge(Miller and Selfridge, 1950)在 20 世纪 40 年代末正式提出。通过一种有时称为“香农游戏”的文本预测游戏,可以很直观地理解这一思想。

如果我和你玩香农游戏,我会选择一小段文本,而你必须从左到右逐个猜出其中的词。你先猜第一个词;猜对了,我就告诉你猜对了;猜错了,我会告诉你正确的第一个词,然后你继续猜第二个词。我们以这种方式继续进行:每猜一个词,你都把到目前为止的正确文本写下来,以帮助自己预测接下来的词。

在 Shannon 最初设计的游戏中,参与者猜的是字母,而不是词或词元。他给出了下面这个两人游戏的简化例子(字符集合只有 26 个字母和空格)。每组第一行是原始文本,第二行是猜测结果:短横线表示猜对;出现字母则表示猜错,玩家必须被告知正确字母:

THE ROOM WAS NOT VERY LIGHT A SMALL OBLONG READING LAMP ON THE DESK----ROO------NOT-V-----I------SM----OBL--- REA----------O------D---\begin{aligned} &\texttt{THE ROOM WAS NOT VERY LIGHT A SMALL OBLONG READING LAMP ON THE DESK}\\ &\texttt{----ROO------NOT-V-----I------SM----OBL--- REA----------O------D---} \end{aligned}

SHED GLOW ON POLISHED WOOD BUT LESS ON THE SHABBY RED CARPETSHED GLO--O- P-L-S-----O---BU--L-S--O------SH-----RE--C-----\begin{aligned} &\texttt{SHED GLOW ON POLISHED WOOD BUT LESS ON THE SHABBY RED CARPET}\\ &\texttt{SHED GLO--O- P-L-S-----O---BU--L-S--O------SH-----RE--C-----} \end{aligned}

在上面的例子中,玩家正确猜到第一个词是 THE;他没能猜出 ROOM,必须先被逐个告知前三个字母,才正确猜出 M;之后依此类推。Shannon 最初提出这种方法,是为了研究自然语言包含多少信息,这源自他对信息论及数据压缩实际应用的兴趣。例如,从该例中可以看到,在词语开头或存在许多可能后续内容的位置,玩家更常需要纠正(例如在 “a”“the” 或其他形容词之后,可能出现的形容词非常多)。

香农游戏为理解语言中哪些部分容易预测、哪些部分难以预测提供了有用的直觉,也帮助我们回答一个深层的语言学问题:语言把信息储存在哪里!我们建议你和朋友亲自试一试!在第 1.6 节关于学习的讨论中,我们将看到如何把“猜下一个词,猜错时得到纠正”这一思想转化为预训练的概念;预训练正是大语言模型训练的核心。