更改

跳到导航 跳到搜索
添加50字节 、 2025年6月8日 (日) 21:19
无编辑摘要
第61行: 第61行:  
decay = exp(-exp(time_decay))
 
decay = exp(-exp(time_decay))
 
k = x_k * time_mix_k + x_k_prev * (1 - time_mix_k)
 
k = x_k * time_mix_k + x_k_prev * (1 - time_mix_k)
−
</syntaxhighlight>xk​:用于 Key;
+
</syntaxhighlight>
 +
** xk​:用于 Key;
   −
xv​:用于 Value;
+
** xv​:用于 Value;
   −
xr​:用于 Receptance(门控);
+
** xr​:用于 Receptance(门控);
   −
<code>time_decay</code> 是一个可学习的参数,用于控制历史信息的衰减;
+
** <code>time_decay</code> 是一个可学习的参数,用于控制历史信息的衰减;
   −
<code>time_mix_k</code> 是控制当前和前一个 token 特征混合比例的系数(同样是可学习的);
+
** <code>time_mix_k</code> 是控制当前和前一个 token 特征混合比例的系数(同样是可学习的);
   −
<code>x_k_prev</code> 表示前一个 token 的特征;
+
** <code>x_k_prev</code> 表示前一个 token 的特征;
   −
<code>k</code> 是融合后的 Key 值,用于参与后续注意力(递推)计算。
+
** <code>k</code> 是融合后的 Key 值,用于参与后续注意力(递推)计算。
    
'''作用:''' 融合当前时刻和上一个时刻的信息,引入时间动态权重。
 
'''作用:''' 融合当前时刻和上一个时刻的信息,引入时间动态权重。
第90行: 第91行:  
<math>\mathrm{output} = \mathrm{ReLU}(W_1 \times x + b_1) \times W_2 + b_2</math>
 
<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:常用的非线性激活函数。
    
ChannelMix 模块在 RWKV 中承担的是特征变换的职责,它不涉及时间递推,仅作用于当前 token 的维度方向。通过堆叠多个 RWKV Block(包含 TimeMix 和 ChannelMix),模型可以逐步构建复杂的时间和特征层级信息。该模块的设计让 RWKV 能够在保持推理效率的同时,具备强大的特征建模能力。
 
ChannelMix 模块在 RWKV 中承担的是特征变换的职责,它不涉及时间递推,仅作用于当前 token 的维度方向。通过堆叠多个 RWKV Block(包含 TimeMix 和 ChannelMix),模型可以逐步构建复杂的时间和特征层级信息。该模块的设计让 RWKV 能够在保持推理效率的同时,具备强大的特征建模能力。
第107行: 第108行:  
<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>
 
<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​:下一时间步的输出;
   −
R,K,V:分别表示 RWKV 中的 '''Receptance(门控)、Key、Value''' 投影矩阵;
+
****R,K,V:分别表示 RWKV 中的 '''Receptance(门控)、Key、Value''' 投影矩阵;
   −
W:时间衰减常数,是可学习参数,用于模拟历史的指数衰减;
+
**W:时间衰减常数,是可学习参数,用于模拟历史的指数衰减;
   −
at​,bt​:前一时刻累积的加权值与归一化因子,用于递归地保留历史信息;
+
**at​,bt​:前一时刻累积的加权值与归一化因子,用于递归地保留历史信息;
   −
σ(Rxt​):Receptance 门控函数,控制信息是否更新,相当于 LSTM 的门结构;
+
**σ(Rxt​):Receptance 门控函数,控制信息是否更新,相当于 LSTM 的门结构;
   −
分数部分(分子/分母):模拟了注意力加权求和的效果,只不过是用递推形式累积,而非对整段序列做自注意力计算。
+
**分数部分(分子/分母):模拟了注意力加权求和的效果,只不过是用递推形式累积,而非对整段序列做自注意力计算。
    
这个表达式体现的是 '''RWKV 用递推的方式模拟注意力机制'''。不同于 Transformer 的全局注意力(需要对所有 token 做乘积和归一化),RWKV 在每一个时间步只更新当前与历史的加权平均值,用指数衰减模拟注意力分布,极大地提高了推理效率。
 
这个表达式体现的是 '''RWKV 用递推的方式模拟注意力机制'''。不同于 Transformer 的全局注意力(需要对所有 token 做乘积和归一化),RWKV 在每一个时间步只更新当前与历史的加权平均值,用指数衰减模拟注意力分布,极大地提高了推理效率。
201

个编辑

导航菜单