跳到主要内容

1.2 从查表到神经网络:语言模型简史

还没玩过 1.1 节的迷你语言模型?先回去玩五分钟再来——本节讲的就是它的家族史。

查表时代:n-gram 的五十年​

1.1 节那个「数频率、查表格」的做法有个正式名字:n 元语法模型。别看它简陋,从上世纪五十年代到 2010 年前后,它统治了语音识别和机器翻译几十年——你早年用过的翻译软件、输入法联想,核心都是它。

但它有一个绕不过去的死穴。实验里你已经亲眼见过:上文稍微长一点,模型就开始喊「⚠️ 没见过这个上文」。算笔账就明白了:

  • 常用汉字约 3500 个;
  • 看 2 个字的上文:约 1200 万种组合;
  • 看 3 个字:约 430 亿种;
  • 看 10 个字:宇宙里的原子都不够存这张表。

上文每加一个字,表的规模就要乘上几千倍,而语料再大也只能覆盖其中极小一角。绝大多数格子永远是空的——这就是数据稀疏。查表模型注定近视。

转折点:把词变成向量​

2003 年,Yoshua Bengio 团队提出神经概率语言模型:不再查表,而是先把每个词变成一串数字(词向量),再用神经网络从向量算出下一个词的概率。

这一步为什么是革命?因为它让模型第一次能举一反三。查表模型眼里,「猫在毯子上睡觉」和「狗在毯子上睡觉」是两个毫不相干的条目,见过前者对预测后者毫无帮助;而在向量空间里,「猫」和「狗」离得很近,模型从「猫」那句学到的规律自动迁移给了「狗」。数据稀疏的死穴,被「相似的词共享经验」这一招填掉了大半。(词向量的神奇之处,1.4 节有个专门的实验。)

2013 年的 word2vec 把词向量本身做成了爆款:人们发现这些纯靠数据学出来的向量居然会做类比题——「国王 − 男人 + 女人 ≈ 王后」。

看得更远:RNN,然后是 Transformer​

词向量解决了「举一反三」,但「看得远」还没解决。2010 年代中期的主力是循环神经网络(RNN/LSTM):像人读书一样从左到右逐词读入,把读过的内容压缩进一段「记忆」。它理论上能看任意长的上文,但有两个大毛病——必须按顺序算(没法让几千块 GPU 同时开工),以及记忆会随距离衰减(读到第 500 字,开头讲了什么早忘了)。

2017 年,Google 的一篇论文《Attention Is All You Need》提出了 Transformer:干脆抛弃「从左到右的记忆」,让每个词通过注意力机制直接回看上文里的任何一个词,而且整段文本可以并行计算。看得远、算得快,两个毛病一次解决——这就是今天所有主流大模型的骨架(第 3 章整章拆它)。

大力出奇迹:GPT 系列​

架构就位后,OpenAI 做了一个朴素的赌注:同一个配方,把模型、数据、算力一起放大,会发生什么?

  • GPT-2(2019 年,15 亿参数):能写出以假乱真的新闻段落;
  • GPT-3(2020 年,1750 亿参数):不用重新训练,光靠在提示词里给几个例子就能学会新任务;
  • ChatGPT(2022 年):在 GPT-3.5 上加了对齐训练(第 5 章),一夜之间出圈。

「越大越强」这个现象后来被总结成缩放定律(Scaling Laws,第 4 章细讲)。至此,「预测下一个词」这件从输入法联想起家的小事,走到了今天你看到的样子。

时间线总结​

年代里程碑关键想法
1950s–2000sn-gram数频率、查表;死穴是数据稀疏
2003Bengio 神经语言模型词变向量,相似的词共享经验
2013word2vec词向量出圈:国王 − 男人 + 女人 ≈ 王后
2014–2016RNN / LSTM逐词读入的「记忆」,但慢、且健忘
2017Transformer注意力直连任意上文 + 全程并行
2018–2020GPT-1/2/3同一配方放大一千倍,能力涌现
2022ChatGPT对齐训练让能力变成好用的产品
这段历史在哪里被简化了?

真实的技术史不是单线接力:统计机器翻译、CNN 文本模型、BERT 这类双向模型等许多支线都被本节略去了;RNN 也并未「死掉」,在语音等领域仍有后代。本节只保留通往今天生成式大模型的主干道。

小结​

本节要点
  • n-gram 查表模型统治了五十年,死穴是数据稀疏:上文每长一个字,组合数乘几千倍。
  • 词向量让「相似的词共享经验」,模型第一次会举一反三。
  • Transformer 用注意力解决「看得远」和「并行算」,GPT 系列再证明「越大越强」。
📝 动手自测0/3
1. n-gram 模型最致命的弱点是什么?
2. 2003 年 Bengio 神经语言模型的关键新想法是?
3. Transformer 相比 RNN 最核心的优势是?

延伸阅读​