Lecture 17: Large Language Models — Learning Tasks, Language Modeling, Embeddings, Transformers

目录 · ← l16 · l18 →

第五部分:现代主题——大语言模型


Lecture 17: Large Language Models — Learning Tasks, Language Modeling, Embeddings, Transformers

概述

本讲把课程知识(监督学习、GLM、神经网络、自监督学习)汇聚到现代深度学习的旗舰:大语言模型 (LLM)。核心问题:模型如何“学会”语言?答案是语言建模——在大规模文本上做自监督的“预测下一个词”,由此涌现出理解、推理、生成能力。本讲覆盖词嵌入、注意力机制与 Transformer 架构,以及 LLM 的训练范式(预训练 → 对齐)。

核心概念与数学直觉
  • 语言建模 (Language Modeling):给定前文 $x_1, \dots, x_{t-1}$,预测下一个词的概率分布 $P(x_t \vert x_1, \dots, x_{t-1})$。
    • 自监督视角:文本本身就是标签(下一个词)——无需人工标注,数据近乎无限。这是 LLM 规模化的基石。
    • 损失:交叉熵(负对数似然):$\mathcal{L} = -\frac{1}{T}\sum_{t=1}^{T} \log P_\theta(x_t \| x_{<t})$——最小化平均预测困惑度。
    • 困惑度 (Perplexity):$\text{PPL} = \exp(\mathcal{L})$——模型对下一个词的“平均困惑程度”,越低越好。
    • 训练范式预训练 (pretraining)(海量文本自监督)→ 指令微调 (instruction tuning)(人类指令 + 答案监督)→ 对齐 (alignment)(RLHF/DPO 让输出符合人类偏好)。
  • 词嵌入 (Word Embeddings)
    • 问题:词是离散符号(one-hot 是 $V$ 维、无语义结构)。嵌入 = 把每个词映射为稠密向量 $e_w \in \mathbb{R}^d$,使语义相近的词向量相近
    • 直觉king − man + woman ≈ queen——嵌入空间编码语义关系(类比推理)。向量空间里,“性别”是 king→queen 的方向,“皇权”是 king→queen 的另一维度。
    • 从 Word2Vec 到上下文嵌入:静态嵌入(Word2Vec/GloVe,每个词一个向量,无法区分多义词)→ 上下文嵌入(如 BERT/LLM 内部表示:同一个词在不同句子的向量不同,由其上下文决定)。
    • 现代视角:LLM 第一层把 token 映射到嵌入,各层 Transformer 不断“精炼”这些表示——最后层输出即上下文相关的语义向量。
  • 注意力机制 (Attention):让模型在预测每个词时有选择地关注输入中的相关部分
    • 核心公式(缩放点积注意力)$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V$
      • $Q$(Query,查询):“我在找什么”——当前词的表示。
      • $K$(Key,键):“我是什么”——各输入词的标签。
      • $V$(Value,值):“我提供什么”——各输入词的内容。
      • $QK^T$:查询与所有键的点积 = 相似度分数;除以 $\sqrt{d_k}$ 防点积过大使 softmax 饱和(梯度消失)。
      • softmax:把分数变成注意力权重(和为 1 的分布)。
      • $\times V$:按权重加权求和各词内容——输出是“输入中与我相关的信息的混合”。
    • 直觉类比:阅读理解时,读到“它”会去文中找“它指代谁”(Query 匹配 Key),然后把那个词的信息(Value)带入理解(加权平均)。
    • 多头注意力 (Multi-head):并行多组 $(Q,K,V)$ 投影,每组关注不同关系(语法、指代、语义),拼接后线性变换——捕获多种依赖。
  • Transformer 架构(GPT/BERT 的骨干):
    • 结构:嵌入层 → $L$ 层 Transformer 块(每块 = 多头自注意力 + 前馈网络(MLP),各带残差连接与 LayerNorm)→ 输出层。
    • 自注意力 (Self-attention):$Q,K,V$ 都来自同一序列——每个位置关注序列内所有位置(含自身),建模长距离依赖(对比 RNN 的逐步传播,注意力是 $O(1)$ 路径直达任意远)。
    • 位置编码 (Positional Encoding):注意力本身不感知顺序(置换等变)——必须注入位置信息(正弦位置编码或可学习位置嵌入)。这是“词序信息从哪来”的答案。
    • 因果掩码 (Causal Masking):语言模型的自注意力只允许看过去的词(上三角掩码),保证预测 $x_t$ 时看不到未来——训练与推理一致。
    • 前馈层 (MLP):逐位置的非线性变换——存储“知识/模式”(研究表明 MLP 承担大量事实记忆)。
    • 为什么深度 Transformer 有效:注意力负责“信息路由”(谁关注谁),MLP 负责“信息加工”(把路由来的信息变换);残差连接保证深层梯度流动(呼应 L12 梯度消失)。
  • LLM 的关键能力与规模化
    • 涌现能力 (Emergent abilities):模型规模(参数量、数据量)跨越阈值后,思维链、指令遵循、少样本学习等能力突然出现——并非显式设计。
    • 缩放定律 (Scaling Laws):损失随参数量、数据量、计算量的幂律下降——投入与收益可预测,驱动“越大越好”竞赛。
    • 训练三要素:数据(质量/多样性)、规模(参数)、对齐(RLHF)。数据质量常比参数量更重要。
算法伪代码与逻辑解说:GPT 式自回归生成

伪代码

输入:
    - 预训练 LLM(Transformer 解码器): P_θ(x_t | x_<t)
    - 提示词 prompt,生成长度 max_new_tokens,采样温度 T,top-p 阈值 p

输出:
    - 生成的续写文本

1. tokens = tokenize(prompt)                      // 词元化: 文本 → token id 序列
2. 对 step = 1..max_new_tokens:
    2.1 logits = model(tokens)                    // 前向: 最后位置输出词表 logits
    2.2 logits = logits[-1] / T                   // 温度缩放(T<1 更确定, T>1 更多样)
    2.3 probs = softmax(logits)
    2.4 若使用 top-p: 截断累积概率 <= p 的最小集合,重归一化
    2.5 next_token = sample(probs)                // 从分布采样(或 argmax = 贪心)
    2.6 tokens.append(next_token)
3. 返回 detokenize(tokens)

【算法逻辑解说】

  1. Step 1 词元化 (Tokenization):文本切成子词单元(如 BPE)——词表约 3 万–20 万,平衡“生词覆盖”与“序列长度”。
  2. Step 2.1 前向:解码器每步只取最后一个位置的 logits——但自注意力已把整个前缀的信息汇聚到该位置(KV 缓存可加速:只需算新 token 的注意力)。
  3. Step 2.2–2.4 采样控制:温度 $T$ 调节分布尖锐度($T \to 0$ 贪心、$T \to \infty$ 均匀);top-p 截断低概率尾巴防“胡言乱语”。解码策略是生成质量的工程核心
  4. Step 2.5 自回归循环:每次生成一个 token 并拼回输入——这就是“自回归 (autoregressive)”:预测下一步,把结果当输入再预测下一步(与马尔可夫链的迭代精神一致)。
  5. 复杂度:生成 $N$ 个 token 需 $N$ 次前向(序列长 $O(N)$)——总 $O(N^2)$ 量级(注意力二次复杂度),长文本生成慢是工程挑战(FlashAttention、KV 缓存缓解)。
关键要点
  1. LLM 的核心任务是语言建模:预测下一个词的自监督学习——数据=文本本身。
  2. 嵌入把离散词映射为语义向量空间(king−man+woman≈queen)。
  3. 注意力 = 软检索:Q 匹配 K、按权重聚合 V;多头捕获多种关系。
  4. Transformer = 注意力(信息路由)+ MLP(信息加工)+ 残差/归一化(稳定训练);因果掩码保证自回归一致性。
  5. 规模 + 数据 + 对齐 → 涌现能力;困惑度/交叉熵是核心训练指标。
常见误区与注意事项
  • 混淆嵌入与上下文表示:静态嵌入(每词一个向量)≠ LLM 逐层上下文表示(每词每层一个向量)——后者才编码语境。
  • 忽视因果掩码:训练时若不掩码未来 token,模型“偷看答案”,测试(自回归)时性能崩盘。
  • 注意力二次复杂度:长上下文(100k+ tokens)下朴素注意力内存爆炸——需稀疏注意力/FlashAttention 等工程手段。
  • 用困惑度直接比较不同词表模型:困惑度依赖词元化方式(BPE 粒度不同不可比);同词表内比较才公平。
  • 把“预测下一个词”误读为“死记硬背”:语言建模的副产品(压缩=理解)使其获得推理能力;但幻觉(编造事实)仍是固有风险(L18 讨论缓解)。
  • 忽略位置编码:把句子打乱重排后注意力结果不变——位置信息必须显式注入,否则模型是“词袋 Transformer”。
思考题
  1. 问题:为什么注意力要除以 $\sqrt{d_k}$?
    • 答案:$Q,K$ 各分量若近似独立同分布(均值 0、方差 1),点积 $Q \cdot K$ 的方差为 $d_k$——维度越大点积越大,softmax 输入进入饱和区,梯度趋近 0。除以 $\sqrt{d_k}$ 把方差归一化回 1,保持 softmax 梯度健康。
  2. 问题:RNN 与 Transformer 在处理长序列时各自的瓶颈是什么?
    • 答案:RNN 逐时间步传播隐藏状态——长距离信息要经过 $O(L)$ 步传递,梯度消失/爆炸严重(L12 同款问题)。Transformer 自注意力任意两个位置一步直达($O(1)$ 路径),长距离依赖建模天然更优;但注意力对所有位置两两计算,$O(L^2)$ 时间/内存(长序列贵)。两者是“路径长度 vs 计算量”的权衡。
  3. 问题:温度 $T \to 0$ 与 $T \to \infty$ 的生成各有什么风险?
    • 答案:$T \to 0$(贪心)输出确定、连贯但重复乏味(陷入高频模式);$T \to \infty$(均匀采样)输出多样但语无伦次。实践中 $T \in [0.7, 1.0]$ + top-p 常用——多样性(创造)与一致性(正确)的权衡,类似探索-利用。