基于 "Attention is All You Need" 论文的交互式学习工具
| 模型类型 | 核心机制 | 优点 | 缺点 | 计算复杂度 |
|---|---|---|---|---|
| RNN/LSTM | 循环连接 | • 天然处理序列 • 参数共享 |
• 无法并行计算 • 长距离依赖困难 • 梯度消失/爆炸 |
$O(n \cdot d^2)$ |
| CNN | 卷积操作 | • 可并行计算 • 局部特征提取 |
• 感受野受限 • 需要多层堆叠 • 位置信息丢失 |
$O(k \cdot n \cdot d^2)$ |
| Transformer | 自注意力 | • 完全并行化 • 全局依赖建模 • 动态权重 |
• 内存占用大 • 需要位置编码 |
$O(n^2 \cdot d)$ |
Self-Attention计算公式:
$$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$其中:
多头注意力公式:
$$\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W^O$$其中每个注意力头计算为:
$$\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)$$参数维度:
正弦位置编码公式:
$$PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{model}}}\right)$$ $$PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{model}}}\right)$$其中:
编码器由N个相同的层堆叠而成,每层包含两个子层:
前馈网络:
$$\text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2$$其中:$W_1 \in \mathbb{R}^{d_{model} \times d_{ff}}$,$W_2 \in \mathbb{R}^{d_{ff} \times d_{model}}$
通常设置:$d_{ff} = 4 \times d_{model}$
每个子层都使用残差连接和层归一化:
$$\text{LayerNorm}(x + \text{Sublayer}(x))$$解码器也由N个相同的层堆叠而成,每层包含三个子层:
解码器的自注意力使用下三角掩码矩阵,确保位置$i$只能关注位置$\leq i$的信息。
| 特性 | 标准Transformer | GPT |
|---|---|---|
| 架构 | 编码器-解码器 | 仅解码器 |
| 注意力模式 | 编码器双向,解码器单向 | 单向(自回归) |
| 预训练任务 | 监督学习(如翻译) | 无监督语言建模 |
| 应用 | 序列到序列任务 | 文本生成、理解任务 |
训练目标:
$$L(\theta) = -\sum_{i=1}^{n} \log P(x_i | x_1, x_2, ..., x_{i-1}; \theta)$$模型学习预测序列中的下一个词,给定所有之前的词。
输入: The cat
已生成:
当前预测:
Step 1: 词嵌入(假设维度=4)
嵌入层:38.4M
注意力层:28.3M
前馈网络:56.6M
层归一化:0.02M
总参数量:123.3M