LLM¶
零、回顾:神经序列模型(RNN / LSTM)¶
RNN¶
循环神经网络的核心思想:循环使得信息可以从当前步传递到下一步,可看作同一个神经网络的多次复制。
- 短距离依赖:如「云飘在 天上」
- 长距离依赖:如「我在法国长大 ...... 我能讲一口流利的 法语」→ 标准 RNN 难以处理 → 引出 LSTM
LSTM(Long Short-Term Memory)¶
将长期和短期的信息都考虑进来,设计了门(gate)来避免梯度消失。三个要点:
- 什么应该被忘记?
- 什么应该被记住?
- 基于当前状态和输入,输出应该是什么?
LSTM 的三部分结构¶
第一部分:忘记门(Forget Gate)
Sigmoid 层输出 0 到 1 之间的数值,描述每个部分有多少量可以通过。0 代表「不许任何量通过」,1 代表「允许任意量通过」。
第二部分:输入门(Input Gate)— 什么应该被记住
- Sigmoid 层(输入门层)决定将要更新什么值
- Tanh 层创建一个新的候选值向量
- 更新旧神经元状态:\(C_{t-1} \to C_t\)
第三部分:输出门(Output Gate)— 计算输出
- Sigmoid 层确定神经元状态的哪个部分将被输出
- 神经元状态通过 tanh 处理(得到 -1 到 1 之间的值),与 sigmoid 门的输出相乘
LSTM 缺点
参数太多,可能导致过拟合。
一、什么是语言模型¶
语言模型(Language Model)的核心任务:预测一个句子在语言中出现的概率。
语言模型近年发展历程:
| 阶段 | 代表 | 特点 |
|---|---|---|
| 统计语言模型(SLM) | N-gram | 基于马尔科夫假设,当前词概率仅与前 \(n-1\) 个词有关 |
| 神经语言模型(NLM) | NNLM, word2vec | 词映射到向量,神经网络预测 |
| 预训练语言模型(PLM) | Transformer, BERT, T5 | 上下文相关的词向量,大规模预训练 |
| 大语言模型(LLM) | GPT, Claude, DeepSeek, Qwen, 豆包... | 超大参数量,涌现能力 |
二、统计语言模型¶
N-gram LM:基于马尔科夫假设,当前词概率仅与前 \(n-1\) 个词有关。
回顾
详见课程「马尔科夫模型」一节。
三、神经语言模型¶
3.1 基本思想¶
单词映射到词向量,再由神经网络预测当前时刻词。衍生出词汇表示学习(representation learning),生成词向量(word embedding)。
3.2 word2vec¶
- One-hot 词表示(稀疏向量):e.g. \((0, 0, 0, \ldots, 0, 1, 0, 0)\)
- 分布式语义表示:从 one-hot 表示到 embedding 表示(稠密向量),增强了语义表示能力,克服数据稀疏性问题
核心思想:「You shall know a word by the company it keeps.」— John Rupert Firth
分布式语义
通过词的上下文(周围的词)来学习词的向量表示。语义相近的词,其词向量在空间中距离也相近。
静态表示的局限¶
- 上下文无关的词向量表示无法处理一词多义的问题
- 例如:
- I go to the bank for money deposit.(银行)
- I go to the bank for fishing.(河岸)
问题
静态 word2vec 为每个词只分配一个固定向量,没有语境信息,无法区分多义词。
四、预训练语言模型¶
4.1 背景:自监督学习¶
- 能否不使用标注数据来获取知识?
- 自监督学习:挖掘数据内部信息作为监督信号
- 对比学习是一种代表性自监督学习方法
- 正例:同一张图片的不同处理结果(随机裁剪、颜色失真等)
- 负例:其他图片
4.2 上下文相关的词向量 — 预训练¶
- 让模型具备较好的文本理解能力,该能力可以很好地迁移到下游任务
- 最早的工作使用 RNN,在大规模文本上进行语言模型的预训练(如 ELMo、ULMFiT)
4.3 Transformer 架构¶
Transformer 模型架构(「Attention Is All You Need」, NIPS 2017):
- 编码器(左):将输入变换为隐藏层特征
- 解码器(右):将隐藏层特征变换为自然语言序列
- 核心组件:多头注意力、前馈网络、残差连接与层归一化
编码器-解码器结构¶
- 编码器、解码器均为六层首位相连堆砌而成
- 结构完全相同,但不共享参数
- 每个位置的词仅流过自己的编码器路径
- 在 Self-Attention 层中,路径两两之间相互依赖;前向网络层则没有依赖性,可并行执行
自注意力(Self-Attention)¶
注意力可以近似为一种基于相似度的查表操作。
Scaled Dot-Product Attention 计算:
其中 \(d_k\) 是隐藏层的维度。
为什么除以 \(\sqrt{d_k}\)?
当维度很高时,点积部分数值过大,使得 softmax 进入梯度过小的区域。除以 \(\sqrt{d_k}\)(对隐层维度做平方根规范化)缓解该问题。
多头注意力(Multi-Head Attention)¶
每一组都是随机初始化,经过训练后输入向量可被映射到不同的子表示空间中。
- 将多个注意力头的输出拼接(concat)后乘以一个权重矩阵 \(W^O\)
其中 \(\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)\)。
自注意力的含义¶
- 编码器、解码器中:\(Q\)、\(K\)、\(V\) 相同,都是自身前一层的输出
- 交叉注意力(编-解码器注意力):\(Q\) 来自前一层输出,\(K\)、\(V\) 来自编码器输出
位置编码(Positional Encoding)¶
自注意力机制中并未考虑输入的位置信息,需要在输入词向量中提前加入位置信息。
其中 \(i\) 是位置,\(2j, 2j+1\) 是维度序号。
残差连接与层归一化¶
- 残差连接(Add):将输入与输出相加,缓解梯度爆炸和消失
- 层归一化(Norm):对数据进行重新放缩,提升训练的稳定性
解码器输出 → 词¶
- 线性层:全连接,将解码器的最后输出映射到 logits 向量(若模型有 1 万个单词,则 logit 向量有 1 万维)
- Softmax 层:把分数转化为概率值,最高值对应的维度就是该步输出的单词
4.4 预训练架构总结¶
配备预训练任务进行自监督学习,大规模学习文本中语言知识。通用任务解决器,初步体现出泛化能力。
关键意义
Transformer 架构使得并行训练深层次架构的神经网络成为可能,奠定了大模型的根基。
五、大语言模型(LLM)¶
5.1 为什么叫「大」模型?¶
LLM 时代,隐层的维度较大(hidden layers)。
Transformer 参数量可近似计算为:
- \(l\):层数,\(h\):隐层维度,\(V\):词汇表大小
- 自注意力有 \(Q\)、\(K\)、\(V\) 的权重矩阵及输出层,每个是 \(h \times h\),一共 \(4h^2\)
- 前馈网络通常两层:\(h \to 4h\) 和 \(4h \to h\),参数 \(h \times 4h + 4h \times h = 8h^2\)
- 嵌入层参数 \(Vh\)
参数量对比:
| 模型 | 隐层维度 |
|---|---|
| BERT | 768 |
| LLaMA-7B | 4096 |
| LLaMA-13B | 5120(50 层) |
| LLaMA-70B | 8192 |
5.2 大模型规模一览¶
| 模型 | 发布时间 | 参数量 | 训练数据 | 训练 GPU 量 |
|---|---|---|---|---|
| GPT-1 | 2018.06 | 1.17 亿 | ~5GB | 8(P100) |
| GPT-2 | 2019.02 | 15 亿 | 40GB | 256(V100) |
| GPT-3 | 2020.05 | 1750 亿 | 570GB | 10,000(A100) |
| GLM-130B | 2022.08 | 1300 亿 | 400GB | 1,024(A100) |
| LLaMA-7B | 2023.02 | 70 亿 | 1T tokens | 2,048(A100) |
| GPT-4 | 2023.03 | ~1.8 万亿(总) / 2800 亿(激活) | 13T tokens | ~25,000(A100/H100) |
| Qwen-72B | 2023.08 | 720 亿 | 3T tokens | 4,096(A100) |
| 豆包(Doubao) | 2024.03 | 1280 亿 | 2.5T tokens | 8,192(A100) |
| DeepSeek-V3 | 2024.07 | 6710 亿(总) / 370 亿(激活) | 8T tokens | 12,000(A100/H100) |
直观感受
如果 1 秒能数 10 个数,那么数完 1750 亿大约需要 550 年。
5.3 涌现现象(Emergence)¶
涌现(Emergent Abilities)
小模型中没有、只出现在大模型中的能力。
- 大参数量 + 大计算量(FLOPs)→ 模型突然展现出此前不存在的任务能力
- 某些能力在模型规模达到某个临界点之前几乎不存在,超过临界点后性能急剧提升
为什么出现涌现? — 尚未解决的疑问,当前猜想:
- 很多任务需要更强的模型能力(参数越多意味着更强的拟合能力,如多跳推理)
- 度量指标不够平滑,导致涌现实际上是能力差距的「假」反应
- 知识表示的密集程度需要达到一定程度才可以
5.4 顿悟现象(Grokking)¶
顿悟(Grokking, OpenAI 2022)
模型在训练初期表现不佳,但随着训练数据的增加和训练时间的延长,模型在某个时刻突然展现出对任务规律的理解和泛化能力。
- 与涌现不同:涌现关注模型规模带来的能力跃迁,顿悟关注训练时长/数据量带来的能力跃迁
5.5 大语言模型处理的基本流程¶
大语言模型的处理遵循以下基本流程(下节课继续)。
总结¶
| 阶段 | 关键技术 | 核心贡献 |
|---|---|---|
| 统计语言模型 | N-gram | 马尔科夫假设,简单有效 |
| 神经语言模型 | word2vec | 分布式语义表示,克服稀疏性 |
| 预训练语言模型 | Transformer | 并行训练、自注意力、上下文相关表示 |
| 大语言模型 | Scaling | 涌现能力、通用任务解决 |