【Transformer】解密Transformer核心模块可训练参数

在Transformer模型中,所有可训练(trainable)的模块构成了其核心架构,每个模块都有其特定的功能和意义,并且都包含可通过反向传播进行优化的参数。下面是对各个模块的详细阐述:


🧠 1. 词嵌入层(Embedding Layer)

🔹 功能/意义:

  • 将输入的离散token(如单词或子词)映射为连续的向量表示(词向量),便于模型进行数值运算。

  • 使得模型能够捕捉词汇之间的语义和语法相似性。

🔹 可训练参数:

  • 一个形状为 

    • V 是词汇表大小。

    • d_model 是模型的隐藏层维度(如512)。

例如:输入一个词的ID为 i,则嵌入层输出该词的向量表示 E[i]


🧠 2. 位置编码(Positional Encoding)

🔹 功能/意义:

  • Transformer 没有像RNN那样的时序结构,因此需要显式地加入位置信息。

  • 位置编码用于为模型提供序列中每个词的位置信息,使模型能够理解顺序关系。

🔹 可训练参数:

  • 传统Transformer使用固定的位置编码(如正弦/余弦函数)。

  • 但在现代实现中,位置编码通常是可学习的嵌入向量(learnable positional embeddings),即:

    • 一个形状为 (max_seq_len, d_model) 的可学习矩阵。

max_seq_len 是模型支持的最大序列长度。


🧠 3. 多头注意力层(Multi-Head Attention)

🔹 功能/意义:

  • 实现自注意力机制(Self-Attention),让模型在处理每个词时可以“关注”到序列中的其他词。

  • 多头(Multi-Head)设计允许模型从不同表示子空间中学习不同的注意力模式,增强表达能力。

🔹 可训练参数:

每个多头注意力模块包含以下线性变换的参数:

  • 查询(Query)矩阵:W_Q ∈ R^{d_model × d_k}

  • 键(Key)矩阵:W_K ∈ R^{d_model × d_k}

  • 值(Value)矩阵:W_V ∈ R^{d_model × d_v}

  • 输出线性变换矩阵:W_O ∈ R^{d_v × d_model}

其中,d_k = d_v = d_model / hh 是头的数量。

所有参数在训练中通过反向传播优化。


🧠 4. 前馈神经网络(Feedforward Neural Network, FFN)

🔹 功能/意义:

  • 对每个位置的表示进行非线性变换,增加模型的表达能力。

  • 是一个位置共享的全连接网络,独立地作用于每个位置。

🔹 结构:

FFN(x) = max(0, xW1 + b1)W2 + b2

🔹 可训练参数:

  • 两个线性变换矩阵和对应的偏置项:

    • W1 ∈ R^{d_model × d_ff}

    • b1 ∈ R^{d_ff}

    • W2 ∈ R^{d_ff × d_model}

    • b2 ∈ R^{d_model}

d_ff 是前馈网络的中间维度,通常为d_model的4倍。


🧠 5. 层归一化(Layer Normalization)

🔹 功能/意义:

  • 对每个样本的每个位置进行标准化处理,加速训练,提升模型稳定性。

  • 与Batch Norm不同,Layer Norm不依赖于batch size,更适合Transformer结构。

🔹 可训练参数:

  • 两个可学习参数:

    • 缩放参数(gamma):γ ∈ R^{d_model}

    • 偏移参数(beta):β ∈ R^{d_model}

这些参数用于对标准化后的数据进行仿射变换(scale + shift)。


🧾 总结表格:

模块

功能

可训练参数

参数维度

是否可学习

词嵌入层

将token映射为向量

词嵌入矩阵

(V, d_model)

✅ 是

位置编码

提供序列位置信息

位置嵌入矩阵

(max_seq_len, d_model)

✅ 是(learnable)

多头注意力

计算注意力权重

Q/K/V/O矩阵及偏置

(d_model × d_k) * 3 + (d_v × d_model)

✅ 是

前馈网络

非线性变换

两层线性变换

(d_model × d_ff) + (d_ff × d_model)

✅ 是

层归一化

标准化输入

缩放和偏移参数

d_model × 2

✅ 是


🧩 补充说明:

  • 参数数量估算(以 

    • Embedding: V × 512

    • Positional Encoding: max_seq_len × 512

    • Multi-Head Attention(每层): 约 4 × 512 × 512 = 1M+

    • FFN(每层): 约 512 × 2048 + 2048 × 512 = ~2.1M

    • LayerNorm(每层): 2 × 512 = 1024

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值