在深度学习中,层数和参数规模是模型复杂度的两个关键维度。理解 Transformer 这类大型模型与简单线性模型的对应关系,有助于从本质上把握模型设计的核心思想。
对于输入维度为\(d_{in}\),输出维度为\(d_{out}\)的线性层:
- 参数数量:权重矩阵W的大小为\(d_{in} \times d_{out}\),偏置向量b的大小为\(d_{out}\),总参数为\(d_{in} \times d_{out} + d_{out}\)。
- 计算过程:\(y = Wx + b\),其中x是输入向量,y是输出向量。
若有L层 MLP,每层维度分别为\(d_0, d_1, \dots, d_L\):
- 总参数数量:\(\sum_{i=1}^{L} (d_{i-1} \times d_i + d_i)\)。
- 计算过程:\(h_0 = x\),\(h_i = \sigma(W_i h_{i-1} + b_i)\),其中\(\sigma\)是激活函数。
一个标准 Transformer 层包含:
- 自注意力机制(Self-Attention):
- 查询矩阵\(W_q\)、键矩阵\(W_k\)、值矩阵\(W_v\),每个大小为\(d_{model} \times d_{head}\)(假设h个头,总维度\(d_{model} = h \times d_{head}\))。
- 输出投影矩阵\(W_o\),大小为\((h \times d_{head}) \times d_{model}\)。
- 前馈神经网络(FFN):
- 第一层权重\(W_1\),大小为\(d_{model} \times d_{ff}\);第二层权重\(W_2\),大小为\(d_{ff} \times d_{model}\)。
- 层归一化(LayerNorm):每个 LayerNorm 包含两个可学习参数(缩放因子和偏移量),维度均为\(d_{model}\)。
对于单头注意力(简化计算):
- 自注意力参数:\(3 \times (d_{model} \times d_{model}) + d_{model} \times d_{model} = 4 \times d_{model}^2\)
- 前馈网络参数:\(d_{model} \times d_{ff} + d_{ff} + d_{ff} \times d_{model} + d_{model} = 2 \times d_{model} \times d_{ff} + d_{ff} + d_{model}\)
- 层归一化参数:\(2 \times d_{model}\)
- 总参数:\(4 \times d_{model}^2 + 2 \times d_{model} \times d_{ff} + d_{ff} + 3 \times d_{model}\)
- 层数对应:Transformer 的层数(如 BERT-base 为 12 层,GPT-3 为 96 层)对应 MLP 的隐藏层层数。
- 参数规模对应:
- 每个 Transformer 层的参数约为\(O(d_{model}^2)\),远大于传统线性层的\(O(d_{in} \times d_{out})\)。
- 若将 Transformer 视为一个超大规模的 MLP,其总参数可等效为:
\(\text{总参数} \approx \text{层数} \times (4 \times d_{model}^2 + 2 \times d_{model} \times d_{ff})\)
假设输入维度\(d_{in}=100\),输出维度\(d_{out}=10\):
- 参数数量:\(100 \times 10 + 10 = 1,010\)。
假设\(d_{model}=512\),\(d_{ff}=2048\),层数\(L=6\):
- 单一层参数:
\(4 \times 512^2 + 2 \times 512 \times 2048 + 2048 + 3 \times 512 \approx 2.7 \text{百万}\)
- 6 层总参数:\(6 \times 2.7 \text{百万} \approx 16.2 \text{百万}\)。
假设\(d_{model}=12,288\),\(d_{ff}=49,152\),层数\(L=96\):
- 单一层参数:
\(4 \times 12,288^2 + 2 \times 12,288 \times 49,152 + 49,152 + 3 \times 12,288 \approx 1.82 \text{亿}\)
- 96 层总参数:\(96 \times 1.82 \text{亿} \approx 175 \text{亿}\)。
-
长距离依赖建模:
自注意力机制通过全局交互捕获序列间的复杂关系,需要更多参数学习这种非线性映射。
-
并行计算优势:
Transformer 通过多头注意力和前馈网络的并行结构,使参数利用效率更高(对比 RNN 的顺序计算)。
-
表征能力提升:
更多参数意味着更强的函数逼近能力,尤其在处理大规模语料(如 Web 级文本)时,需要足够容量存储语言知识。
-
Transformer 中参数规模与模型性能的关系?
- 答:在一定范围内,参数越多(如从 BERT-base 到 BERT-large),模型在下游任务上的表现越好,但存在边际收益递减(如参数量从 1B 增加到 10B 时,性能提升可能有限)。此外,参数规模需与训练数据量匹配,否则易过拟合。
-
如何控制 Transformer 的参数量?
- 答:
- 减少层数(如从 12 层到 6 层);
- 降低隐藏维度\(d_{model}\);
- 使用参数高效微调(PEFT)技术(如 LoRA)冻结大部分参数,仅训练少量适配器;
- 采用量化(如 INT8、FP4)压缩模型权重。
-
对比 Transformer 与 RNN 的参数效率?
- 答:
- RNN 的参数共享机制(时间步间共享权重)使其参数量相对小(如 LSTM 的参数量为\(4 \times d_{hidden}^2\)),但处理长序列时效率低;
- Transformer 的参数量更大,但通过并行计算和自注意力机制,能更有效地捕获长距离依赖,训练效率更高。
从参数角度看,Transformer 可视为传统线性模型的指数级扩展:
- 层数对应:Transformer 的每一层相当于 MLP 的一个隐藏层,但功能更复杂(包含注意力和前馈网络)。
- 参数增长:传统线性层的参数规模为\(O(d_{in} \times d_{out})\),而 Transformer 层为\(O(d_{model}^2)\),导致总参数随模型规模呈平方级增长。
- 设计本质:更多参数和层数是为了捕获语言的复杂结构和语义关系,在大数据时代,这种 “暴力美学” 已被证明能显著提升模型性能。