Transformer:核心架构多头注意力机制(Multi-Head Attention(MHA))

部署运行你感兴趣的模型镜像

为了更清晰地展示 Transformer Encoder Block 中的数学运算,我们将以矩阵形式来表达每个步骤。假设输入是一个形状为 (L,d)(L,d) 的矩阵X,其中 L 是序列长度,d 是隐藏维度。

1. Multi-Head Attention(MHA)

输入:
  • X\in R^{L\times d}
线性变换得到 Q, K, V:

Q=XWQ,K=XWK,V=XWV

其中:

  • WQ,WK,WV \in R^{d\times d_k}​ 是权重矩阵,
  • dk=d/h 是每个头的维度,h 是注意力头的数量。
Scaled Dot-Product Attention 计算:

由于我们使用的是 Multi-Head Attention,所以需要对 Q,K,V 进行划分,并独立计算每个头的注意力输出。

Q=[Q_1;Q_2;...;Q_h], K=[K_1;K_2;...;K_h] , V=[V_1;V_2;...;V_h]

每个头的注意力输出为:

将所有头的结果拼接并投影回原始维度:

其中W_0\in R^{d\times d}是用于投影的权重矩阵。

2. Add & Norm(残差连接 + 层归一化)

对于第一层的 Add & Norm:

3. Feed-Forward Network(FFN)

FFN 包含两个线性变换和一个激活函数(通常为 ReLU):

矩阵形式表示为:

其中:

  •  是权重矩阵,
  •  是偏置项(在实际实现中,偏置项通常是按列广播的)。

4. 第二层的 Add & Norm

对于第二层的 Add & Norm:

5. 完整 Encoder Block 公式

综合以上步骤,整个 Encoder Block 可以表示为:

注意力机制:先是Q和K相乘得到一个相似系数的矩阵,然后再和V相乘最终得到一个包含上下文信息的词(向量矩阵)

多头注意力机制:V、K、Q分别经过线性变换,然后分组。每一组进行Scaled Dot-Product Attention 学习到不同的相似关系

经过注意力计算后将其Cnoncat拼接起来
 


示例:具体矩阵尺寸

假设:

  • 序列长度 L=10
  • 隐藏维度 d=512
  • 注意力头数 h=8
  • 每个头的维度 d_k=64(因为 d_k=d/h=512/8=64
  • 前馈网络中间层维度d_{ff}=2048

那么:

这样,通过这些矩阵运算,我们可以看到数据如何在 Transformer 的 Encoder Block 中流动和变换。

您可能感兴趣的与本文相关的镜像

Seed-Coder-8B-Base

Seed-Coder-8B-Base

文本生成
Seed-Coder

Seed-Coder是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体,由字节团队开源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值