LESSON 29 · 卷 大语言模型

串讲:从 N-gram 到 Transformer

学了这么多细节,怎么把它们重新串成一条线?——每一代技术,都是来解上一代死结的

第 1 站

不学新东西,只把学过的串成一条线

到上一课为止,你已经亲手「逼出」了从 N-gram 到 Transformer 的每一块零件。但零件多了,细节难免忘—— N-gram 为什么不行?词向量到底神在哪?RNN 和 LSTM 差在哪一步?这一课不引入任何新概念, 只做一件事:把这些珠子重新串成一条项链

串这条线,只需要记住一个叙事母题:语言难在哪,每一代技术就在补哪一刀。语言的难,可以归成三句话——

序列词有先后,「我打你」和「你打我」字一样、意思反。模型得处理顺序
上下文一个词的意思取决于周围。「苹果」是水果还是公司?得看上下文
稀疏能组成的句子近乎无限,再大的语料也只见过其中极小一撮——大量合理组合从没出现过

接下来六站,每一站都是一次「上一代留下一个死结 → 这一代用一个新想法解开它 → 但又冒出新的死结」。 顺着这条链走一遍,整套 NLP 技术史就立起来了。

第 2 站

N-gram:最朴素的起点——数数

最早的语言模型干脆不懂语法、不懂语义,只会数数。它赌的是一条朴素假设(马尔可夫假设): 下一个词只跟前面紧挨着的那几个词有关。只看前 1 个词叫 2-gram,看前 2 个叫 3-gram,以此类推。

怎么用?把语料里的搭配频率数出来就行。比如要接「今天天气很 ___」,就去数「很」后面都跟过些什么:

「很」→ 好(38%)、冷(21%)、热(15%)、大(9%)……
于是模型赌概率最高的那个:「好」。

这招在短搭配上意外地好用,撑起了手机输入法和早期语音识别几十年。可它有两道硬伤。头一道是稀疏: 词表动辄五万,3-gram 的组合就有 5 万³ ≈ 125 万亿种,再大的语料也只见过其中极小一撮—— 你随口说一句没人说过的话,它数出来的频率就是 0,于是整句话被判「不可能」。后人用各种「平滑」给零概率打补丁,终究治标不治本。

第二道是记性短:它只回头瞄两三个词。「他在法国长大……(中间隔了一长串)……所以他说一口流利的 ___」, 这种跨越几十个词的线索,N-gram 根本够不着。

诞生于想接出下一个词,但又最省事——能数数就别建模。
解决了统计频率给出「下一个词」的概率,简单、快、可解释。
但留下稀疏:没数到的组合概率直接为 0;② 记性短:只看前几个词;③ 符号孤立:「猫」和「小猫」被当成毫不相干的两个符号。
第 3 站

词向量:先把「符号孤立」这一刀补上

N-gram 把每个词当成一个孤立编号,机器永远不知道「猫」和「小猫」有关系。词向量换了个思路:把每个词变成一组数字(几百维的向量),让意思相近的词,向量也相近——夹角小、余弦相似度高(第 2 课)。

这些数字怎么来?靠一条朴素得近乎废话的假设——近朱者赤:一个词的意思,由它常出现的上下文决定(第 15 课)。 训练时让模型反复做一道完形填空:拿一个词去预测它周围的词(或反过来)。「猫」和「小猫」总出现在相似语境里 (「___ 在睡觉」「喂 ___」),一来二去就被挤到了相邻的位置。

最惊艳的是,连词与词之间的关系都被编码成了向量空间里的方向,于是加加减减就能做类比:

国王 − 男人 + 女人 ≈ 女王
北京 − 中国 + 法国 ≈ 巴黎

这些都不是人为设计,而是从语料里自然浮现的。语义第一次有了坐标,举一反三有了立足点。

诞生于N-gram 把词当孤立符号,无法举一反三。
解决了稠密向量编码词义,相近的词靠在一起,泛化有了立足点。
但留下词向量只是「零件」,本身还不是语言模型;而且它是静态的——「苹果」在所有句子里都是同一个向量,区分不了水果和公司。
第 4 站

神经网络语言模型:用词向量绕开「稀疏」

光有词向量还不算语言模型——它本身还不会「预测下一个词」。把词向量喂进一个神经网络来干这件事, 就是前馈神经网络语言模型(第 16 课):把前几个词的向量拼接起来,过几层网络, 最后用 Softmax(第 11 课)吐出「下一个词是谁」的概率分布。

关键的飞跃在泛化。N-gram 见过「我吃苹果」,碰到「我吃梨」却傻眼——因为「梨」是个它没数到的新符号。 而 NNLM 知道「苹果」和「梨」的向量很近,于是「我吃苹果」学到的本事,能自动迁移到「我吃梨」上。 稀疏的诅咒,就这样被词向量的相似性绕开了。这是 2003 年 Bengio 等人埋下的伏笔,也是日后一切神经语言模型的雏形。

但它身上还留着 N-gram 的一道旧疾:输入是固定长度的——一次只能吃前面 N 个词, 超出窗口的更早信息,照样看不见。要真正记住远处,还得换一种结构。

诞生于N-gram 的稀疏——没见过的组合概率为 0。
解决了借词向量的泛化能力,对没见过的合理组合也能给出合理概率。
但留下仍是固定窗口:一次只能看前面 N 个词,看不到更早的上下文,长依赖依旧抓不住。
第 5 站

RNN:给网络装上「记忆」,砸开固定窗口

固定窗口的根子,在于网络一次只吃固定数量的词。RNN(第 17 课)换了个读法——逐词阅读、边读边记: 每读一个词,就把「这个词 + 上一刻的记忆」揉成一份新的记忆(隐藏状态),再传给下一步。

这就像你读小说:脑子里有一份不断更新的「剧情梗概」,读到新一句就往里揉一点。理论上,这份记忆能携带任意长的历史, 固定窗口的枷锁被打破了;而且整条序列共用同一套权重,参数不会随句子变长而膨胀。

可惜理论很丰满。记忆每走一步就被整个重写一次,早期信息一路被冲淡——这正是第 24 课那个老对手换了个方向又来了:梯度沿时间连乘,几十步后衰减到几乎为零(梯度消失),于是 RNN 的记性其实传不远。 更要命的是,它必须算完这一步才能算下一步,天生串行,GPU 上万个核心只能干瞪眼。

诞生于前馈模型的固定窗口,看不到更早的词。
解决了用循环的隐藏状态当记忆,处理变长序列,原则上不限上下文长度。
但留下梯度消失:信息沿时间连乘,几十步后早期记忆被稀释,记不远;② 必须一个词接一个词地算,无法并行
第 6 站

LSTM:给记忆装阀门,让它传得更远

RNN 记不远,是因为记忆每一步都被无差别地重写。LSTM(第 18 课)给记忆装上了三道阀门(取值 0~1 的开关):遗忘门决定旧记忆丢多少、输入门决定新信息写多少、输出门决定这一刻读出多少。

阀门之外,还有一条专门的「细胞状态」像传送带一样贯穿始终——信息可以几乎原封不动地从头滑到尾, 只在阀门处被有选择地增删。于是梯度不再被无脑连乘冲垮,重要信息能被守住几十步。 这条「记忆高速路」,和第 24 课残差连接的「梯度高速路」是同一个灵魂:给信息留一条少受干扰的直通道

举个例子:「我在法国长大,从小耳濡目染……所以我能说一口流利的 法语。」 LSTM 能把「法国」这条线索一路守到句尾、接对「法语」——这是普通 RNN 很难做到的。

但最硬的那道墙纹丝不动:LSTM 依然要一个词接一个词地按顺序处理,无法并行。模型规模的天花板,仍卡在这里。

诞生于RNN 的梯度消失——记忆传不远。
解决了门控 + 细胞状态守住长程信息,长依赖大为改善。
但留下最硬的那道墙还在:LSTM 依然要按顺序逐词处理,无法并行,模型规模因此被卡住天花板。
第 7 站

Transformer:扔掉循环,让所有词同时开口

串行这道墙,2017 年被注意力机制(第 19 课)一拳砸开。它的主张极简:扔掉循环,让每个词直接「查询」句中所有词——拿自己的 Query 去和所有词的 Key 比对,算出一组注意力权重, 再按权重把大家的 Value 汇总过来。「它太累了」里的「它」指谁?让「它」自己把注意力投到那个名词上就行。

这一下解决了两件大事。其一,任意两个词之间一步直达,再远的依赖也不衰减,LSTM 苦苦维持的长程记忆变得轻而易举。 其二,也是更致命的——这套计算可以完全并行:一句话里所有词的注意力同时算,本质就是几个大矩阵相乘, 正好喂饱 GPU 上万个核心。困住 RNN / LSTM 几十年的串行枷锁,就此解开。

并行解锁了规模,而规模本身就带来了能力——参数从亿级冲到千亿、万亿,模型涌现出推理、翻译、写代码等谁都没预设的本事。 把多头注意力、FFN、残差与层归一化(第 20~24 课)拼成一个块,叠几十上百层,配上分词器(第 22 课)和 「预训练 → 监督微调 → RLHF」三阶段训练(第 25 课),就长成了 ChatGPT。

当然,它也留下了自己的新麻烦:让每个词都看所有词,代价是 的开销(第 26 课)——序列一长就贵得吓人。 这道账单,正是下一课要讲的前沿仍在攻打的难题之一。

诞生于RNN / LSTM 必须串行,规模上不去。
解决了自注意力实现一步直达的长依赖 + 大规模并行,规模与能力同时起飞。
但留下注意力是 的(第 26 课),长序列代价高昂——这道账单,正是当下前沿仍在攻打的难题之一。
第 8 站

一张图看完这条接力

把六代技术摆成一条时间线,每一段连线上写着「逼出下一代的那个死结」——这就是整部 NLP 演变史的骨架:

症结:猫 ≠ 小猫症结:组合没见过 = 0症结:窗口固定症结:记不远症结:必须串行1N-gram数数2词向量稠密语义3神经语言模型会泛化4RNN有记忆5LSTM记得久6Transformer能并行
图 29-1从 N-gram 到 Transformer 的接力:每一代都不是凭空冒出来的,而是被上一代留下的「症结」逼出来的。读懂这条线上每个箭头写的是什么,你就握住了整部 NLP 技术演变史的逻辑。

退一步看这张图,会发现一个反复出现的螺旋:每一代解决了一个老问题,又亲手制造出一个新问题, 而下一代正是冲着这个新问题来的。技术从来不是一串孤立的发明,而是一条「问题 → 解药 → 新问题」不断咬合的链。 这也正是这套教程从第 1 课起反复示范的那条主线——没有人一开始就「想到了」注意力,是一个个具体的死结,把它一步步逼了出来。

更要紧的是:这条链到 Transformer 并没有停 的开销、静态的知识、纯文本的局限…… 都是它留下的新死结,正被今天的研究者用各种新想法去解。下一课,我们就顺着这条还在延伸的链,走进「正在发生」的前沿。

本课核心 · TAKEAWAY

语言难在序列、上下文、稀疏。N-gram 用数数起步,词向量补上语义, 神经语言模型补上泛化,RNN 补上记忆,LSTM 让记忆传得远, Transformer 用注意力换来并行与规模。每一代,都是来解上一代死结的。

这条链,请你记成一句话

  • N-gram:数数 → 但稀疏、记性短、符号孤立。
  • 词向量:给词义坐标 → 但静态、且只是零件。
  • 神经语言模型:靠泛化绕开稀疏 → 但窗口固定。
  • RNN:循环记忆破窗口 → 但梯度消失、必须串行。
  • LSTM:门控让记忆传远 → 但仍然串行。
  • Transformer:注意力换来并行与规模 → 但 O(n²) 仍待优化。
小测验

学习小测验

做完这一课,来检测一下核心知识点。选出你的答案后点击「提交」,即可看到正确选项与讲解。

Q1这一课把整条 NLP 技术演变史串成一句话。下面哪种概括最贴合这条主线?
Q2按「问题 → 解药」对应,下面哪一组是正确的?
NEXT · 第 30 课

前沿与未来:下一程

历史讲完了,那「正在发生」和「即将发生」的呢?看看大模型的下一程。

0 人点赞,0 人看过