从统计语言到大模型:LLM的概念框架与发展脉络
如果把“会说话”这件事拆开来看,我们会发现其中最核心、也最可操作的一步,并不是理解、推理或意识,而是一个看似朴素的统计任务:在给定前文的条件下,预测下一个词(或更准确地说,下一个“符号”)。过去几十年,自然语言处理(NLP)的技术路线几度更迭,但几乎所有通向大语言模型(Large Language Model, LLM)的路径,都绕不开“语言建模”(Language Modeling)这一基本问题。本章将以语言建模为起点,建立全书共享的概念框架与历史坐标系:我们将看到,为什么“预测下一个词”能够涌现出看似理解的行为;我们也将回顾,从统计语言模型到神经语言模型,再到预训练—微调范式的演进如何逐步把这种能力推向规模化与工程化。
本章要回答的三个问题是: 1. 语言模型究竟在“学”什么?为什么概率分解与“下一个词预测”足以成为统一目标? 2. 从 n-gram 到 Transformer,再到预训练—对齐(alignment)范式,关键跃迁发生在哪里? 3. LLM 的能力从何而来、如何评估、又如何以系统工程方式被构建与迭代?
> 页边栏|术语速查:困惑度、交叉熵、上下文窗口 > - 交叉熵(Cross-Entropy):用模型分布去“描述”真实数据分布所需的平均信息量,训练时常对应负对数似然损失。交叉熵越小,模型越贴近数据。 > - 困惑度(Perplexity, PPL):交叉熵的指数形式,常用于衡量语言模型对文本的“惊讶程度”。直观上,PPL 越低,模型越不“困惑”。 > - 上下文窗口(Context Window):一次推理中模型可见的历史 token 长度上限。窗口越大,模型能利用的“短期记忆”越多,但计算与成本也随之上升。
---
一、语言建模:把“会说话”还原成概率 #history
1.1 链式法则:把整段文本分解为一连串局部预测
设一段文本被分成序列 $x_{1:n}$(可以是词、子词、字符或 token)。语言建模的一个最基本目标,是为整段序列赋予概率 $P(x_{1:n})$。在概率论中,任意联合分布都可以用链式法则分解为条件概率的乘积:
$$P(x_{1:n})=\prod_{t=1}^{n}P(x_t\mid x_{<t})$$
这一定义极其关键:它把“生成一段语言”转化为“重复做 $n$ 次局部决策”。每一步只需回答一个问题——在看到前文 $x_{<t}$ 的情况下,下一个符号 $x_t$ 最可能是什么?当我们把训练目标统一为学习条件分布 $P(x_t\mid x_{<t})$,就获得了一个可规模化的数据驱动任务:从大量文本中统计条件规律,逼近真实语言的分布结构。
这里有一个常见误解:把语言模型的目标表述为“预测下一个词”,并不意味着模型只能做字面接龙。恰恰相反,语言之所以能够承载事实、意图、逻辑与社会规范,是因为这些信息在真实语料中会以统计规律的形式反复出现。只要模型的表达能力足够强、数据足够丰富、训练足够充分,它就可能在“压缩并预测文本”的过程中,学习到支撑更高层行为的潜在结构。
1.2 训练损失:为什么交叉熵是“最自然”的选择
在实践中,我们使用参数化模型 $P_\theta(\cdot)$ 来近似真实分布。常见训练目标是最小化负对数似然(Negative Log-Likelihood, NLL),其核心形式就是交叉熵损失:
$$\mathcal{L}= -\sum_{t}\log P_\theta(x_t\mid x_{<t})$$
直觉上,$\log P_\theta(x_t\mid x_{<t})$ 衡量模型在每个位置对真实 token 的“信心”;取负号并求和,就是让模型在整个语料上“尽可能不犯错”。更深一层的理解是:这相当于让模型学习一种编码方案,使其用尽量少的信息量来描述真实数据。语言模型训练因此也可被视为一种“统计压缩”:能更好压缩文本的模型,往往也更能捕捉语言结构。
由交叉熵还可得到困惑度(PPL)。若平均交叉熵为 $H$(以自然对数为底),则 $\mathrm{PPL}=\exp(H)$。把它理解为“平均每一步等价于在多少个同等可能选项中做选择”,会更贴近日常直觉:困惑度 10 表示模型每步相当于在 10 个候选中“犹豫”,困惑度 2 则更接近“十拿九稳”。
1.3 “预测下一个词”为何会像理解:三个层次的解释
第一层:语言是世界的投影。 人类写下的文本,不仅描述语法结构,也记录世界知识、因果关系、社会互动与价值判断。大量文本相当于把“世界与人类活动”投影到符号序列上。模型若能准确预测符号序列,就必须在内部形成某种对这些规律的表征。
第二层:许多任务可被改写为续写。 问答、翻译、摘要、代码生成等任务,都可以被组织为“给定提示 → 生成后续文本”的形式。只要模型学会把提示映射到合适的后续分布,它就能在统一接口下表现出多任务能力。
第三层:训练分布塑造了行为先验。 预训练语料里包含大量“解释、证明、教程、对话、规范”等文本类型。模型并不真正理解“解释”这一抽象概念,但它能学习到:当输入呈现某种问题形式时,后续更可能出现条理清晰的分点说明;当输入是代码注释时,后续更可能出现函数实现。行为风格因此被数据“写入”了模型。
这一点也提示了 LLM 的局限:若某类知识或推理模式在数据中稀缺或表达方式不一致,模型就难以可靠掌握;若训练数据中存在系统偏差,模型也会在生成中复制偏差。
---
二、从统计语言模型到大模型:范式跃迁的历史脉络 #paradigm #history
2.1 统计时代:n-gram 语言模型与平滑技术
在深度学习兴起之前,语言建模主流是 n-gram。其核心假设是马尔可夫近似:下一个词只依赖最近的 $n-1$ 个词:
$$P(x_t\mid x_{<t})\approx P(x_t\mid x_{t-n+1:t-1})$$
n-gram 的优势是简单、可解释、易于训练;缺点同样明显:
- **稀疏性(Sparsity)**:随着 $n$ 增大,组合数爆炸,训练语料再大也覆盖不全。
- **泛化困难**:未见过的上下文几乎无法给出合理概率。
- **长程依赖缺失**:跨句、跨段的指代与主题一致性难以建模。
为缓解稀疏性,研究者发展出一整套平滑(smoothing)与回退(back-off)方法,例如 Kneser–Ney 平滑在统计语言模型中长期占据核心地位。即便在今天,n-gram 仍在某些资源受限场景或作为强基线存在,但它已难以触及现代 LLM 的能力边界。
2.2 神经语言模型:分布式表示如何打破稀疏性
真正的转折点来自“分布式表示”(distributed representation):不再把词当作互不相干的离散符号,而是把它们映射到连续向量空间,使相似词在向量空间中相近。这一思想在神经语言模型中变得可计算、可训练。经典工作包括 Bengio 等人的神经概率语言模型(2003,论文链接:https://www.jmlr.org/papers/v3/bengio03a.html )以及后来广泛传播的词向量方法,如 word2vec(Mikolov 等,2013,论文链接:https://arxiv.org/abs/1301.3781 )。
分布式表示带来三点关键收益: 1. 相似性可迁移:模型可以把“猫—动物—喂食”的统计规律迁移到“狗—动物—喂食”。 2. 组合泛化:即便某个具体短语未出现过,只要组成词的向量与语法模式相近,模型也能给出合理预测。 3. 连续优化:向量与矩阵允许用梯度下降进行端到端训练,使模型规模与性能具有可扩展性。
如果说 n-gram 是“统计表”,神经语言模型则是“可学习的压缩器”:它把高维稀疏计数压缩进低维向量与权重矩阵中,再通过非线性变换表达更复杂的条件分布。
2.3 Transformer:注意力机制如何重塑序列建模
2017 年的 Transformer(Vaswani 等,“Attention Is All You Need”,论文链接:https://arxiv.org/abs/1706.03762 )通常被视为 LLM 的直接技术底座。它的核心是自注意力(self-attention):在计算某个位置的表示时,让模型动态“关注”上下文中与之相关的 token,而不是固定窗口或固定递归路径。
与循环网络(RNN/LSTM)相比,Transformer 的关键优势在于:
- **并行性**:序列各位置可并行计算,极大提高训练吞吐。
- **长程依赖更直接**:注意力允许任意两位置直接交互,减少信息传递路径长度。
- **可扩展的容量**:层数、宽度、头数与上下文长度等维度都便于放大。
需要强调的是:Transformer 并不是“懂语言”的结构,而是一种在现代算力与数据规模下更易训练、更易扩展的函数族。它为后续“规模定律 + 大数据 + 大算力”的组合打开了工程大门。
2.4 预训练—微调:从“为任务训练模型”到“为语言训练模型”
在深度学习早期,主流路线是“为每个下游任务训练(或大幅改造)一个模型”。预训练—微调范式改变了这一点:先在海量通用语料上进行自监督预训练(self-supervised pretraining),学得通用语言表示,再在具体任务上微调(fine-tune)。BERT 及其后续工作推动了这一范式在理解任务上的普及;而以 GPT 系列为代表的自回归预训练(autoregressive pretraining)则把统一生成接口推向更广泛的应用。
当模型规模与预训练数据进一步增大(如 GPT-3,Brown 等 2020,论文链接:https://arxiv.org/abs/2005.14165 ),一个重要现象出现:许多任务不再需要显式微调,只需在提示中给出任务说明或少量示例,模型就能完成任务,这被称为上下文学习(In-Context Learning, ICL)。这一点将在下一部分详述。
2.5 从“会续写”到“会对话”:指令对齐与 RLHF 的工程化意义 #paradigm
预训练模型的“原生目标”是拟合互联网文本分布,这会带来两类问题:
- **意图不对齐**:用户想要的是“有帮助、诚实、安全”的回答,而模型可能给出更像互联网平均风格的续写。
- **交互不稳定**:同一句提示稍微改写,输出风格与质量可能大幅波动。
指令微调(Instruction Tuning)与基于人类反馈的强化学习(RLHF)为此提供了系统性路径。以 InstructGPT(Ouyang 等 2022,论文链接:https://arxiv.org/abs/2203.02155 )为代表的方法,大致包含: 1. 收集指令数据:把任务需求写成“指令—回答”形式。 2. 监督微调(SFT):让模型学会“像助手一样回答”。 3. 偏好建模与强化学习:通过人类偏好训练奖励模型,再用强化学习优化输出。
可以把对齐阶段理解为:在不改变“语言能力底座”的前提下,为模型叠加一个“行为策略层”,使其输出更符合人类使用场景的偏好约束。这也解释了为什么现代 LLM 的能力常被分为两部分:基础能力(由预训练塑造)与助手行为(由对齐塑造)。
---
```mermaid timeline title LLM发展里程碑(概览) 1950 : 图灵测试 1990 : 统计语言模型兴起 2013 : 词向量与神经语言模型 2017 : Transformer提出 2018 : 预训练-微调范式普及 2020 : 大规模自回归预训练 2022 : 指令对齐与RLHF 2023 : 工具调用与多模态扩展 ```
---
三、能力从何而来:规模、表示、上下文学习与涌现 #scaling #evaluation
3.1 规模定律(Scaling Laws):更大为何往往更好
“把模型做大”并不是新的想法,但在 LLM 时代,规模化第一次呈现出较稳定的经验规律:当模型参数、数据量、训练算力按一定比例增长时,损失(如交叉熵)往往以近似幂律方式下降。这类经验关系被概括为规模定律。早期有 Kaplan 等(2020,论文链接:https://arxiv.org/abs/2001.08361 )系统总结了参数、数据与算力之间的关系;后续 Chinchilla 工作进一步指出,在给定算力预算下,数据量与参数量需要更合理的配比才能最优(Hoffmann 等 2022,论文链接:https://arxiv.org/abs/2203.15556 )。
规模定律的意义不在于给出某个永恒公式,而在于提供一种工程决策框架:
- **可预测性**:在扩大训练规模前,可用小规模实验外推大致收益。
- **资源配置**:指导“是加参数还是加数据”的选择。
- **研究组织方式**:把模型训练从“手工调参的艺术”部分转向“可复现的工业流程”。
但规模定律也有边界:当训练数据质量下降、分布不匹配、或模型出现过拟合与重复时,简单放大不再带来同等收益;此外,对齐、安全与工具使用等能力并不完全由交叉熵损失决定。
3.2 分布式表示的再理解:从词向量到“隐空间中的程序”
在 LLM 中,“表示”不再只是词向量,而是一整套层级化的隐状态:从局部词义、句法结构、到更抽象的话题、意图与推理轨迹,都可能以某种方式编码在高维向量空间中。理解这一点可以借助一个比喻:
- 传统符号系统像“显式程序”,规则写在外面;
- LLM 更像“隐式程序”,规则以参数形式分布在网络中,通过前向传播被执行。
这也解释了为什么 LLM 的推理常呈现“近似可解释但不完全可控”的特征:我们可以观察到模型会生成类似逻辑推导的文本,但这些步骤是否对应内部真实的因果计算,仍是开放问题。近年来可解释性研究尝试用“特征探针”“激活补丁”“稀疏自编码”等方法刻画隐空间结构,但总体上仍难以像传统软件那样获得确定性保证。
3.3 上下文学习(ICL):为什么给几个例子就会“学会”
ICL 的典型形式是:在提示中给出任务说明,甚至给出若干输入—输出示例,模型在不更新参数的情况下完成新任务。例如:
- 提示:
“把以下英文翻译成中文: English: I love apples. Chinese: 我喜欢苹果。 English: She is a doctor. Chinese:”
- 模型续写:
“她是一名医生。”
这里发生了什么?一种常见解释是“隐式元学习”(implicit meta-learning):模型在预训练中见过大量“示例—规律—答案”的文本结构,于是学会了在上下文中识别任务、抽取映射规则,并在当前序列中执行。换言之,ICL 可能不是模型在推理时真正“训练”了自己,而更像它在执行一种在预训练中学到的“从上下文推断任务”的策略。
ICL 的重要工程意义在于降低了下游适配门槛:
- **不必为每个任务训练新模型**,而是通过提示工程(prompting)快速试错。
- **支持临时性、一次性需求**,尤其适合长尾任务与非标准化任务。
- **促进工具与外部系统整合**:提示中可包含 API 规范、格式约束、以及对错误处理的指令,从而把模型嵌入更大的工作流。
但 ICL 的局限同样明显:对提示措辞敏感、对长上下文噪声敏感、示例选择会显著影响输出;并且当上下文窗口不足时,ICL 能力会受到硬性上限约束。
3.4 “涌现”现象:定义之争与经验观察(脚注对照) #scaling
当模型规模跨过某些阈值后,研究者观察到部分任务性能似乎会“突然变好”,这类现象常被称为“涌现”(emergence)。但“涌现”并非单一概念,至少存在两种常见定义:
- 一种强调**曲线形态**:随着规模增大,指标出现非线性拐点或阶段性跃迁。
- 另一种强调**任务可见性**:当模型在小规模时几乎随机,大规模时显著优于随机,于是看起来像“突然出现”。但这种突然性可能来自度量尺度与阈值选择。[^1]
在严谨讨论中,需要区分三件事: 1. 真实性:跃迁是否超出统计噪声与评估误差? 2. 机制性:跃迁是否对应内部表示或算法能力的结构变化? 3. 可复现性:不同数据、不同训练方案、不同指标下是否一致?
对普通读者而言,一个务实的结论是:无论“涌现”是否严格成立,经验上确实存在“规模越大,能力谱系越丰富”的趋势;而工程上,团队往往会在到达某个规模后才首次观察到某些能力的可用性(例如更稳健的指令遵循、更复杂的代码生成或更强的多步推理)。因此,“涌现”在产业语境里更像一种经验标签,用于描述“之前做不到、现在能用了”的阶段变化。
[^1]: 关于“涌现”的不同定义与争论,可对照两类观点:一类将其视为能力的相变式出现(强调任务成功/失败的质变);另一类认为“涌现”常是度量选择导致的表观现象,若使用更连续、更细粒度的指标,曲线可能更平滑。两者分歧的核心在于:我们究竟在观察模型能力的结构变化,还是在观察评测工具的阈值效应。
3.5 评估与基准:为什么需要、又为什么不够 #evaluation
LLM 评估通常依赖基准测试(benchmarks):例如通识问答、阅读理解、数学推理、代码能力与安全对齐等。基准的作用至少有三点:
- **可比较**:让不同模型在相同任务上对齐指标。
- **可回归**:在迭代中监控性能是否退化。
- **可诊断**:通过分项指标定位薄弱环节。
但基准也存在结构性局限: 1. 数据污染(contamination):预训练语料可能包含测试题及其解析,使得分数高估真实泛化。 2. 过拟合排行榜:当团队反复针对同一基准优化,基准逐渐失去区分度。 3. 测到的≠重要的:真实应用更关心稳定性、鲁棒性、可控性与安全性,但这些难以用单一分数表达。 4. 交互性缺失:许多能力(如工具调用、长任务规划、与人协作)需要在多轮环境中评估,而非单轮问答。
因此,现代 LLM 研发逐渐形成“评测闭环”:基准只是入口,还需要在线评估、红队测试(red teaming)、用户反馈与故障分析共同构成质量体系。对于读者而言,理解基准的意义与局限,是避免被“某某榜单第一”误导的关键。
---
四、LLM 作为系统:数据、模型、算力、目标、推理与闭环 #paradigm #evaluation
4.1 数据:规模之外,质量与分布更决定上限
预训练数据常来自网页、书籍、论文、代码与对话等。决定模型能力的,不只是 token 数量,还包括:
- **覆盖度**:是否覆盖足够多领域与文体。
- **一致性