0.3 从 N-gram 到 GPT:语言模型简史
语言模型(Language Model, LM)的核心任务可以用一句话概括:给定一个词序列,预测下一个最可能出现的词是什么。用数学语言表示,就是对条件概率
回顾语言模型从诞生到今天大语言模型(Large Language Model, LLM)的发展历程,大致可以划分为四个阶段:符号/规则时代、统计时代、深度学习时代与大语言模型时代。每一次范式迁移都伴随着对"什么是语言理解"这一根本问题的重新认识,也深刻改变了 NLP 系统的构建方式。
图 0-5:语言模型发展的四个阶段——统计语言模型(1990s)、神经语言模型(2013)、预训练语言模型(2018)、大语言模型(2020s)。每一阶段都标志着任务解决能力的质的飞跃。
0.3.1 符号与规则时代(1950s—1980s)
计算机科学诞生之初,科学家们满怀信心地试图用逻辑规则"教会"计算机理解语言。主导思想清晰而直接:句子由词汇通过语法规则组合而成,只要精确建模词法和句法,计算机就能破解语言的密码。Herbert Simon 在 1965 年曾预言"二十年内机器将能完成人所能做的一切工作",这种乐观反映了当时对符号主义方法的高度期待。
这一时期的代表性工作包括 1964—1967 年间开发的 ELIZA 聊天机器人——它完全基于模式匹配(Pattern Matching)和文本替换规则,能在一定程度上模拟心理治疗师的对话,甚至可以在某些情境下通过图灵测试。但即便在当时,研究者也并不认同将 ELIZA 等同于真正的智能。
规则方法的根本困境在于三个层面:
- 歧义无处不在:自然语言中,同一表达在不同语境下含义截然不同。经典例子如"中国队大胜美国队"与"中国队大败美国队",其中"胜"与"败"这对反义词在此竟指向同一结果。词汇语义对语境的极端依赖远非简单规则所能捕捉。
- 结构嵌套难解:语言允许递归嵌套和长距离依赖,穷举规则来处理这种组合爆炸是不可能的。
- 规则爆炸失控:自然语言充满例外、习语和动态变化,维护一个覆盖所有情况的规则库很快变成了不可能的任务。
到 1980 年代末,纯粹基于手工规则的 NLP 道路已走入死胡同。研究者开始意识到:语言的规律或许不应由人来编写,而应从数据中自动学习。
0.3.2 统计时代(1980s 末—2000s 初):让数据说话
统计方法的兴起标志着 NLP 的第一次范式革命。研究者提出了一个根本性的视角转换:语言的规律隐藏在海量文本数据本身之中,与其手工编写规则,不如通过统计模型从大规模语料库中自动学习概率分布。
N-gram 模型是这一时代的核心代表。它基于马尔可夫假设(Markov Assumption):一个词出现的概率只与它前面紧邻的
- Unigram(1-gram):假设词的出现相互独立,
。 - Bigram(2-gram):词的出现只依赖前一个词,
。 - Trigram(3-gram):词的出现依赖前两个词,
。
一个句子
每一项条件概率都通过**最大似然估计(Maximum Likelihood Estimation, MLE)**计算,本质上就是"数数":
N-gram 模型简单、可解释、计算高效,在很长一段时间内是机器翻译、语音识别等应用的核心组件。Google 在 2007 年曾训练过基于 2 万亿 token 的 5-gram 模型,其规模在当时已经非常惊人。
然而,N-gram 模型面临着三个根本性缺陷:
- 数据稀疏性(Data Sparsity):随着
增大,大量 N-gram 组合在语料库中从未出现。即便引入拉普拉斯平滑(Laplace Smoothing)、古德-图灵平滑(Good-Turing Smoothing)或 Kneser-Ney 平滑等技术来为未见过的 N-gram 分配非零概率,这一问题也无法从根本上解决。 - 无法捕捉长距离依赖:马尔可夫假设的本质决定了模型只能看到一个很小的上下文窗口(通常 2—4 个词),无法理解句子中相距较远的词之间的语法或语义关系。
- 缺乏泛化能力:在 N-gram 模型眼中,"cat"和"kitty"是两个完全不同的、毫无关联的符号。它无法将在"the cat sat"上学到的知识迁移到"the kitty sat"。
这些缺陷直接催生了下一阶段的技术创新——用神经网络来学习词的分布式表示,从符号空间进入连续向量空间。
0.3.3 深度学习时代(2003—2018):从词向量到 Transformer
神经语言模型的萌芽。 2003 年,Bengio 等人发表了里程碑式的工作,首次使用前馈神经网络(Feed-Forward Neural Network)构建语言模型。其核心创新在于词嵌入(Word Embedding):将每个词映射到一个低维连续向量空间,使得语义相近的词(如"cat"与"kitty")在向量空间中距离相近。这一机制从根本上缓解了 N-gram 模型的数据稀疏问题和泛化困难。
2013 年前后,Mikolov 等人提出的 Word2Vec 和 Pennington 等人提出的 GloVe 将词嵌入思想推向高峰。这些通过无监督训练得到的通用词向量表,能够捕捉诸如"king - man + woman ≈ queen"这样的语义类比关系,成为后续几乎所有 NLP 系统的标准输入表示。
循环神经网络与序列建模。 要真正解决长距离依赖问题,仅靠固定窗口的前馈网络是不够的。循环神经网络(Recurrent Neural Network, RNN)通过引入循环的隐藏状态来处理序列数据,理论上可以捕捉任意长度的依赖关系。特别是长短期记忆网络(Long Short-Term Memory, LSTM)和门控循环单元(Gated Recurrent Unit, GRU),通过精心设计的门控机制缓解了梯度消失问题,在机器翻译、语音识别、文本生成等任务上取得了巨大成功。Sutskever 等人在 2014 年提出的 Seq2Seq(Sequence-to-Sequence)架构,用"编码器-解码器"的范式统一了输入输出都是序列的任务,一度成为机器翻译的主流方案。
然而,RNN 系列模型存在固有局限:顺序计算的本质使其难以并行化,训练效率低下;即便是 LSTM,在处理真正的长文本时,长距离依赖的捕捉能力在实践中仍然有限。
Transformer 的横空出世。 2017 年,Vaswani 等人在论文"Attention Is All You Need"中提出了 Transformer 架构,彻底颠覆了序列建模的范式。Transformer 抛弃了 RNN 的顺序处理方式,完全依靠**自注意力机制(Self-Attention)**对输入序列中所有位置之间的关系进行并行计算。这带来了两个关键优势:
- 并行化训练:摆脱了 RNN 的顺序瓶颈,训练效率大幅提升,使得在海量数据上训练超大规模模型成为可能。
- 全局上下文建模:自注意力机制天然具有全局感受野,能够高效捕捉任意距离的依赖关系。
Transformer 的出现标志着 NLP 进入预训练(Pre-training)时代。两种截然不同的预训练范式随之确立:
- BERT(2018):使用 Transformer 的编码器(Encoder)部分,通过"掩码语言模型"(Masked Language Model, MLM)任务在海量无标签文本上预训练——随机遮盖文本中的部分 token,让模型预测被遮盖的内容。BERT 能够利用双向上下文进行语义理解,在文本分类、命名实体识别、阅读理解等理解类任务上全面刷新记录,确立了"预训练 + 微调"(Pre-train + Fine-tune)的标准范式。
- GPT(2018):使用 Transformer 的解码器(Decoder)部分,专注于经典的自回归语言建模——给定前文,预测下一个 token。GPT 是原生的生成式模型,天然适合文本生成任务。
这两条路线的分野——编码器侧重理解,解码器侧重生成——将在后续的发展中走向截然不同的命运。
0.3.4 GPT 系列演进:从预训练微调到通用智能体
GPT 系列的发展历程,是语言模型从"特定任务工具"走向"通用智能体"的缩影。每一代 GPT 都代表着对"语言模型能力边界"的一次重新定义。
图 0-6:OpenAI GPT 系列的演进路线图。从 GPT-1 到 GPT-4,模型规模和能力经历了指数级增长,使用范式也从"预训练+微调"演变为"提示学习"再到"多模态交互"。
GPT-1(2018):确立"预训练 + 微调"范式。 GPT-1 论文题为"Improving Language Understanding by Generative Pre-Training",其设计动机来源于当时 NLP 领域的两大痛点:大多数任务严重依赖人工标注数据,且面向特定任务设计的模型缺乏通用性。受计算机视觉中"ImageNet 预训练 + 微调"成功模式的启发,OpenAI 提出了一种新方案:先在大规模无标签文本上通过自回归语言建模进行无监督预训练,再针对具体下游任务进行有监督微调。
GPT-1 采用 Transformer 的 Decoder-only 架构,包含 12 层解码器模块,隐藏层维度 768,总参数量约 1.17 亿。预训练数据来自 BooksCorpus(约 7000 本未出版图书,共计约 8 亿词),上下文窗口为 512 个 token。在微调阶段,GPT-1 采用了极简的任务适配方式:通过在输入中插入特殊 token 来标识不同任务格式(文本分类、文本蕴含、语义相似度、多项选择等),仅在最后一个 token 的输出上添加一个线性层即可完成分类。这种将任务指令融入输入序列的策略,使得模型无需大幅修改架构就能适配多种任务。
GPT-1 在 12 项 NLP 任务中有 9 项刷新了当时的最佳成绩,证明了即使使用最基础的"预测下一个词"目标,也能学到强大的语言表示能力。更重要的是,它确立了一个影响深远的范式:无监督预训练为模型注入通用语言知识,有监督微调将其迁移到具体任务。
GPT-2(2019):零样本多任务学习。 GPT-1 和 BERT 虽然引入了预训练机制,但处理具体任务时仍需收集标注数据并进行微调。GPT-2 的论文标题"Language Models are Unsupervised Multitask Learners"直接宣告了其野心:一个足够强大的语言模型,应该能够在不进行任何微调的情况下直接完成多种任务。
GPT-2 的核心突破在于范式层面的变革。GPT-1 需要为不同任务设计不同的分类头,本质上是将"任务类型"编码进了模型架构。而 GPT-2 完全摒弃了特殊 token 和任务专用的分类头,转而用**自然语言提示(Prompt)**来指定任务:翻译任务写"把下面的英文翻译成中文:Hello world =>",摘要任务写"总结以下文章:[文章内容] 总结:"。模型以自然语言形式给出答案,而非输出概率分布后接分类器。这种统一是一个巨大的概念进步:任务不再是模型架构的一部分,而是输入的一部分。
在架构上,GPT-2 将参数规模扩大至 15.42 亿(是 GPT-1 的约 13 倍),上下文长度从 512 扩展至 1024,词汇表扩大至 50257 个 token,并引入了前置层归一化(Pre-Norm)等稳定训练的技术改进。训练数据来自 Reddit 社区高质量网页链接,总计约 40GB。
尽管 GPT-2 在某些任务上尚未超越专门的监督学习模型,但 OpenAI 观察到一个关键趋势:随着模型规模增大,零样本性能持续提升,且未出现饱和迹象。这一发现预示着大模型具有巨大的扩展潜力,也为 GPT-3 的诞生埋下了伏笔。
GPT-3(2020):Few-shot 上下文学习的涌现。 GPT-3 的论文标题"Language Models are Few-Shot Learners"精准概括了这一代模型的核心能力。其研究出发点是模仿人类的语言学习方式:人类只需看几个例子就能理解并完成新任务,而不需要成千上万的训练样本。
GPT-3 将模型规模推向了前所未有的高度——最大版本拥有 1750 亿参数,在 3000 亿 token 的文本数据上训练,上下文长度提升至 2048 token,批处理大小达 320 万。模型结构与 GPT-2 类似,但引入了稀疏注意力机制以提升效率。训练数据以清洗后的 CommonCrawl 为主,辅以维基百科、书籍等高质量文本。
GPT-3 正式定义了三种**上下文学习(In-Context Learning, ICL)**方式:
- 零样本(Zero-shot):仅给出任务描述,如"将 cheese 翻译成法语"。
- 单样本(One-shot):提供一个示例后要求模型完成类似任务。
- 少样本(Few-shot):给出多个示例后请求模型执行。
图 0-7:GPT-3 定义的三种上下文学习设置——零样本、单样本、少样本。模型无需梯度更新,仅通过输入上下文中的示例即可"学会"新任务。
这种不修改模型参数、仅通过输入上下文就能引导模型完成不同任务的能力,是 GPT-3 最具革命性的发现。它意味着语言模型已经从"需要为每个任务重新训练"进化到"通过自然语言指令即可适配"。GPT-3 在少样本设置下的表现甚至在某些任务上超越了需要大量标注数据微调的监督学习模型,其生成的新闻文本已达到"真假难辨"的程度。
从 GPT-3 到 ChatGPT 的演化还经历了关键的后训练(Post-training)阶段。通过监督微调(Supervised Fine-Tuning, SFT)在高质量的"指令-回答"对上训练,以及基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF),GPT-3 获得了理解用户指令、多轮对话、输出稳定性等实用能力。最终产品 ChatGPT 于 2022 年 11 月发布,一举开启了大语言模型的公众化时代。
GPT-4(2023):多模态与推理能力的飞跃。 GPT-4 是 OpenAI 迄今公开信息最少的一代模型。其技术报告被戏称为"我们使用了 Python"——几乎未透露任何架构和训练细节。但两个方面的突破是明确的:
- 多模态能力:GPT-4 能够同时处理文本和图像输入(输出仍为文本),这意味着它不仅能理解文字,还能"看懂"图片——例如识别图像中的幽默元素、解读图表数据等。
- 推理能力的质的提升:GPT-4 在多个标准化考试中全面超越 GPT-3.5,在某些领域甚至超过人类考生——例如成功通过美国律师资格考试,且得分高于大多数真实考生。
GPT-4 的成功还揭示了一个重要认知:大语言模型的核心能力主要在预训练阶段就已形成。后期的 RLHF 主要优化的是输出风格和可控性,而非基础认知能力。这一认知深刻影响了后续模型的研发策略——投入更多资源于预训练阶段的数据质量和计算规模。
图 0-8:2019—2024 年间主要大语言模型的发展时间线。GPT 系列、LLaMA、PaLM、Claude 等模型的密集涌现,标志着 LLM 时代的全面到来。
0.3.5 范式迁移的深层逻辑
纵观语言模型的发展史,四次范式迁移背后存在一条清晰的逻辑主线:从人工设计走向数据驱动,从任务专用走向通用统一,从小规模走向大规模。
| 维度 | 规则时代 | 统计时代 | 深度学习时代 | LLM 时代 |
|---|---|---|---|---|
| 知识来源 | 人工编写规则 | 语料库统计频率 | 标注数据 + 预训练 | 海量无标签文本 |
| 核心方法 | 模式匹配 | N-gram + 平滑 | RNN/LSTM/Transformer | Transformer + 大规模预训练 |
| 任务范式 | 规则定义 | 特征工程 + 分类器 | 预训练 + 微调 | 提示学习 / 上下文学习 |
| 代表系统 | ELIZA, SHRDLU | Google 5-gram | BERT, ELMo | GPT-3/4, ChatGPT, Claude |
| 通用性 | 极低 | 低 | 中等 | 高 |
值得深入思考的是,这一演进过程中反复验证了 Rich Sutton 在"The Bitter Lesson"中的核心论断:利用通用计算进行规模化的方法,最终总会胜过依赖人类领域知识的精巧设计。从手工规则到统计计数,从特征工程到端到端学习,从任务专用模型到通用大模型,每一步都是在减少人工先验、增加数据和计算的投入。但正确理解这一教训不是"规模就是一切,算法不重要",而是**"规模化的算法才是关键"**——模型的最终精度是效率和资源的乘积,算法层面效率的提升速度甚至超过了硬件的摩尔定律。
另一个值得注意的趋势是统一化。传统 NLP 包含机器翻译、文本分类、问答、摘要、情感分析等众多独立任务,每个任务都有专门的模型和评测体系。但从 GPT-2 开始,"将所有任务统一为文本生成"的思路逐渐明确:翻译是"给定源语言文本,生成目标语言文本";分类是"给定文本,生成类别标签";问答是"给定问题,生成答案"。到 ChatGPT 时代,一个模型已经能够胜任几乎所有传统 NLP 任务,NLP 作为一个独立研究领域的边界开始模糊。
0.3.6 小结
本节梳理了语言模型从 1950 年代规则系统到 2020 年代大语言模型的完整发展脉络。这段历史揭示了几个核心洞见:
- "预测下一个词"是一个极其深刻的学习目标:从 N-gram 的最大似然估计到 GPT 系列的自回归建模,这个看似简单的目标贯穿了语言模型发展的始终。当模型规模和数据量达到一定阈值,这个目标所驱动的学习过程会自发涌现出翻译、推理、编程等看似与"预测下一个词"无关的复杂能力。
- 规模化是解锁能力的关键杠杆:从 GPT-1 的 1.17 亿参数到 GPT-3 的 1750 亿参数,参数量的三个数量级增长带来的不是渐进式改善,而是质的飞跃——上下文学习、指令遵循等能力是在足够大的规模下才涌现的。
- 范式演进的方向是降低人工介入:从手工编写规则,到人工设计特征,到人工标注数据微调,到仅需自然语言提示——人在系统构建中的角色正在从"设计者"变为"指导者"。
- 预训练-后训练的两阶段范式已成为共识:预训练阶段通过海量数据注入通用知识和能力,后训练阶段(SFT + RLHF)则将其激活并对齐到人类的使用需求。
理解这段历史,不仅是为了知道"大模型从何而来",更是为了建立正确的技术直觉:什么设计决策在什么规模下有效?什么问题已经被解决,什么问题只是被规模暂时掩盖?这些直觉将贯穿本书后续章节的学习。