740 lines
33 KiB
Markdown
740 lines
33 KiB
Markdown
# 第 01 章研究账本:语言模型从哪里来
|
||
|
||
> 更新时间:2026-07-29
|
||
> 章节范围:从概率语言观、N-gram 与平滑,到分布式表示、RNN/LSTM、Seq2Seq 与 Attention 前夜;Transformer 只作为下一章边界。
|
||
> 证据原则:正式节点只接受原论文、出版社/学会页面、作者机构仓库或当前项目已缓存的官方技术报告。
|
||
> 教学目标:让完全没有机器学习背景的读者能回答“模型在预测什么、概率从哪里来、为什么会稀疏、向量解决了什么、循环为什么仍会忘、Attention 为什么自然出现”。
|
||
|
||
---
|
||
|
||
## 0. 先固定本章的边界
|
||
|
||
本章不是“从 1948 到 2017 的论文年表”。它沿着八张不能互相替代的账前进:
|
||
|
||
| 账 | 核心问题 | 常见混淆 |
|
||
|---|---|---|
|
||
| 预测单位 | 一次究竟预测字母、词、子词还是字符? | 把 Token 当成天然语言单位 |
|
||
| 概率与信息 | 怎样给一段序列分配概率并衡量预测难度? | 把困惑度当成理解力 |
|
||
| 上下文 | 条件概率能看到多远、用什么状态表示? | 理论可访问与实践可记住混为一谈 |
|
||
| 稀疏性 | 没见过的组合为什么不能直接给零概率? | 把所有 smoothing 都叫“加一” |
|
||
| 分布式表示 | 相似词怎样共享统计强度? | 把词向量当成上下文语义 |
|
||
| 循环记忆 | 怎样让一个固定大小状态携带变长历史? | 把 LSTM 说成彻底解决长依赖 |
|
||
| 序列转导 | 一个序列怎样条件生成另一个序列? | 把 Seq2Seq 与 Attention 混成一次发明 |
|
||
| 评测与成本 | 指标、词表与计算怎样改变可行路线? | 只讲架构,不讲 Softmax 和吞吐 |
|
||
|
||
正文每个关键节点必须回答五句话:
|
||
|
||
1. 旧方法撞到哪面墙;
|
||
2. 新方法改动了哪一层;
|
||
3. 公式最小闭环是什么;
|
||
4. 论文实际证明了什么;
|
||
5. 它没有证明什么。
|
||
|
||
---
|
||
|
||
## 1. 预测单位账:语言必须先变成可数事件
|
||
|
||
### 1.1 Shannon 1951:已知前文,猜下一个字母
|
||
|
||
- **正式来源**:Claude E. Shannon, “Prediction and Entropy of Printed English,” *Bell System Technical Journal* 30(1):50–64, 1951.
|
||
- **DOI**:<https://doi.org/10.1002/j.1538-7305.1951.tb01366.x>
|
||
- **原文证据**:摘要明确说,实验是在给出 preceding text 时预测 next letter,用预测结果估计英语的熵与冗余。
|
||
- **正确教学表述**:它是现代 next-token 叙事的概念祖先:把自然语言当作带上下文的随机符号源。
|
||
- **边界**:Shannon 没有训练神经网络,也没有提出现代交叉熵优化目标;预测者主要是人类实验。
|
||
- **适合重绘**:逐字符猜测游戏;上下文从 0、1、2…个字符增加时,候选分布逐渐收窄。
|
||
|
||
### 1.2 词级模型:单位更有语义,词表却会爆炸
|
||
|
||
- 词级 N-gram 把事件从字符提升为词,条件概率更贴近语法和搭配。
|
||
- 代价是词表大、稀有词多、未登录词 OOV 必须统一成 `<unk>`。
|
||
- 一个词被切成单一 ID 时,“猫/猫咪/小猫”不能天然共享统计。
|
||
|
||
### 1.3 Sennrich et al. 2016:子词是闭词表与开放词表的折中
|
||
|
||
- **正式来源**:Rico Sennrich, Barry Haddow, Alexandra Birch, “Neural Machine Translation of Rare Words with Subword Units,” ACL 2016.
|
||
- **URL**:<https://aclanthology.org/P16-1162/>
|
||
- **原文主张**:通过 BPE 编码常见字符序列,使模型可用固定大小词表表示开放词汇,并处理稀有词与复合词。
|
||
- **边界**:BPE 是频率驱动的切分/合并算法,不保证语义上最合理;它解决表示覆盖,不自动赋予语义。
|
||
- **适合重绘**:从字节/字符出发,按 pair frequency 合并;展示“unbelievable”在不同词表预算下的粒度。
|
||
|
||
### 1.4 Kim et al. 2016:字符也可以先组合成词表示
|
||
|
||
- **正式来源**:Yoon Kim et al., “Character-Aware Neural Language Models,” AAAI 2016 / arXiv:1508.06615.
|
||
- **URL**:<https://arxiv.org/abs/1508.06615>
|
||
- **机制**:字符 embedding → CNN → max pooling → highway network → LSTM language model。
|
||
- **论文证据**:在论文设置中参数更少,并对形态丰富语言有效。
|
||
- **边界**:它仍然在词级输出,不能等同于现代 byte-level decoder。
|
||
|
||
### 本账结论
|
||
|
||
预测目标的数学形式可以不变,但预测单位改变:
|
||
|
||
```text
|
||
字符:词表小,序列长
|
||
词:序列短,词表巨大且有 OOV
|
||
子词:在序列长度与词表覆盖之间折中
|
||
字节:覆盖最彻底,语义粒度更细
|
||
```
|
||
|
||
Tokenizer 不是“预处理小工具”;它决定序列长度、词表 Softmax 成本、跨语言公平性与一个“错误”究竟在哪个粒度发生。
|
||
|
||
---
|
||
|
||
## 2. 概率与信息账:一段话为什么能拆成许多道预测题
|
||
|
||
### 2.1 概率链式法则
|
||
|
||
对序列 \(x_{1:T}\):
|
||
|
||
\[
|
||
P(x_{1:T})=\prod_{t=1}^{T}P(x_t\mid x_{<t})
|
||
\]
|
||
|
||
这条恒等式不规定条件概率由什么模型算。N-gram、RNN、Transformer 都只是不同的条件分布参数化。
|
||
|
||
必须区分:
|
||
|
||
- **事实**:联合概率可按任意顺序用链式法则分解;
|
||
- **建模选择**:自回归 LM 选从左到右的因果顺序;
|
||
- **实现选择**:训练时用 causal mask 同时计算多个位置;
|
||
- **推断选择**:生成时必须把新采样的 token 放回上下文。
|
||
|
||
### 2.2 Shannon 1948:熵是平均不确定性,不是“混乱度”
|
||
|
||
- **正式来源**:Claude E. Shannon, “A Mathematical Theory of Communication,” *Bell System Technical Journal* 27, 1948.
|
||
- **DOI**:<https://doi.org/10.1002/j.1538-7305.1948.tb01338.x>
|
||
- **核心量**:\(H(P)=-\sum_x P(x)\log P(x)\)。
|
||
- **教学直觉**:若正确事件总是很容易猜,需要的信息位数低;候选均匀且多,需要的信息位数高。
|
||
- **边界**:信息熵不评价内容是否真实、有用或有意义。
|
||
|
||
### 2.3 负对数似然与交叉熵
|
||
|
||
给定真实数据分布 \(P\) 与模型 \(Q\),交叉熵:
|
||
|
||
\[
|
||
H(P,Q)=\mathbb E_{x\sim P}[-\log Q(x)]
|
||
\]
|
||
|
||
在样本上最小化平均 token NLL,就是最大化正确序列似然。对 one-hot 标签而言,常说的 categorical cross-entropy 与正确 token 的负对数概率等价。
|
||
|
||
边界:
|
||
|
||
- loss 降低说明模型给测试 token 的平均概率提高;
|
||
- 不保证它给出的解释忠实;
|
||
- 不保证生成样本事实正确;
|
||
- 数据泄漏可以让 loss 变好却没有获得可迁移能力。
|
||
|
||
### 2.4 困惑度:把平均 NLL 指数化
|
||
|
||
\[
|
||
\text{PPL}=\exp\left(\frac{1}{T}\sum_t-\log Q(x_t\mid x_{<t})\right)
|
||
\]
|
||
|
||
用自然对数时是 \(e^{\text{NLL}}\),用 bit cross-entropy 时是 \(2^H\)。
|
||
|
||
正确直觉:若模型每一步像在同样可能的 \(k\) 个选择中猜,PPL 约为 \(k\)。
|
||
|
||
严格边界:
|
||
|
||
- 不同 Tokenizer 的 token 粒度不同,原始 token PPL 不能直接横比;
|
||
- 不同预处理、词表、OOV 规则、测试集也不能直接横比;
|
||
- PPL 是平均对数概率,不等于生成质量;
|
||
- 罕见的严重错误会被 log loss 强烈惩罚。
|
||
|
||
### 2.5 Jelinek et al. 1977:历史评测术语
|
||
|
||
- **来源**:F. Jelinek et al., “Perplexity—a measure of the difficulty of speech recognition tasks,” JASA 62(S1), 1977.
|
||
- **DOI**:<https://doi.org/10.1121/1.2016299>
|
||
- **使用方式**:只作为“perplexity 一词进入语音/语言模型评测”的历史节点。
|
||
- **边界**:这是短篇会议摘要,不能承担现代 PPL 全部理论解释。
|
||
|
||
---
|
||
|
||
## 3. 上下文账:条件分布究竟记住多少历史
|
||
|
||
### 3.1 有限阶 Markov 假设
|
||
|
||
完整历史 \(x_{<t}\) 太多,N-gram 用长度 \(n-1\) 的后缀替代:
|
||
|
||
\[
|
||
P(x_t\mid x_{<t})\approx P(x_t\mid x_{t-n+1:t-1})
|
||
\]
|
||
|
||
这不是链式法则,而是额外假设。
|
||
|
||
它带来两个好处:
|
||
|
||
1. 可用计数直接估计;
|
||
2. 不同长历史只要共享后缀就能共享统计。
|
||
|
||
也带来两面墙:
|
||
|
||
1. \(n\) 小时看不见长距离;
|
||
2. \(n\) 大时组合数量指数增长,几乎所有上下文都稀疏。
|
||
|
||
### 3.2 Brown et al. 1992:用离散类别共享统计
|
||
|
||
- **正式来源**:Peter F. Brown et al., “Class-Based n-gram Models of Natural Language,” *Computational Linguistics* 18(4), 1992.
|
||
- **URL**:<https://aclanthology.org/J92-4003/>
|
||
- **机制**:把词映射到离散类,分解成类序列概率与类内词概率。
|
||
- **价值**:在神经词向量之前,用离散簇让相似词共享统计。
|
||
- **边界**:一个词通常归一个离散类;不是连续 embedding,也不是上下文化表示。
|
||
|
||
### 3.3 固定窗口神经 LM
|
||
|
||
Bengio 2003 仍只看固定数量前词,但相似词的 embedding 让未见过的具体组合也能借到统计强度。
|
||
|
||
### 3.4 RNN 状态:把可变长前缀压进固定大小向量
|
||
|
||
\[
|
||
h_t=f_\theta(h_{t-1}, e(x_t)),\quad
|
||
P(x_{t+1}\mid x_{\le t})=\text{softmax}(Wh_t)
|
||
\]
|
||
|
||
RNN 去掉了显式的固定阶数,却没有得到无限可靠记忆:所有历史必须通过同一个固定大小状态、逐步改写。
|
||
|
||
---
|
||
|
||
## 4. 稀疏性账:没有见过,不等于不可能
|
||
|
||
### 4.1 最大似然计数的零概率灾难
|
||
|
||
\[
|
||
\hat P(w\mid h)=\frac{C(h,w)}{C(h)}
|
||
\]
|
||
|
||
若测试序列含一个未见 N-gram,整段概率乘积立刻为 0,NLL 变为无穷大。真实语言组合开放,因此必须从已见事件“留出”概率质量。
|
||
|
||
### 4.2 Good 1953:frequency of frequencies
|
||
|
||
- **正式来源**:I. J. Good, “The Population Frequencies of Species and the Estimation of Population Parameters,” *Biometrika* 40(3/4):237–264, 1953.
|
||
- **DOI**:<https://doi.org/10.1093/biomet/40.3-4.237>
|
||
- **原文范围**:物种总体频率估计,也明确提到可用于文学词汇;Good 致谢 Turing 的关键公式。
|
||
- **核心直觉**:只出现一次的事件有多少种,比“某个事件出现了一次”更能告诉我们未见质量有多大。
|
||
- **边界**:Good–Turing 本身不是完整语言模型;还需要上下文结构、回退或插值。
|
||
|
||
### 4.3 Katz 1987:高阶可靠时相信高阶,不可靠时回退
|
||
|
||
- **正式来源**:Slava M. Katz, “Estimation of Probabilities from Sparse Data for the Language Model Component of a Speech Recognizer,” IEEE TASSP 35(3), 1987.
|
||
- **URL**:<https://ieeexplore.ieee.org/document/1165125>
|
||
- **机制**:对低计数事件折扣,把释放出的概率质量分给未见事件;未见高阶 N-gram 回退到低阶模型。
|
||
- **边界**:backoff 不是无条件把所有阶相加;只有高阶缺失/不可靠时才转向低阶。
|
||
|
||
### 4.4 Kneser & Ney 1995:低阶概率应该问“能接在多少种上下文后”
|
||
|
||
- **正式来源**:Reinhard Kneser, Hermann Ney, “Improved Backing-off for M-gram Language Modeling,” ICASSP 1995, pp. 181–184.
|
||
- **DOI**:<https://doi.org/10.1109/ICASSP.1995.479394>
|
||
- **经典直觉**:“Francisco”频率高可能几乎都来自 “San Francisco”,它不该因此在任意新上下文后都有很高 unigram 概率。
|
||
- **continuation count**:低阶概率按一个词出现过的不同左上下文数估计。
|
||
- **边界**:modified interpolated Kneser–Ney 是后来的实用变体,不能把全部公式归给 1995 原文。
|
||
|
||
### 4.5 Chen & Goodman 1996:平滑方法必须在受控实验里比较
|
||
|
||
- **正式来源**:Stanley F. Chen, Joshua Goodman, “An Empirical Study of Smoothing Techniques for Language Modeling,” ACL 1996.
|
||
- **URL**:<https://aclanthology.org/P96-1041/>
|
||
- **价值**:跨数据规模、模型阶数与训练条件系统比较平滑方法;成为 modified Kneser–Ney 常用证据源。
|
||
- **边界**:结论受语料、实现和版本影响,不能说某方法在所有时代/任务永远最优。
|
||
|
||
### 4.6 Goodman 2001:计数时代不是一条单技巧路线
|
||
|
||
- **正式来源**:Joshua T. Goodman, “A Bit of Progress in Language Modeling,” arXiv:cs/0108005.
|
||
- **URL**:<https://arxiv.org/abs/cs/0108005>
|
||
- **贡献**:把 caching、高阶 N-gram、skipping、Kneser–Ney、clustering 等组合评估。
|
||
- **教学价值**:提醒读者,历史最强系统往往是多个互补信号的组合,不是“神经网络突然替代一个朴素 trigram”。
|
||
|
||
---
|
||
|
||
## 5. 分布式表示账:从“精确匹配”到“相似输入共享参数”
|
||
|
||
### 5.1 One-hot 的问题
|
||
|
||
词 ID 经 one-hot 表示后:
|
||
|
||
- 任意两个不同词的距离完全相同;
|
||
- “猫”和“狗”不会比“猫”和“微积分”更接近;
|
||
- 参数只能通过完全相同的词复用。
|
||
|
||
连续 embedding \(e_w\in\mathbb R^d\) 让一个词由多个维度共同表示,也让一个维度服务多个词。
|
||
|
||
### 5.2 Deerwester et al. 1990:全局共现矩阵的低秩空间
|
||
|
||
- **来源**:Scott Deerwester et al., “Indexing by Latent Semantic Analysis,” JASIS 41(6):391–407, 1990.
|
||
- **DOI**:<https://doi.org/10.1002/(SICI)1097-4571(199009)41:6%3C391::AID-ASI1%3E3.0.CO;2-9>
|
||
- **机制**:词—文档矩阵经 SVD 压到低维空间。
|
||
- **边界**:词袋式全局矩阵分解,不建模词序,也不是 next-token 训练。
|
||
- **正文地位**:旁支桥梁,不作为主干模型。
|
||
|
||
### 5.3 Bengio et al. 2003:表示与语言模型一起学
|
||
|
||
- **正式来源**:Yoshua Bengio, Réjean Ducharme, Pascal Vincent, Christian Jauvin, “A Neural Probabilistic Language Model,” JMLR 3:1137–1155, 2003.
|
||
- **URL**:<https://www.jmlr.org/papers/v3/bengio03a.html>
|
||
- **旧瓶颈**:离散 N-gram 的组合空间随词表和上下文长度指数增长;相似序列只因一个词不同就不能共享统计。
|
||
- **机制**:
|
||
1. 每个上下文词查 embedding;
|
||
2. 拼接固定窗口;
|
||
3. 前馈网络输出全词表分布;
|
||
4. embedding 与概率模型端到端联合训练。
|
||
- **论文原词**:distributed representation、curse of dimensionality。
|
||
- **边界**:仍是固定窗口,且全词表归一化很昂贵。
|
||
- **适合重绘**:lookup table → concat → tanh hidden → softmax;旁边画出相似词替换后输入向量只小幅移动。
|
||
|
||
### 5.4 Morin & Bengio 2005:输出词表也要有数据结构
|
||
|
||
- **正式来源**:Frederic Morin, Yoshua Bengio, “Hierarchical Probabilistic Neural Network Language Model,” AISTATS 2005, PMLR R5:246–252.
|
||
- **URL**:<https://proceedings.mlr.press/r5/morin05a.html>
|
||
- **旧瓶颈**:标准 Softmax 每个训练样本都要给整个词表打分,成本与 \(|V|\) 线性增长。
|
||
- **机制**:沿二叉词树做一串二分类,把输出复杂度从 \(O(|V|)\) 降到与路径深度相关。
|
||
- **论文证据**:在它的 WordNet 约束层次上报告约 200 倍训练/识别加速。
|
||
- **边界**:树结构引入归纳偏置;高频词路径和语义树质量都会影响性能。
|
||
|
||
### 5.5 Mikolov et al. 2013:把“学词向量”单独做得极其高效
|
||
|
||
- **正式来源 A**:*Efficient Estimation of Word Representations in Vector Space*, arXiv:1301.3781.
|
||
- **正式来源 B**:*Distributed Representations of Words and Phrases and their Compositionality*, NeurIPS 2013 / arXiv:1310.4546.
|
||
- **机制**:
|
||
- CBOW:上下文预测中心词;
|
||
- Skip-gram:中心词预测邻近词;
|
||
- negative sampling:把完整归一化改成正负样本二分类近似目标;
|
||
- subsampling:降低高频词支配;
|
||
- phrase detection:学习部分多词单元。
|
||
- **边界**:
|
||
- Word2Vec 不是完整句子 LM;
|
||
- 类比线性关系是经验现象,不是所有语义关系的保证;
|
||
- 一个词型一个静态向量,多义词仍混在一起。
|
||
|
||
### 5.6 GloVe 2014:局部窗口与全局计数的另一座桥
|
||
|
||
- **来源**:Jeffrey Pennington, Richard Socher, Christopher D. Manning, “GloVe: Global Vectors for Word Representation,” EMNLP 2014.
|
||
- **URL**:<https://aclanthology.org/D14-1162/>
|
||
- **机制**:在全局共现计数上拟合加权 log-bilinear 关系。
|
||
- **边界**:不是更深的神经语言模型;仍是静态词型表示。
|
||
|
||
### 本账结论
|
||
|
||
神经 LM 的关键不只是“换成神经网络”,而是参数共享方式改变:
|
||
|
||
```text
|
||
计数 N-gram:精确符号后缀共享
|
||
类别 N-gram:离散词类共享
|
||
神经 LM:连续向量邻域共享
|
||
上下文化模型:同一 Token 还会随上下文动态改写
|
||
```
|
||
|
||
---
|
||
|
||
## 6. 循环记忆账:固定窗口消失了,信息瓶颈还在
|
||
|
||
### 6.1 Elman 1990:把上一时刻隐藏状态带到下一时刻
|
||
|
||
- **正式来源**:Jeffrey L. Elman, “Finding Structure in Time,” *Cognitive Science* 14(2):179–211, 1990.
|
||
- **DOI**:<https://doi.org/10.1207/s15516709cog1402_1>
|
||
- **机制**:context units 保存上一时刻 hidden activation;网络用当前输入和旧状态预测序列。
|
||
- **价值**:隐藏状态能形成与预测有关的结构,而非手写离散状态。
|
||
- **边界**:实验规模小;不是现代大规模 RNNLM 的性能证据。
|
||
|
||
### 6.2 Mikolov et al. 2010:RNNLM 在真实语音任务上成为强模型
|
||
|
||
- **来源**:Tomáš Mikolov et al., “Recurrent neural network based language model,” Interspeech 2010.
|
||
- **URL**:<https://www.isca-archive.org/interspeech_2010/mikolov10_interspeech.html>
|
||
- **DOI**:`10.21437/Interspeech.2010-343`
|
||
- **旧瓶颈**:Bengio 前馈 LM 的上下文长度必须预先固定。
|
||
- **论文报告**:在其混合模型与任务设置下,对比强 backoff LM 报告约 50% PPL 降低;WSJ / RT05 语音识别的 WER 相对降低约 18% / 5%。
|
||
- **边界**:这些是特定数据、混合与解码设置的作者报告;论文也明确指出训练复杂度高。
|
||
|
||
### 6.3 为什么普通 RNN 学不住很远
|
||
|
||
跨 \(k\) 步梯度包含一串 Jacobian 乘积:
|
||
|
||
\[
|
||
\frac{\partial h_t}{\partial h_{t-k}}
|
||
=\prod_{i=t-k+1}^{t}\frac{\partial h_i}{\partial h_{i-1}}
|
||
\]
|
||
|
||
若典型奇异值小于 1,信号指数衰减;大于 1,可能指数爆炸。激活饱和和重复矩阵乘法让问题更严重。
|
||
|
||
### 6.4 Bengio, Simard & Frasconi 1994:长程学习的基本困难
|
||
|
||
- **来源**:“Learning long-term dependencies with gradient descent is difficult,” IEEE Transactions on Neural Networks 5(2), 1994.
|
||
- **URL**:<https://ieeexplore.ieee.org/document/279181>
|
||
- **DOI**:`10.1109/72.279181`
|
||
- **价值**:系统阐明学习长期存储与保持梯度之间的困难。
|
||
- **边界**:不能把它简化为一句“发现了 vanishing gradient”;它讨论的是更完整的动态与优化权衡。
|
||
|
||
### 6.5 LSTM 1997:给误差信号一条受控的近恒等路径
|
||
|
||
- **正式来源**:Sepp Hochreiter, Jürgen Schmidhuber, “Long Short-Term Memory,” *Neural Computation* 9(8):1735–1780, 1997.
|
||
- **DOI**:<https://doi.org/10.1162/neco.1997.9.8.1735>
|
||
- **旧瓶颈**:原论文摘要称 recurrent backpropagation 的 insufficient, decaying error backflow 使长时距学习极慢。
|
||
- **机制直觉**:cell state 提供受控的持续通道;乘法门决定何时写入、何时读出。
|
||
- **重要边界**:课堂常见 forget / input / output 三门图包含后继改进;1997 原版没有现代默认的 forget gate。
|
||
- **进一步边界**:LSTM 缓解梯度与记忆问题,但每个时间步仍依赖前一步,训练并行性没有解决。
|
||
|
||
### 6.6 Cho et al. 2014:GRU 与 encoder–decoder 同时进入主线
|
||
|
||
- **来源**:“Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation,” EMNLP 2014 / arXiv:1406.1078.
|
||
- **URL**:<https://aclanthology.org/D14-1179/>
|
||
- **机制**:reset/update gates 控制旧状态与新候选状态混合;编码器把源序列压成定长向量,解码器条件生成。
|
||
- **边界**:GRU 不是“理论上优于 LSTM”;它是参数与门控结构不同的替代。
|
||
|
||
### 本账结论
|
||
|
||
RNN 把“固定 N 个词”换成“固定大小状态”,LSTM 把状态更新变得更可控;但三件事仍没消失:
|
||
|
||
1. 信息必须逐步走过时间;
|
||
2. 长序列训练难并行;
|
||
3. 所有历史竞争同一个状态容量。
|
||
|
||
---
|
||
|
||
## 7. 序列转导账:从一个概率源到“条件生成另一个序列”
|
||
|
||
### 7.1 语言模型与 Seq2Seq 的关系
|
||
|
||
普通 LM:
|
||
|
||
\[
|
||
P(y)=\prod_tP(y_t\mid y_{<t})
|
||
\]
|
||
|
||
条件生成:
|
||
|
||
\[
|
||
P(y\mid x)=\prod_tP(y_t\mid y_{<t},x)
|
||
\]
|
||
|
||
训练目标仍是目标序列 next-token cross-entropy;差别是每一步还条件于源序列。
|
||
|
||
### 7.2 Cho et al. 2014:一个通用 encoder–decoder
|
||
|
||
- encoder 逐步读入源序列;
|
||
- 最后状态作为定长 summary;
|
||
- decoder 以 summary 为条件逐步预测目标 token。
|
||
|
||
价值:输入和输出可以不同长度,端到端学习表示与生成。
|
||
|
||
瓶颈:不论源句多长,全部信息都压在一个固定向量中。
|
||
|
||
### 7.3 Sutskever, Vinyals & Le 2014:深层 LSTM Seq2Seq
|
||
|
||
- **正式来源**:“Sequence to Sequence Learning with Neural Networks,” NeurIPS 2014.
|
||
- **URL**:<https://proceedings.neurips.cc/paper_files/paper/2014/hash/5a18e133cbf9f257297f410bb7eca942-Abstract.html>
|
||
- **机制**:多层 LSTM encoder 映射到固定维向量,另一个 LSTM decoder 生成目标序列。
|
||
- **关键工程洞见**:把源序列反转,缩短源—目标对应词之间的最小时间距离,使优化更容易。
|
||
- **边界**:论文在特定 WMT14 英法任务上表现强,不等于固定向量瓶颈不存在;它仍是顺序模型。
|
||
|
||
### 7.4 Bahdanau, Cho & Bengio 2014/2015:不再要求一个向量记住全部
|
||
|
||
- **正式来源**:“Neural Machine Translation by Jointly Learning to Align and Translate,” ICLR 2015 / arXiv 2014.
|
||
- **URL**:<https://arxiv.org/abs/1409.0473>
|
||
- **论文动机**:明确称 fixed-length vector 是基本瓶颈。
|
||
- **机制**:每个 decoder step 根据当前状态给所有 encoder hidden states 打分,softmax 后做加权和,得到当步 context vector。
|
||
- **含义**:过去是“先压缩再生成”;现在是“生成每一步时重新检索源序列”。
|
||
- **边界**:这是 additive attention;仍有 RNN encoder/decoder,位置间训练依赖仍然存在。
|
||
|
||
### 7.5 Luong, Pham & Manning 2015:把注意力设计空间系统化
|
||
|
||
- **正式来源**:“Effective Approaches to Attention-based Neural Machine Translation,” EMNLP 2015, pp. 1412–1421.
|
||
- **URL**:<https://aclanthology.org/D15-1166/>
|
||
- **DOI**:`10.18653/v1/D15-1166`
|
||
- **比较**:global attention 看全部源词;local attention 只看预测窗口;给出 dot/general/concat 等 scoring 形式。
|
||
- **边界**:它与 Bahdanau 的网络细节不同;也不是 Transformer 的 multi-head self-attention。
|
||
|
||
### 7.6 Transformer 是本章终点,不是本章内容
|
||
|
||
- **来源**:Vaswani et al., “Attention Is All You Need,” NeurIPS 2017.
|
||
- **URL**:<https://arxiv.org/abs/1706.03762>
|
||
- **在本章只回答**:为什么 Attention 会自然成为主体——它提供直接路径和并行矩阵计算。
|
||
- **留给第 02 章**:Q/K/V、scaled dot-product、multi-head、causal mask、position、residual、FFN。
|
||
- **边界**:原论文是 encoder–decoder 机器翻译架构;现代 decoder-only LLM 是后续路线。
|
||
|
||
---
|
||
|
||
## 8. 评测与系统成本账:好想法必须付得起
|
||
|
||
### 8.1 Softmax 的词表税
|
||
|
||
标准输出:
|
||
|
||
\[
|
||
P(w\mid h)=\frac{\exp(o_w)}{\sum_{v\in V}\exp(o_v)}
|
||
\]
|
||
|
||
每个样本要计算/归一化整个词表。大词表下,输出层参数和计算都可能占主导。
|
||
|
||
### 8.2 层次 Softmax、负采样与 adaptive softmax 回答不同问题
|
||
|
||
- **层次 Softmax**:把一个 \(|V|\) 类决策变成树路径上的多个二分类;
|
||
- **负采样**:训练词表示时只更新少量正负词,不产生严格归一化的完整 LM 分布;
|
||
- **Adaptive Softmax**:按频率与计算预算分簇,让高频词走短路径、低频词共享尾部结构。
|
||
|
||
不能把三者统称为“Softmax 加速”后就认为目标完全等价。
|
||
|
||
### 8.3 Grave et al. 2016:按词频分配计算
|
||
|
||
- **来源**:Edouard Grave et al., “Efficient softmax approximation for GPUs,” arXiv:1609.04309.
|
||
- **URL**:<https://arxiv.org/abs/1609.04309>
|
||
- **机制**:利用词频长尾,把词聚成计算成本不同的簇,显式降低期望计算。
|
||
- **边界**:是近似输出结构;收益依赖硬件、批大小、词频分布和实现。
|
||
|
||
### 8.4 Chelba et al. 2013:可比的十亿词基准
|
||
|
||
- **来源**:“One Billion Word Benchmark for Measuring Progress in Statistical Language Modeling,” arXiv:1312.3005.
|
||
- **URL**:<https://arxiv.org/abs/1312.3005>
|
||
- **数据**:接近 10 亿词。
|
||
- **论文报告**:unpruned Kneser–Ney 5-gram 基线 PPL 67.6;组合技术相对降低 PPL 35%(交叉熵约 10%),RNN 模型最好。
|
||
- **边界**:数字只属于该预处理、词表与 benchmark;不能拿来与不同 tokenizer 的现代 LLM 直接比。
|
||
|
||
### 8.5 Jozefowicz et al. 2016:在 Transformer 前夜把 RNNLM 推到大规模
|
||
|
||
- **来源**:“Exploring the Limits of Language Modeling,” arXiv:1602.02410.
|
||
- **URL**:<https://arxiv.org/abs/1602.02410>
|
||
- **价值**:集中暴露大数据、大词表、计算与长程建模挑战,说明架构优雅之外还存在完整系统账。
|
||
|
||
### 8.6 Dauphin et al. 2016 与 Merity et al. 2017:历史不是一条直线
|
||
|
||
- Gated convolutional LM 展示有限感受野卷积也能竞争,并带来更高并行性;
|
||
- AWD-LSTM 用 DropConnect、NT-ASGD 等训练配方把 LSTM 基线显著做强;
|
||
- 因此 Transformer 的胜利不是“RNN 已经完全无效”,而是能力、并行性和规模化路径的综合转变。
|
||
|
||
---
|
||
|
||
## 9. 八张账合并后的最短因果链
|
||
|
||
```text
|
||
语言可视作条件随机符号源
|
||
↓
|
||
链式法则把序列拆成逐步预测
|
||
↓
|
||
有限 N-gram 让计数可行
|
||
↓
|
||
组合爆炸与未见事件 → 折扣、回退、插值
|
||
↓
|
||
离散精确匹配仍无法跨相似词泛化
|
||
↓
|
||
分布式 embedding + 神经条件分布
|
||
↓
|
||
固定窗口 → 循环状态
|
||
↓
|
||
长程梯度与顺序计算 → LSTM / GRU
|
||
↓
|
||
条件序列生成 → encoder–decoder
|
||
↓
|
||
固定向量瓶颈 → 每步软检索全部源状态
|
||
↓
|
||
Attention 成为主体 → Transformer(下一章)
|
||
```
|
||
|
||
这是一条教学因果链,不是假装每位作者都按这条线直接引用前一篇。正文必须用“解决同一瓶颈的后继节点”“后见之明下的桥”而非虚构直接历史因果。
|
||
|
||
---
|
||
|
||
## 10. 当代回声:K3 与 DeepSeek 继承了什么
|
||
|
||
### 10.1 不变量:主干仍是因果 next-token distribution
|
||
|
||
经典自回归目标:
|
||
|
||
\[
|
||
\mathcal L_\text{NTP}=-\sum_t\log P_\theta(x_t\mid x_{<t})
|
||
\]
|
||
|
||
当代变化主要发生在:
|
||
|
||
- 单位:128K / 160K 级子词词表与多模态 token;
|
||
- 上下文函数:MLA、KDA、混合注意力;
|
||
- 容量:稀疏 MoE;
|
||
- 系统:低精度、并行、通信与推测解码;
|
||
- 辅助目标:MTP;
|
||
- 后训练:SFT、偏好/RL、推理轨迹。
|
||
|
||
这些变化没有让链式法则失效。
|
||
|
||
### 10.2 DeepSeek-V3:NTP 主干 + 一层顺序 MTP
|
||
|
||
本地正式来源:`research/sources/moe/2412.19437.txt`
|
||
|
||
已核证据:
|
||
|
||
- 报告 §2.2 引入 Multi-Token Prediction;
|
||
- 顺序 MTP modules 保持 causal chain,而非若干完全独立并行头;
|
||
- 每个额外预测模块都有交叉熵损失,作为额外训练信号;
|
||
- 预训练采用 \(D=1\),即在标准下一 token 之外再预测一个额外未来 token;
|
||
- 推理时可丢弃 MTP module,也可用于 speculative decoding;
|
||
- tokenizer 是 byte-level BPE,词表 128K。
|
||
|
||
严禁写法:
|
||
|
||
- “DeepSeek-V3 改成一次预测多个 token,不再 next-token”;
|
||
- “MTP 保证推理时一次接受多个 token”;
|
||
- “MTP 就是多模态”。
|
||
|
||
### 10.3 DeepSeek-V4:继承 V3 的 MTP 主线
|
||
|
||
本地正式来源:`research/sources/long-context/2606.19348.txt`
|
||
|
||
已核证据:
|
||
|
||
- 报告写明采用与 V3 相同的 MTP strategy;
|
||
- 继承 V3 tokenizer 与特殊 token,词表 128K;
|
||
- 报告给出 MTP loss weight 前期 0.3、后期 0.1 的调度。
|
||
|
||
边界:V4 的主体创新属于长上下文、注意力与系统章节;本章只把它作为训练目标历史的当代回声。
|
||
|
||
### 10.4 Kimi K3:统一多模态 NTP 与一层 MTP 同时存在
|
||
|
||
本地正式来源:`research/sources/kimi-k3/k3_tech_report.txt`
|
||
|
||
已核证据:
|
||
|
||
- MoonViT-V2 从头训练,使用 next-token prediction;
|
||
- 视觉与文本 token 交错,在统一 next-token prediction objective 下训练;
|
||
- 配置表给出 160K vocabulary 和 one MTP layer;
|
||
- 预训练后的 MTP layer 被进一步微调为 EAGLE-3 draft,target model 冻结;
|
||
- draft 与 target 都围绕 next-token distributions 工作,用于推测解码。
|
||
|
||
准确表述:
|
||
|
||
> K3 把图像与文字放进同一条因果预测接口,同时保留一层 MTP 作为额外训练信号与 EAGLE-3 draft 的桥。多模态是条件/符号空间扩展,MTP 是预测跨度与推理加速扩展;二者不是一回事。
|
||
|
||
### 10.5 一张角色合同
|
||
|
||
| 角色 | 经典 LM | DeepSeek-V3/V4 | Kimi K3 |
|
||
|---|---|---|---|
|
||
| 主目标 | next-token NLL | next-token NLL | 统一视觉/文本 next-token NLL |
|
||
| 辅助目标 | 通常无 | 顺序 MTP,D=1 | one MTP layer |
|
||
| 推理主路径 | 单步自回归 | 可丢 MTP,仍可单步 | target 仍自回归 |
|
||
| 加速桥 | cache / batching | MTP 可服务 speculative decoding | MTP → EAGLE-3 draft |
|
||
| Tokenizer | 依模型 | byte-level BPE, 128K | vocabulary 160K |
|
||
|
||
---
|
||
|
||
## 11. 正文论文链(首版 33 个节点)
|
||
|
||
### 必讲 18 节点
|
||
|
||
1. Shannon 1948 — entropy / source
|
||
2. Shannon 1951 — next-symbol predictability
|
||
3. Good 1953 — unseen mass
|
||
4. Katz 1987 — discount + backoff
|
||
5. Elman 1990 — recurrent state
|
||
6. Brown et al. 1992 — discrete class sharing
|
||
7. Bengio et al. 1994 — long dependency optimization
|
||
8. Kneser & Ney 1995 — continuation probability
|
||
9. Hochreiter & Schmidhuber 1997 — LSTM
|
||
10. Bengio et al. 2003 — neural probabilistic LM
|
||
11. Morin & Bengio 2005 — hierarchical output
|
||
12. Mikolov et al. 2010 — practical RNNLM
|
||
13. Mikolov et al. 2013 — word2vec
|
||
14. Cho et al. 2014 — GRU encoder–decoder
|
||
15. Sutskever et al. 2014 — Seq2Seq
|
||
16. Bahdanau et al. 2014/2015 — soft alignment
|
||
17. Sennrich et al. 2016 — subword units
|
||
18. Vaswani et al. 2017 — chapter boundary
|
||
|
||
### 地图节点 14
|
||
|
||
19. Jelinek et al. 1977 — perplexity term
|
||
20. Deerwester et al. 1990 — LSA
|
||
21. Chen & Goodman 1996 — smoothing benchmark
|
||
22. Goodman 2001 — count-LM system combination
|
||
23. Mikolov et al. 2013 — negative sampling / phrases
|
||
24. Pennington et al. 2014 — GloVe
|
||
25. Chelba et al. 2013 — One Billion Word benchmark
|
||
26. Luong et al. 2015 — global/local attention
|
||
27. Kim et al. 2016 — character-aware LM
|
||
28. Jozefowicz et al. 2016 — large RNN LM
|
||
29. Grave et al. 2016 — adaptive softmax
|
||
30. Dauphin et al. 2016 — gated convolutional LM
|
||
31. Merity et al. 2017 — AWD-LSTM
|
||
32. DeepSeek-V3/V4 reports — MTP
|
||
33. Kimi K3 report — unified multimodal NTP + draft bridge
|
||
|
||
---
|
||
|
||
## 12. 四个交互实验的事实合同
|
||
|
||
### Lab A:N-gram 概率显微镜
|
||
|
||
- 可变项:阶数、未见事件、平滑强度、插值比例;
|
||
- 输出:逐步条件概率、sequence NLL、PPL;
|
||
- 必须显示:一个零概率如何让整句概率归零;
|
||
- 简化声明:使用手工小语料,不代表真实语言频率;
|
||
- 不能声称:更高阶必然更好。
|
||
|
||
### Lab B:Embedding 几何
|
||
|
||
- 可变项:one-hot / 低维分布向量、目标词;
|
||
- 输出:相似度、近邻、二维投影;
|
||
- 必须显示:一个维度不是一个固定人类概念;
|
||
- 简化声明:二维坐标为教学重绘,不是从真实 Word2Vec 权重导出;
|
||
- 不能声称:向量距离等于真正语义。
|
||
|
||
### Lab C:记忆走廊
|
||
|
||
- 可变项:距离、RNN retention、LSTM forget gate;
|
||
- 输出:信号与梯度相对强度;
|
||
- 必须显示:重复乘法的指数效应;
|
||
- 简化声明:标量 retention 是机制直觉,不是完整 Jacobian spectrum;
|
||
- 不能声称:LSTM 永不遗忘。
|
||
|
||
### Lab D:Seq2Seq 瓶颈与 Attention 桥
|
||
|
||
- 可变项:源长度、目标步、固定向量/attention;
|
||
- 输出:信息路径长度、对齐热力图、检索权重;
|
||
- 必须显示:decoder 每一步可以选择不同源位置;
|
||
- 简化声明:对齐权重为教学示意;
|
||
- 不能声称:attention weight 等于因果解释。
|
||
|
||
---
|
||
|
||
## 13. 视觉重绘清单
|
||
|
||
1. 符号源 → 条件分布 → 猜测 → surprise;
|
||
2. 链式法则的“整句拆题”带状图;
|
||
3. N-gram 上下文窗口与组合数量;
|
||
4. unseen event 把序列概率击穿;
|
||
5. Good–Turing frequency-of-frequencies;
|
||
6. Katz backoff 决策树;
|
||
7. 普通 unigram vs Kneser–Ney continuation count;
|
||
8. one-hot 正交角与 embedding 邻域;
|
||
9. Bengio 2003 lookup–concat–MLP–softmax;
|
||
10. full Softmax vs hierarchical tree;
|
||
11. Elman context loop;
|
||
12. 时间展开后的梯度乘积;
|
||
13. LSTM cell highway 与门;
|
||
14. fixed vector encoder–decoder;
|
||
15. source reversal 缩短依赖;
|
||
16. Bahdanau 每步软对齐;
|
||
17. global / local attention;
|
||
18. 八张账汇合到 Transformer 的总地图;
|
||
19. NTP / MTP / multimodal / speculative decoding 角色分离图。
|
||
|
||
所有图均原创重绘,标题注明“机制示意”或“依据原论文重绘”,不直接复制受版权保护的论文插图。
|
||
|
||
---
|
||
|
||
## 14. 事实检查清单
|
||
|
||
- [x] Shannon 1948 / 1951 DOI 与范围
|
||
- [x] Good 1953 DOI 与论文摘要
|
||
- [x] Katz 1987 IEEE 记录
|
||
- [x] Brown 1992 ACL Anthology 记录
|
||
- [x] Elman 1990 DOI
|
||
- [x] Bengio 1994 IEEE 记录
|
||
- [x] Kneser–Ney 1995 DOI / 页码
|
||
- [x] Chen–Goodman 1996 ACL 版本
|
||
- [x] LSTM 1997 MIT Press 页面
|
||
- [x] Bengio 2003 JMLR 版本与作者列表
|
||
- [x] Morin–Bengio 2005 PMLR 记录
|
||
- [x] Mikolov 2010 ISCA 记录与限定数字
|
||
- [x] Word2Vec 两篇 2013 论文分开
|
||
- [x] Cho / Sutskever / Bahdanau / Luong 版本边界
|
||
- [x] Sennrich 2016 ACL 版本
|
||
- [x] One Billion Word 数字与范围
|
||
- [x] adaptive softmax 原文摘要
|
||
- [x] K3 统一 NTP、160K、一层 MTP、EAGLE-3 draft
|
||
- [x] DeepSeek-V3 128K、D=1、MTP 可弃/可加速
|
||
- [x] DeepSeek-V4 继承 V3 MTP 与权重调度
|
||
- [ ] 对旧论文外链做发布前自动 HEAD/GET 检查
|
||
- [ ] 第二轮逐图精读 Kneser–Ney、LSTM、Bahdanau 实验表
|