- 博客(3)
- 收藏
- 关注
原创 GQA手撕
2. 将 Q 拆分成多头(head_dim 和 num_head , 从hidden_size得到)4. 计算上下文向量 (求和 softmax和dropout之后的数值 * V)2.5. 拆分之后的 Q 要对seq_len 和 num_head交换维度(后续进行矩阵乘法)1. 每个头的维度 = 输入特征维度 / 注意力头数量。1.5 头分出的组数(group_num) = 注意力头数量 / 每组包含的头数。6. 通过输出线性层。(K,V输出维度head_dim * 头分出的组数,)
2025-11-16 14:46:35
320
原创 MQA手撕
2. 将 Q 拆分成多头(head_dim 和 num_head , 从hidden_size得到)4. 计算上下文向量 (求和 softmax和dropout之后的数值 * V)2.5. 拆分之后的 Q 要对seq_len 和 num_head交换维度(后续进行矩阵乘法)2. 定义线性变换层,用于生成 Q, K, V。6. 通过输出线性层。初始化:输入特征维度,注意力头数量,是否dropout。(K,V输出维度head_dim,相当于直接拆分)前向传播:1. 通过线性层得到 Q, K, V。
2025-11-13 11:44:29
144
原创 MHA手撕
2. 将 Q, K, V 拆分成多头(hidden_dim 和 num_head , 从hidden_size得到)4. 计算上下文向量 (求和 softmax和dropout之后的数值 * V)1. 每个头的维度 = 输入特征维度 / 注意力头数量。2. 定义线性变换层,用于生成 Q, K, V。3. 计算注意力权重。6. 通过输出线性层。初始化:输入特征维度,注意力头数量,是否dropout。前向传播:1. 通过线性层得到 Q, K, V。
2025-11-11 12:00:20
247
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅