更改

删除3字节 、 2025年6月8日 (日) 21:33
第57行: 第57行:  
** 拆分为:<math>x_k, x_v, x_r</math>
 
** 拆分为:<math>x_k, x_v, x_r</math>
 
** 加入时间加权参数(Python代码):
 
** 加入时间加权参数(Python代码):
−
  −
<syntaxhighlight lang="python">
  −
decay = exp(-exp(time_decay))
  −
k = x_k * time_mix_k + x_k_prev * (1 - time_mix_k)
  −
</syntaxhighlight>
   
** xk​:用于 Key;
 
** xk​:用于 Key;
 
** xv​:用于 Value;
 
** xv​:用于 Value;
第69行: 第64行:  
** <code>x_k_prev</code> 表示前一个 token 的特征;
 
** <code>x_k_prev</code> 表示前一个 token 的特征;
 
** <code>k</code> 是融合后的 Key 值,用于参与后续注意力(递推)计算。
 
** <code>k</code> 是融合后的 Key 值,用于参与后续注意力(递推)计算。
−
 
+
<syntaxhighlight lang="python">
 +
decay = exp(-exp(time_decay))
 +
k = x_k * time_mix_k + x_k_prev * (1 - time_mix_k)
 +
</syntaxhighlight>
 
'''作用:''' 融合当前时刻和上一个时刻的信息,引入时间动态权重。
 
'''作用:''' 融合当前时刻和上一个时刻的信息,引入时间动态权重。
   第83行: 第81行:  
** 类似 Transformer 的 FFN 模块。
 
** 类似 Transformer 的 FFN 模块。
 
** 激活函数通常使用 ReLU,公式如下:
 
** 激活函数通常使用 ReLU,公式如下:
−
<math>\mathrm{output} = \mathrm{ReLU}(W_1 \times x + b_1) \times W_2 + b_2</math>
   
** x:当前输入向量;
 
** x:当前输入向量;
 
** W1​,W2​:权重矩阵;
 
** W1​,W2​:权重矩阵;
 
** b1​,b2​:偏置项;
 
** b1​,b2​:偏置项;
 
** ReLU:常用的非线性激活函数。
 
** ReLU:常用的非线性激活函数。
 +
<math>\mathrm{output} = \mathrm{ReLU}(W_1 \times x + b_1) \times W_2 + b_2</math>
    
ChannelMix 模块在 RWKV 中承担的是特征变换的职责,它不涉及时间递推,仅作用于当前 token 的维度方向。通过堆叠多个 RWKV Block(包含 TimeMix 和 ChannelMix),模型可以逐步构建复杂的时间和特征层级信息。该模块的设计让 RWKV 能够在保持推理效率的同时,具备强大的特征建模能力。
 
ChannelMix 模块在 RWKV 中承担的是特征变换的职责,它不涉及时间递推,仅作用于当前 token 的维度方向。通过堆叠多个 RWKV Block(包含 TimeMix 和 ChannelMix),模型可以逐步构建复杂的时间和特征层级信息。该模块的设计让 RWKV 能够在保持推理效率的同时,具备强大的特征建模能力。
第95行: 第93行:     
* '''注意力层简化表达'''
 
* '''注意力层简化表达'''
−
  −
<math>x_{t+1} = \sigma(Rx_t) \cdot \frac{\exp(Kx_t) \cdot (Vx_t) + \exp(W) \cdot a_t}{\exp(Kx_t) + \exp(W) \cdot b_t} </math>
   
**xt​:当前时间步的输入向量;
 
**xt​:当前时间步的输入向量;
 
**xt+1​:下一时间步的输出;
 
**xt+1​:下一时间步的输出;
第104行: 第100行:  
**σ(Rxt​):Receptance 门控函数,控制信息是否更新,相当于 LSTM 的门结构;
 
**σ(Rxt​):Receptance 门控函数,控制信息是否更新,相当于 LSTM 的门结构;
 
**分数部分(分子/分母):模拟了注意力加权求和的效果,只不过是用递推形式累积,而非对整段序列做自注意力计算。
 
**分数部分(分子/分母):模拟了注意力加权求和的效果,只不过是用递推形式累积,而非对整段序列做自注意力计算。
 +
<math>x_{t+1} = \sigma(Rx_t) \cdot \frac{\exp(Kx_t) \cdot (Vx_t) + \exp(W) \cdot a_t}{\exp(Kx_t) + \exp(W) \cdot b_t} </math>
    
这个表达式体现的是 '''RWKV 用递推的方式模拟注意力机制'''。不同于 Transformer 的全局注意力(需要对所有 token 做乘积和归一化),RWKV 在每一个时间步只更新当前与历史的加权平均值,用指数衰减模拟注意力分布,极大地提高了推理效率。
 
这个表达式体现的是 '''RWKV 用递推的方式模拟注意力机制'''。不同于 Transformer 的全局注意力(需要对所有 token 做乘积和归一化),RWKV 在每一个时间步只更新当前与历史的加权平均值,用指数衰减模拟注意力分布,极大地提高了推理效率。
201

个编辑